losetup 将磁盘映像作为一个设备挂载。如何分别回送分区?

losetup 将磁盘映像作为一个设备挂载。如何分别回送分区?

我有一个包含 2 个分区的磁盘映像。当我这样做时,#losetup -f <file>/dev/loop0显示。我如何制作/dev/loop0p0/dev/loop0p1显示?使用#parted /dev/loop0它确实显示 2 个分区。我需要将 2 个分区作为单独的设备存在,以 chroot 到主分区并在 esp 分区上设置 grub。

# sudo losetup -f disk.img 

得到:

$ lsblk
NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINTS
loop0    7:0    0     5G  0 loop 
sda      8:0    0 223,6G  0 disk 
├─sda1   8:1    0   300M  0 part /boot/efi
├─sda2   8:2    0 214,5G  0 part /
└─sda3   8:3    0   8,8G  0 part [SWAP]

预期的:

loop0
├─loop0p0
└─loop1p1

Parted 显示分区确实存在:

# parted
[ ... ]
(parted) print list,all
Model: Loopback device (loopback)
Disk /dev/loop0: 5369MB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags: 

Number  Start   End     Size    File system  Name  Flags
 1      1049kB  135MB   134MB   fat32        efi   boot, esp
 2      135MB   5368MB  5232MB  ext4         main

[ ... ]

答案1

将开关添加-P到losetup,如下所示:

losetup -Pf disk.img

这将为每个分区创建循环设备,如/dev/loop8p3。请注意,分区扫描取决于扇区大小,默认情况下扇区大小假定为 512。如果映像是由具有不同扇区大小的某些东西制成的,那么您--sector-size还需要指定开关。

相关内容