如何mount一個virtual disk image?
這篇文章說明如何直接掛載一個虛擬磁碟的映象檔(VDI, VHD, VMDK)? 在Linux環境中,如果你需要將一個磁碟的映象檔掛載起來當作一個磁碟來使用的時候,這裡的說明就是你可以參考的文件。
1. 先查看你要掛載的映象檔的分割
2. 透過losetup來設定
這邊offset的大小計算方式,就是你要掛載的partition的起始sector,乘上每個sector的大小。如果虛擬磁碟中沒有分割的話,就可以直接掛載,或者offset設定為0。
3. 確認一下檔案系統
4. 掛載檔案
5. 如果磁碟的檔案系統是系統可以直接支援的,也可以直接mount
如果你的虛擬磁碟格視為VMDK這個時候就可以透過qemu來協助
1. 先載入nbd kernel module
2. 連接vmdk的印象檔到一個nbd裝置
3. 掛載這個nbd裝置
卸載的時候,記得要qemu-nbd -d /dev/nbd0來解除連結。
步驟
RAW格式的image:
1. 先查看你要掛載的映象檔的分割
$ /sbin/fdisk -lu disk.img
2. 透過losetup來設定
# losetup /dev/loop0 disk.img -o {Start sector * bytes}
這邊offset的大小計算方式,就是你要掛載的partition的起始sector,乘上每個sector的大小。如果虛擬磁碟中沒有分割的話,就可以直接掛載,或者offset設定為0。
3. 確認一下檔案系統
# file -s /dev/loop0
4. 掛載檔案
# mount /dev/loop0 /mnt
5. 如果磁碟的檔案系統是系統可以直接支援的,也可以直接mount
# mount -o loop,offset=$((10860003 * 512)) disk.img /mnt
其他格式的image:
如果你的虛擬磁碟格視為VMDK這個時候就可以透過qemu來協助
1. 先載入nbd kernel module
# modprobe nbd max_part=16
2. 連接vmdk的印象檔到一個nbd裝置
# qemu-nbd -c /dev/nbd0 image.vmdk
3. 掛載這個nbd裝置
# mount /dev/nbd0p1 /mnt/image
卸載的時候,記得要qemu-nbd -d /dev/nbd0來解除連結。
參考
- Loop-mounting partitions from a disk image, http://madduck.net/blog/2006.10.20:loop-mounting-partitions-from-a-disk-image/
- https://en.wikibooks.org/wiki/QEMU/Images#Mounting_an_image_on_the_host
留言
張貼留言