如何mount一個virtual disk image?

這篇文章說明如何直接掛載一個虛擬磁碟的映象檔(VDI, VHD, VMDK)? 在Linux環境中,如果你需要將一個磁碟的映象檔掛載起來當作一個磁碟來使用的時候,這裡的說明就是你可以參考的文件。

步驟

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來解除連結。

參考

  1. Loop-mounting partitions from a disk image, http://madduck.net/blog/2006.10.20:loop-mounting-partitions-from-a-disk-image/
  2. https://en.wikibooks.org/wiki/QEMU/Images#Mounting_an_image_on_the_host

留言

這個網誌中的熱門文章

如何關閉nouveau-kernel-driver,解決無法安裝Nvidia driver問題

如何在Nginx所設置的Proxy中可以取得真實客戶的IP位址

如何客製VMware ESXi安裝光碟(加入Realtek驅動程式)