分区磁盘映像文件

分区磁盘映像文件

我想使用以下命令对原始磁盘映像进行分区:

#creating the blank image
$ dd if=/dev/zero of=example.img bs=1M count=50

#write the partition table
$ parted example.img mktable msdos

#creating partition but not the file system
#creating fat32 primary partition 1 to 15 MB
$ parted example.img mkpart p fat32 1 15
#creating ext3 primary partition 16 to end
$ parted example.img mkpart p ext3 16 -0

这些命令不会创建文件系统。我怎么能这么做呢?我正在尝试mkfs输入命令parted,但它显示没有找到命令。如何在外部创建文件系统?

答案1

使用该命令kpartx创建一个环回设备,然后可以对其进行格式化。

kpartx -a /path/to/imagefile.img  # Presents partitions from the image file
mkfs.vfat /dev/mapper/loop0p1   # Format partition 1
mkfs.ext3 /dev/mapper/loop0p2   # Format partition 2
kpartx -d /path/to/imagefile.img  # Unmaps the partitions from the image file

相关 kpartx 示例在这里

答案2

losetup获得选项的最新版本-P。引用自男人 8 失败:

-P, --partscan
          Force the kernel to scan the partition table on a newly created loop device.

这样做losetup -f my_partitioned.img不仅会创建/dev/loop0,还会对设备进行分区:

$ ls -l /dev/loop0*
brw-rw---- 1 root disk   7, 0 Oct  5 18:43 /dev/loop0
brw-rw---- 1 root disk 259, 0 Oct  5 18:43 /dev/loop0p1
brw-rw---- 1 root disk 259, 1 Oct  5 18:43 /dev/loop0p2

答案3

使用常用的 mkfs 命令,例如mkfs.ext4.您需要使用losetup环回设备与文件关联,以便有 mkfs 指向的位置。您可能还需要使用它partprobe来识别循环设备上的分区。

相关内容