bsdlabelを使用してFreeBSDでパーティションサイズを変更する

bsdlabelを使用してFreeBSDでパーティションサイズを変更する

私は最近FreeBSDをインストールしましたが、インストール中に許可されているパーティションのサイズが気に入らず、変更したいと思います。マンページの指示に従ったので、rootとしてこれを行いました。

# bsdlabel -e ad0s2

(ad0s2はFreeBsdがインストールされているパーティションです。)変更後に保存して終了しようとすると、次のメッセージが表示されます。

/tmp/EdDk.RBNU2c8vnz: unmodified: line 1
bsdlabel: cannot open provider /dev/ad0s2 for writing label: Operation not permitted
re-edit the label? [y]:

再編集しようとすると、同じメッセージが再表示されます。何も変更せずに保存しようとすると、このメッセージが表示されます。私はFreeBSDに初めてアクセスし、ディスクラベルを変更する前に何かをする必要があると思いましたが、そのような情報はどこにもありません。誰でも私を助けることができますか?ありがとうございます!

答え1

GEOMのデバッグフラグで「バルショット」を有効にしましたか?

# sysctl kern.geom.debugflags=16

答え2

私は何を知らない正確にこれを試していますが、ディスクラベルを編集してファイルシステムのサイズを変更することはできません。

これただファイルシステムのサイズを変更する方法はGrowthfs(8)を使用することですが、これは最後にサイズを追加しなければ機能しません。図で説明すると、次のようになります。

Before:    After:
+-----+    +-----+
| fs1 |    + fs1 +
+-----+    |     |
|     |    +-----+
| fs2 |    | fs2 |
+-----+    +-----+

ご覧のとおり、fs1を拡大するとは、fs2の先頭を移動することを意味します。これはFreeBSDのUFSができることではありません。したがって、このようにディスクラベルを編集すると、fs1は問題ありませんが、fs2は壊れます。

つまり、インストール時に選択したファイルシステムのサイズが気に入らない場合は、バックアップして再インストールするか、それを受け入れる必要があります。

つまり、sysctl kern.geom.debugflags=16これを使用してとにかく変更できます(これにより、マウントされたディスクのパーティションラベルおよび/またはディスクラベルを編集できます)。

答え3

gpartMBRパーティションテーブルとBSDディスクラベルはいつでも変更できます。たとえば、ada0タイプシャード1のパーティションbタイプを変更するには、次のようにします。

# gpart modify -i 2 -t freebsd-ufs /dev/ada0s1 

関連情報