パーティションテーブルを使用してUSBイメージを作成するには?

パーティションテーブルを使用してUSBイメージを作成するには?

多くのLinuxディストリビューションのように、USBドライブに直接書き込むことができるディレクトリツリーイメージを作成したいと思います。たとえば、openSUSEを使用すると、USBを使用して直接書き込むことができるISOイメージをダウンロードできますdd

root@computer# dd if=openSUSE.iso of=/dev/sdb

create imageを試しましたが、そのイメージで上記のコマンドを実行するmkisofsと、ddパーティションテーブルが表示されず、Windowsがドライブの種類を認識できず、Linuxが存在しません/dev/sdb1。また、空のファイルを作成し、mkfs.vfat

USBドライブに画像を書き込む方法とUSBドライブをファイルにダンプする方法については、オンラインチュートリアルがたくさんあるようですが、パーティションテーブルを使用して画像を作成する方法については見つかりませんでした。

私が解決しようとしている問題は、あらかじめフォーマットされたUSBスティックを展開して、スティックが起動可能である必要がないようにすることです。また、プロセスをスクリプト可能にしたいと思います。

答え1

この目的に使用できますkpartx。完全なディスクイメージを作成する方法です。

# create empty image
dd if=/dev/zero of=myvm.img bs=1G count=0 seek=100

# partition the image file with fdisk/gdisk or any other tool
gdisk myvm.img

# make the partitions in the image file available as individual devices
kpartx -a myvm.img

# work with the partitions
./someprogram /dev/mapper/loop0p1

# close the partitions
kpartx -d myvm.img

関連情報