linux - IMGファイルをマウントせずに元のIMGファイル内のパーティションのパーティションラベルを一覧表示する

linux - IMGファイルをマウントせずに元のIMGファイル内のパーティションのパーティションラベルを一覧表示する

複数パーティションのIMG rawディスクファイルがあり、それをマウントせずに各パーティションのパーティションラベルを一覧表示したいと思います。

このコマンドは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

私がこれをしたいのは、何をインストールするのかを知るためです。上記はテスト目的で作成されたサンプルのRAWディスクファイルの例ですが、実際のファイルはさまざまなパーティションを持つ128GB UFDでマルチブートドライブとして使用されます。

ディスクのようなもので可能ですか?これまでは、パーティションをマウントした後にのみタグを一覧表示できますが、これは目的には適していません。パーティションが多すぎるため、各パーティションラベルを上記の出力の一部として含めるか、可能であれば他のコマンドを使用してどちらがどのようなものかを知ることができます。

答え1

どうやって理解できないのですか?簡単にシステムの助けを借りずにrootとしてこれを行います。システムにパーティションについて知るように依頼してから、そのパーティションとその中にあるファイルシステムに関する情報を再要求することができます。ここで、「システム」は、カーネル機能とudevに組み込まれている計測機能の緩い組み合わせです。次の2つのコマンドのみが必要です。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

ファイルシステムがマウントされていません。パーティションのみをマッピング、確認、およびマッピング解除します。

関連情報