質問: ファイルベースのディスクイメージのサイズを拡張できますか? 私はddを使用して空のディスクイメージを作成し、次にmkfsを使用してそれを実際のファイルシステムイメージにしました。取り付けて使用しています。必要なときに、このファイルベースのディスクイメージを拡大または縮小できるようにする必要があります。その方法でディスクイメージのサイズを増やすことは可能ですか?このファイルベースのディスクイメージに、仮想マシンドライブで見られるような動的なサイズ変更機能を持たせる方法はありますか?.
回答: スパースファイルは、動的なディスクイメージの拡大/サイズ変更に適しています。これにより、1024mのスパースファイルが作成されます。# dd if=/dev/zero of=sparse.img bs=1m count=0 seek=1024 0+0 records in 0+0 records out 0 bytes (0 b) copied, 0.000565999 s, 0.0 kb/s イメージがディスク領域を使用していない、# du -m sparse.img 0 sparse.img 見かけのサイズは1024mです。# ls -l sparse.img -rw-rw-r--. 1 root root 1073741824 sep 22 14:22 sparse.img # du -m --apparent-size sparse.img 1024 sparse.img 通常のディスクイメージとしてフォーマットしてマウントできます。# parted sparse.img gnu parted 2.1 using /tmp/sparse.img welcome to gnu parted! type 'help' to view a list of commands. (parted) mktable new disk label type? msdos (parted) mkpartfs warning: you are attempting to use parted to operate on (mkpartfs) a file system. parted's file system manipulation code is not as robust as what you'll find in dedicated, file-system-specific packages like e2fsprogs. we recommend you use parted only to manipulate partition tables, whenever possible. support for performing most operations on most types of file systems will be removed in an upcoming release. partition type? primary/extended? primary file system type? [ext2]? fat32 start? 1 end? 1024m (parted) print model: (file) disk /tmp/sparse.img: 1074mb sector size (logical/physical): 512b/512b partition table: msdos number start end size type file system flags 1 1049kb 1024mb 1023mb primary fat32 lba # du -m sparse.img 2 sparse.img 次に、同じコマンドを使用してサイズを変更し、シークパラメータを新しいサイズの画像で変更するだけです。dd if=/dev/zero of=sparse.img bs=1m count=0 seek=2048 ご覧のとおり、イメージは2048mになり、partedまたはその他の任意のツールを使用してパーティションを拡大できます。# du -m --apparent-size sparse.img 2048 sparse.img # parted sparse.img gnu parted 2.1 using /tmp/sparse.img welcome to gnu parted! type 'help' to view a list of commands. (parted) print free model: (file) disk /tmp/sparse.img: 2147mb sector size (logical/physical): 512b/512b partition table: msdos number start end size type file system flags 16.4kb 1049kb 1032kb free space 1 1049kb 1024mb 1023mb primary fat32 lba 1024mb 2147mb 1123mb free space (parted) # du -m sparse.img 2 sparse.img 今それをお楽しみください!