2010年6月18日 星期五

Howto mount disk image --[轉貼]

Howto mount disk image
出處:瘋狂帽客

如果你今天面對的是disk image而不是一般的 partition image,
當使用mount -o loop時會無法mount成功。
這很容易理解,因為你必須知道disk image中partition的位置後才能mount起來,怎麼做呢?

以下將會說明:

需求: mount test.img 並更改第一個partition中的某個檔案

我們先看看如果直接用mount -o loop會如何:
lawrence@lawrence-x24:~/Desktop$ sudo mount -o loop test.img /mnt/test/
mount: you must specify the filesystem type
lawrence@lawrence-x24:~/Desktop$ sudo mount -o loop -t ext3 test.img /mnt/test/
mount: wrong fs type, bad option, bad superblock on /dev/loop0,
missing codepage or helper program, or other error
In some cases useful info is found in syslog - try
dmesg | tail or so

恩,看起來是不work......

所以我必須先 知道test.img的磁軌與磁區大小才能算出第一個partition的位置:
lawrence@lawrence-x24:~/Desktop$ fdisk -l test.img
You must set cylinders.
You can do this from the extra functions menu.

Disk test.img: 0 MB, 0 bytes
16 heads, 63 sectors/track, 0 cylinders
Units = cylinders of 1008 * 512 = 516096 bytes
Disk identifier: 0x00000000

所用 裝置 Boot Start End Blocks Id System
test.img1 1 32 16096+ 83 Linux

得知每個 track 共 63 sectors, 每個 sector 是 512bytes,故得知第一個partition是在63*512=32256

接下來利用losetup將第一個 partition先掛到/dev/loop0,並驗證:
lawrence@lawrence-x24:~/Desktop$ sudo losetup --offset 32256 /dev/loop0 test.img
lawrence@lawrence-x24:~/Desktop$ sudo losetup /dev/loop0
/dev/loop0: [0803]:865823 (test.img), offset 32256

好了,將它mount起來吧!
lawrence@lawrence-x24:~/Desktop$ sudo mount /dev/loop0 /mnt/test/
lawrence@lawrence-x24:~/Desktop$ df -h | grep test
/dev/loop0 16M 7.9M 6.6M 55% /mnt/test

修改完畢後,一樣將他umount掉並detach /dev/loop0
lawrence@lawrence-x24:/mnt/test$ cd
lawrence@lawrence-x24:~$ sudo umount /mnt/test
lawrence@lawrence-x24:~$ df -h | grep test
lawrence@lawrence-x24:~$ sudo losetup -d /dev/loop0
lawrence@lawrence-x24:~$ sudo losetup /dev/loop0
loop: can't get info on device /dev/loop0: 沒有此一裝置或位址

以上希望對大家有幫助。

PS. Redhat中如果要位移,是下達losetup -o 32256而不是losetup --offset 32256

PS. 更精簡的mount方法:
mount -o loop,offset=32256 test.img /mnt/test

沒有留言:

搜尋此網誌

本站大事記

這個部落格(網站)內容以分享LINUX和延伸出的技術文章為主!
特別是為了工作和進修需要,搜集了不少網站連結。
希望對來這裡觀文的朋友們,有提供一些有用的資訊或文章。
但這裡的文章中,也包含個人的心情扎記和隨興言談……
若是當中沒有對上你的口味,請多包涵!

原「琳娜絲與希斯寇的邂逅」,改名為「愛上琳娜絲」!

原「琳娜絲與希斯寇的邂逅」,改名為「愛上琳娜絲」!
--原序文--
就是當LINUX遇上CISCO啦!他們的結合還能作什麼事…不就是讓這個世界的網路,串…串起來啊…不然你們那能上這網站看部落格!