如何创建带有分区表的 USB 映像?

如何创建带有分区表的 USB 映像?

我想创建一个可直接写入 USB 驱动器的目录树映像,就像许多 Linux 发行版的映像一样。例如,使用 openSUSE,您可以下载可使用 USB 直接写入的 ISO 映像dd

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

我尝试使用 创建映像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

相关内容