web-dev-qa-db-ja.com

ext4パーティションのオフセットを見つける

Ddを使用してhdのイメージを作成しましたが、grubがインストールされており、イメージファイルをマウントする方法を見つけようとしていますが、grubヘッダーが原因でmountがext4パーティションとして認識しません。 。

File -k disk.imgを実行すると、次のように表示されるため、そこにあることがわかります。

disk.img: x86 boot sector; GRand Unified Bootloader, stage1 version 0x3, 1st sector stage2 0x3a883d7, code offset 0x48\012- Linux rev 1.0 ext4 filesystem data, UUID=6d1e45d1-8fac-4995-839b-fa5691a898ad (needs journal recovery) (errors) (extents) (large files) DOS executable (COM), boot code

パーティションをロードするオフセットがどこにあるかをマウント(実際にはlosetup)に伝えることができるように、パーティションの先頭を見つける方法について誰かが考えていますか?

5
supercheetah

Partedは、ファイルからディスクイメージを読み取り、パーティションテーブルを解釈できる必要があります。だから使用する

parted -s disk.img unit s print

私の(テスト用)ディスクイメージの場合、次のようになります。

# parted -s /root/sdd.img unit s print
Model:  (file)
Disk /root/sdd.img: 16384s
Sector size (logical/physical): 512B/512B
Partition Table: msdos

Number  Start  End     Size   Type     File system  Flags
 1      5s     7812s   7808s  primary               type=83
 2      7872s  16383s  8512s  primary               type=83

各パーティションがどのセクターで開始(および終了)するかを確認できます。

6
Petr Uzel

問題はグラブとはまったく関係がないことがわかりました。イメージにエラーがあり、修正にはe2fsckの実行が含まれていました。

1
supercheetah