查找 ext4 分区的偏移量

sup*_*tah 5 ext4 mount loop-device

我已经用 dd 创建了我的 hd 的映像,但是上面安装了 grub,我正在尝试弄清楚如何挂载映像文件,但是由于 grub 标头,mount 无法将其识别为 ext4 分区.

我知道它在那里,因为当我运行文件 -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
Run Code Online (Sandbox Code Playgroud)

任何人都对如何找到分区的开头有任何想法,以便我可以告诉安装(好吧,真的是losetup)偏移量是加载分区的位置?

Pet*_*zel 6

Parted 应该能够从文件中读取磁盘映像并解释分区表。所以用

parted -s disk.img unit s print
Run Code Online (Sandbox Code Playgroud)

对于我的(测试)磁盘映像,它提供:

# 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
Run Code Online (Sandbox Code Playgroud)

您可以看到每个分区在哪个扇区开始(和结束)。

  • 另外,“sfdisk -uB -l”将打印出该信息,但使用 1024 字节块,这可以更轻松地计算偏移量。 (2认同)