2013年9月15日 星期日

掛載含MBR的映像檔

想要提出sh4twbox支援256MB RAM的 u-boot 升級檔案,
問到了dlintw 說 sh4twbox使用手冊 中寫可以用 kpartx。
可是在 Archlinux 中找不到這個程式,
(原來是在 AUR 中的 multipath-tools ,再次謝謝dlintw)
只好來用原始的 losetup ,
最後在 wiki.OSDev.org Loopback Device 找到接近要用的說明。


檔案要先用xz解壓縮
$ xz -d sh4twbox-uboot256m-0.1.dd

沒 /dev/loop 裝置,要先載入模組
# modprobe loop

如果還是沒有 /dev/loop 或 /dev/loop0

下列指令會自動建立一個 /dev/loop0或類似裝置

#losetup -f

先把整個檔案掛上來看結構
# losetup /dev/loop0 sh4twbox-uboot256m-0.1.dd

看分割表
# fdisk -l /dev/loop0
Disk /dev/loop0: 16 MB, 16777216 bytes, 32768 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
Disk label type: dos
Disk identifier: 0x00088379

      Device Boot      Start         End      Blocks   Id  System
/dev/loop0p1               1       32767       16383+   e  W95 FAT16 (LBA)
/dev/loop0p2   *       65536     2099199     1016832    b  W95 FAT32
/dev/loop0p3         2099200     3948543      924672   83  Linux


第一分割區的Start 是1,單位是Sectors,
上面寫1Sector = 512 bytes。
對應用 7-zip FM 看到的是 0.fat Offset 512 。

最後才是真正有需要的,
把從512 bytes 開始的分割區設定成 /dev/loop1
# losetup -o512 /dev/loop1 sh4twbox-uboot256m-0.1.dd

把 /dev/loop1 當成 /dev/sdx 一樣掛載
# sudo mount -t vfat -o ro /dev/loop1 /dev/shm/img

要移除先卸載

#umount /dev/shm/img

再取消loop裝置連結

#losetup -d /dev/loop1

#losetup -d /dev/loop0


沒有留言:

張貼留言