UFS /rootパーティションにあるオペレーティングシステムの実行中にUFS /rootパーティションのサイズを変更する方法はありますか?私はFreeBSDを実行しています。
答え1
FreeBSDでディスクを拡張するためのかなり包括的なガイドがあります。マニュアルにUFS(FreeBSDのデフォルト)の場合、カーネルバージョン10.0以降でオンラインアップグレードが可能です。
ただし、マウントされたファイルシステムの周囲のパーティションを変更すると、次にシステムが起動しようとしたときに最初に見つかる可能性があるデータの損失や不一致が発生する可能性があります。また、ブートローダを確認することを忘れないでください。
ファイルシステムの成長デフォルトでは、次のように要約されます。
パーティションテーブルを調整します。この手順を実行すると、ここを乱すとディスク全体が損傷する可能性があるため、非常に注意してください。最小限のシステムを実行するために不要なパーティション、特にスワップパーティションをアンマウントできます。
あなたの質問では、私は
gpart
これを達成するために使用する方法を知っていると仮定します。調整が完了したら、すべてのパーティションを安全に再マウントし、スワップを再度有効にできます。
- 実際の成長FS。
growfs <blockdevice>
FreeBSDの場合、これは<blockdevice>
サイズ変更されたパーティションを発行するのと同じくらい簡単です。
~のため縮小、次の手順を逆の順序で実行する必要があります。
- ファイルシステムの縮小重要な内容を上書きしないでください
growfs -s <new_size> <blockdevice>
。新しい目標より小さいサイズを選択してください。ファイルシステムサイズ。つまり、100 GBのパーティションを70 GBに減らすには、この手順でFSサイズを約60〜65 GBに調整します。オーバーシュートが多いほど、空き容量が多くなりますが、一般的に位置変更が多くなり、待ち時間が長くなります。 - パーティションテーブルを調整します。以前とは異なり、このステップでは正確な目標サイズを選択できます。特に別のパーティションを移動する場合は、この段階で別のパーティションをアンマウントすることもできます(実際にはこの場合〜しなければならない削除してください)
- ファイルシステム拡張。これにより、(新しい)パーティションの最後に残ったヘッドルームが削除されます
growfs <blockdevice>
。サイズパラメータを省略すると、パーティション全体が使用されます。
答え2
これを行うより良い方法があります。
service growfs onestart
一度呼び出されます/etc/rc.d/growfs
。このスクリプトは、デフォルトでFreeBSDのマニュアルと同じコマンドをすべて呼び出します。このスクリプトは、非常に小さな仮想ハードディスクを割り当てることができるように初めて起動するときに呼び出されるように設計されています。後で仮想ディスクを拡張する場合(またはdd
ファイルシステムをより大きな物理ディスクに拡張する場合)、スクリプトを一度手動で呼び出してすべての正しい操作を実行できます。
答え3
サイズ変更が完了したら、rootfsを読み取り専用でマウントして再起動する必要があります。