仮想ハードディスクのサイズ変更

仮想ハードディスクのサイズ変更

私が見つけたとても良いチュートリアル仮想ハードディスクを作成する方法については、関連する処理結果とともに、大規模なデータセットを安定してポータブルに保存するために、タスクに仮想ハードディスクを使用することを検討しています。

デフォルトでは、このチュートリアルには次のタスクが含まれています。

dd if=/dev/zero of=MyDrive.vhd bs=1M count=500
mkfs -t ext3 MyDrive.vhd
mount -t auto -o loop MyDrive.vhd /some/user/folder

ext3形式で500MBの仮想ハードディスクを作成し、どこかにマウントします。

さて、そのファイルで作業して500MB以上が必要だと仮定すると、仮想ディスクのサイズを「動的に」調整する方法はありますか? (動的とは、新しいディスクを作成してデータをコピーすることに加えて意味します。)

ベストアンサー1

拡張ファイルよりもdd優れたオプションがあります。このddコマンドを正しく機能させるには(データの破損を防ぐために)複数のパラメータが必要です。私は使用しますtruncate。名前にもかかわらず、ファイルサイズを拡張することもできます。

truncate - ファイルサイズを指定されたサイズに縮小または拡張します。

-s, --size=サイズ

SIZEでファイルサイズを設定または調整する

SIZEはオプションの単位を持つ整数です(たとえば、10Mは10 * 1024 * 1024です)。 >単位は、K、M、G、T、P、E、Z、Y(1024の累乗)またはKB、MB、...(1000の累乗)です。

SIZE の前には、次の修飾子文字のいずれかが前に付くことができます。拡大するには「+」、縮小するには「-」、最大「<」、少なくとも「>」、「/」に丸め、「%」に丸め倍数に丸めます。

したがって、

truncate -s +1G MyDrive.vhd

ファイルを1GBまで安全に拡張します。そしてそうです。デフォルトのファイルシステムがサポートされている場合はまれに拡張されるため、実際のブロックは要求に応じて割り当てられます。

ファイルが拡張されたら、resize2fsを実行することを忘れないでください。

resize2fs MyDrive.vhd

さらに、オンラインサイズ変更をサポートするファイルシステムの場合、プロセス全体をオンラインで実行できます(umountデバイスは不要)。

losetup -c loopdev

サポートファイルのカーネル情報を更新します。

そして

 resize2fs loopdev

マウントされたファイルシステムのサイズをオンラインで調整する

おすすめ記事