如何使用分区表创建 USB 映像?

Kot*_*tte 5 linux partition usb dd

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

root@computer# dd if=openSUSE.iso of=/dev/sdb
Run Code Online (Sandbox Code Playgroud)

我尝试使用 来创建图像mkisofs,但是当我dd使用该图像运行上面的命令时,没有得到分区表,这使得 Windows 无法识别驱动器的格式,而 Linux 也没有出现/dev/sdb1。我还尝试创建一个空文件,然后使用mkfs.vfat.

网络上似乎有很多关于如何将图像写入 USB 驱动器以及将 USB 驱动器转储到文件的教程,但我还没有找到关于使用分区表创建图像的任何内容。

我试图解决的问题是分发一个预先格式化的 USB 记忆棒,所以没有必要让记忆棒可启动;我还想让这个过程可以编写脚本。

Mar*_*rco 6

您可以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
Run Code Online (Sandbox Code Playgroud)