我已经使用 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)加载分区的偏移量在哪里?
答案1
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
您可以看到每个分区从哪个扇区开始(和结束)。
答案2
我发现这个问题根本与grub无关。该映像存在错误,修复涉及运行 e2fsck。