我有一个多分区的IMG原始磁盘文件,我想列出每个分区的分区标签而不挂载它。
该命令fdisk -l
几乎可以按我的要求工作,但不列出标签:
fdisk -l test.img
Disk test.img: 200 MiB, 209715200 bytes, 409600 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xcae9ed5b
Device Boot Start End Sectors Size Id Type
test.img1 * 2048 104447 102400 50M b W95 FAT32
test.img2 104448 206847 102400 50M b W95 FAT32
test.img3 206848 309247 102400 50M b W95 FAT32
test.img4 309248 409599 100352 49M 5 Extended
test.img5 311296 409599 98304 48M b W95 FAT32
我想要这样做的原因是为了让我知道要安装哪一个。上面只是我为测试目的而创建的示例原始磁盘文件的示例,但真正的示例是具有多个不同分区的128GB UFD-用作多启动驱动器。
有可能像磁盘吗?到目前为止,我只能在挂载分区后列出标签,但这无法达到目的。有这么多分区,我想将每个分区标签作为上面显示的输出的一部分,或者如果可能的话,通过使用任何其他命令来查看,所以我知道哪个是哪个。
我没有看到如何在没有系统帮助的情况下以root身份轻松地执行此操作。可以让系统知道分区,然后再次询问有关其中分区和文件系统的信息。这里的“系统”是内核功能和udev内置检测功能的松散组合。仅需要这两个命令:kpartx
和blkid
。我的示例与OP的示例具有不同的值,但非常相似:
# kpartx -v -a test.img
add map loop0p1 (253:8): 0 20480 linear 7:0 2048
add map loop0p2 (253:9): 0 22528 linear 7:0 22528
add map loop0p3 (253:10): 0 20480 linear 7:0 45056
add map loop0p4 (253:11): 0 2 linear 7:0 65536
add map loop0p5 (253:12): 0 40960 linear 7:0 67584
# blkid /dev/loop0 /dev/mapper/loop0p*
/dev/loop0: PTUUID="a5ebeec3" PTTYPE="dos"
/dev/mapper/loop0p1: SEC_TYPE="msdos" LABEL="MYFS1" UUID="D816-AFC1" TYPE="vfat" PARTUUID="a5ebeec3-01"
/dev/mapper/loop0p2: SEC_TYPE="msdos" LABEL="MYFS2" UUID="D857-D702" TYPE="vfat" PARTUUID="a5ebeec3-02"
/dev/mapper/loop0p3: SEC_TYPE="msdos" LABEL="MYFS3" UUID="D894-3506" TYPE="vfat" PARTUUID="a5ebeec3-03"
/dev/mapper/loop0p4: PTTYPE="dos" PARTUUID="a5ebeec3-04"
/dev/mapper/loop0p5: SEC_TYPE="msdos" LABEL="MYLASTFS" UUID="074A-2F0F" TYPE="vfat" PARTUUID="a5ebeec3-05"
# kpartx -v -d test.img
del devmap : loop0p5
del devmap : loop0p4
del devmap : loop0p3
del devmap : loop0p2
del devmap : loop0p1
loop deleted : /dev/loop0
文件系统未挂载。仅分区被映射,检查和未映射。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句