December 28, 2006

實驗紀錄: 用 Linux mount FAT 格式的 .dmg

剛剛無聊在試 OS X 的 Disk Image
生了一個 dmg, format 成 FAT(MSDOS) 格式
結果拿到 Linux 下 mount,好像不是 mount -t msdos -o loop xxx.dmg 那麼簡單
直接噴出 error; mount: wrong fs type, bad option, bad superblock on /dev/loop0

於是抓出兩個 disk image 來比對一下

可以 mount 的 (用 losetup 掛一個空檔案去 mkfs.msdos);
00000000  eb 3c 90 6d 6b 64 6f 73  66 73 00 00 02 04 01 00  |.<.mkdosfs......|
00000010  02 00 02 10 27 f8 08 00  20 00 40 00 00 00 00 00  |....'... .@.....|
00000020  00 00 00 00 00 00 29 42  a2 93 45 20 20 20 20 20  |......)B..E     |
00000030  20 20 20 20 20 20 46 41  54 31 32 20 20 20 0e 1f  |      FAT12   ..|

不給掛的 .dmg:
00000000  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
*
000001b0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 01  |................|
000001c0  01 00 0b fe ff ff 3f 00  00 00 bc 4f 00 00 00 00  |......?....O....|
000001d0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
*
000001f0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 55 aa  |..............U.|
00000200  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
*
00007e00  eb 3c 90 42 53 44 20 20  34 2e 34 00 02 02 01 00  |.<.BSD  4.4.....|
00007e10  02 00 02 bc 4f f0 28 00  20 00 10 00 00 00 00 00  |....O.(. .......|
00007e20  00 00 00 00 00 00 29 f8  19 d7 b7 55 4e 54 49 54  |......)....UNTIT|
00007e30  4c 45 44 20 20 20 46 41  54 31 36 20 20 20 fa 31  |LED   FAT16   .1|


前面多了一牛車好像是 partition 的 info,不像另一個的 FAT boot record 在開頭,在 0x7e00 才開始
所以做個 32256 bytes (0x7e00) 的 offset 就好了

losetup --offset 32256 /dev/loop0 kaka.dmg
mount -t vfat /dev/loop0 /mnt

done,還真無聊 由 cclien 發表於 December 28, 2006 06:57 PM
迴響
發表迴響









記住我的資訊?

如果你不是機器人應該會答 1+1=