V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
gam2046
V2EX  ›  问与答

关于 Linux 挂载 DOS/MBR 镜像文件的一些问题

  •  
  •   gam2046 · 2021-12-08 11:44:17 +08:00 · 751 次点击
    这是一个创建于 931 天前的主题,其中的信息可能已经有所发展或是发生改变。

    目前有个磁盘镜像文件需要修改其中一些内容

    # file vm-102-disk-0.raw
    vm-102-disk-0.raw: DOS/MBR boot sector
    
    # fdisk -l vm-102-disk-0.raw
    Disk vm-102-disk-0.raw: 1 GiB, 1073741824 bytes, 2097152 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: 0x00000000
    
    Device             Boot  Start     End Sectors  Size Id Type
    vm-102-disk-0.raw1 *       512   16895   16384    8M 83 Linux
    vm-102-disk-0.raw2       17408  214015  196608   96M 83 Linux
    vm-102-disk-0.raw3      215040 2097151 1882112  919M 83 Linux
    
    • 尝试挂载第一个分区成功mount -o loop,offset=262144 vm-102-disk-0.raw ./temp/
    • 尝试挂载第二个分区失败mount -o loop,offset=8912896 vm-102-disk-0.raw ./temp/
      • wrong fs type, bad option, bad superblock on /dev/loop0, missing codepage or helper program, or other error.
    • 尝试挂载第三个分区成功mount -o loop,offset=110100480 vm-102-disk-0.raw ./temp/

    目前可以确认磁盘镜像本身没有问题,尝试通过虚拟机直接从该镜像可以正常启动,但是由于该镜像文件启动后不包含命令行,因此无法在该镜像内查看有关文件系统的信息。

    有大佬可以帮忙分析一下第二个分区挂载失败的原因嘛?

    第 1 条附言  ·  2021-12-08 13:28:14 +08:00

    内部数据已经可以读取,虽然可能不是比较的方案,供其他人参考。

    由于无法直接挂载,尝试分离出第二个分区的数据dd if=vm-102-disk-0.raw skip=17408 of=part2.img

    随后

    $ file part2.img
    part2.img: Squashfs filesystem, little endian, version 4.0, 26537434 bytes, 1078 inodes, blocksize: 262144 bytes, created: Wed Nov 17 04:20:40 2021
    

    得知是Squashfs后就比较容易了,通过unsquashfs part2.img即可获得该分区内的内容。(需要安装squashfs-tools)

    至于内容的回填,暂时没有好办法,只能通过文件系统修改后,通过mksquashfs填装回Squashfs,然后再通过fdisk重新分区以及dd填充数据回去。

    如果各位大佬有好办法,希望可以留言告诉我。

    目前尚无回复
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1648 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 16:48 · PVG 00:48 · LAX 09:48 · JFK 12:48
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.