我有一个包含 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
还需要指定开关。