當前位置:才華齋>計算機>作業系統>

linux下掛載VHD等虛擬磁碟檔案的方法

作業系統 閱讀(9.9K)

linux下掛載VHD等虛擬磁碟檔案的方法有哪些?今天小編為大家帶來的是linux下掛載VHD等虛擬磁碟檔案的方法,希望對大家會有幫助,有需要的朋友一起去看看吧

linux下掛載VHD等虛擬磁碟檔案的方法

  1、RAW格式虛擬磁碟

linux下可以直接掛載raw格式的虛擬磁碟映象檔案。

例如,這裡先用dd命令建立一個檔案,然後將其格式化為ext4格式(只有一個分割槽),然後掛載到/mnt目錄。

下面的磁碟映象檔案就一個分割槽,所以沒有使用offset=來指定偏移。如果有多個分割槽,則可以通過指定偏移來掛載。具體的可以查閱mount命令的相關引數資訊。

> dd if=/dev/zero of= bs=1M count=512

記錄了512+0 的讀入

記錄了512+0 的寫出

536870912 bytes (537 MB, 512 MiB) copied, 0.207045 s, 2.6 GB/s

/home/o [o@o-pc] [10:29]

> 4 -q

/home/o [o@o-pc] [10:30]

> sudo mount -o loop /mnt

/home/o [o@o-pc] [10:30]

> df -h

 2、VHD/VHDX磁碟檔案掛載

linux不能直接支援掛載VHD磁碟映象檔案。可以通過vmware的vmware-mount等工具來掛載。vmware沒有直接提供這個工具,但在vmware player和vmware workstation中都有提供。但這裡不打算使用這種方式。

這裡使用qemu-nbd來掛載磁碟映象檔案。

a)安裝qemu

首先要安裝一下qemu-kvm,我這裡使用的是Fedora 25,安裝命令如下

sudo dnf install qemu-kvm

如果你是用的'debian/ubuntu等,可以使用sudo apt-get install qemu-kvm進行安裝。

archlinux可以使用sudo pacman -S qemu進行安裝。

b)載入nbd驅動

NBD(Network Block Device)是網路裝置的縮寫。這個模組可以將一個遠端主機的磁碟空間(與掛載nfs有區別),當作一個本地塊裝置來使用。

NBD是一個核心模組,大部分Linux發行版都已經包含它,這裡不需要再安裝了。

使用modprobe來載入nbd驅動

/media/o/data [o@o-pc] [11:04]

> sudo modprobe nbd max_part=8

載入完成後,可以使用modinfo命令來檢視模組資訊

/media/o/data [o@o-pc] [11:05]

> modinfo nbd

filename: /lib/modules/25.x86_64/kernel/drivers/block/

license: GPL

description: Network Block Device

depends:

intree: Y

vermagic: 25.x86_64 SMP mod_unload

signat: PKCS#7

signer:

sig_key:

sig_hashalgo: md4

parm: nbds_max:number of network block devices to initialize (default: 16) (int)

parm: max_part:number of partitions per device (default: 0) (int)

上面的資訊說,初始化網路塊裝置的數目為16,說明其在/dev/下建立16個nbd裝置。

/media/o/data [o@o-pc] [11:05]

> ls /dev/nbd*

/dev/nbd0 /dev/nbd0p1 /dev/nbd1 /dev/nbd10 /dev/nbd11 /dev/nbd12 /dev/nbd13 /dev/nbd14 /dev/nbd15 /dev/nbd2 /dev/nbd3 /dev/nbd4 /dev/nbd5 /dev/nbd6 /dev/nbd7 /dev/nbd8 /dev/nbd9

c)將vhdx檔案連線到nbd裝置

這裡使用qemu-nbd來進行連線(使用-c引數為連線,使用-d引數斷開連線)

/media/o/data [o@o-pc] [11:05]

> sudo qemu-nbd -c /dev/nbd0

連線上之後使用fdisk檢視一下裝置資訊。

/media/o/data [o@o-pc] [11:05]

> sudo fdisk -l /dev/nbd0

Disk /dev/nbd0:100 GiB,107374182400 位元組,209715200 個扇區

單元:扇區 / 1 * 512 = 512 位元組

扇區大小(邏輯/物理):512 位元組 / 512 位元組

I/O 大小(最小/最佳):512 位元組 / 512 位元組

磁碟標籤型別:dos

磁碟識別符號:0xa373e501

實際上磁碟只有一個分割槽,分割槽格式為exFAT,磁碟大小為動態增長。

d)掛載分割槽

直接使用mount命令掛載nbd0p1即可

/media/o/data [o@o-pc] [11:36]

> sudo mount -t exfat -o rw /dev/nbd0p1 /mnt

[sudo] o 的密碼:

FUSE exfat 1.0.1

/media/o/data [o@o-pc] [12:05]

> ls /mnt/

'$' 'System Volume Information' vs2017rc 安裝說明

安裝exFAT支援

因為分割槽是exFAT格式的,不能直接掛載。

先安裝一下fuse-exfat和exfat-utils。

具體的安裝過程簡要的說一下

先下載兩個rpm原始碼包。

wget

wget

然後安裝fuse-devel和rpmbuild,並解壓包。

sudo dnf install fuse-devel rpmbuild

sudo dnf install scons # 構建exfat-utils需要

rpm -ivh

解壓完成之後可以在當前使用者的home目錄下看到rpmbuild目錄,進入該目錄下的SPECS目錄。

然後使用rpmbuild構建rpm包。

rpmbuild -ba

rpmbuild -ba

構建完成之後進入rpmbuild/RPMS/x86_64目錄(這裡x86_64與你的系統構架有關),安裝生成的rpm包。

/home/o/rpmbuild/RPMS/x86_64 [o@o-pc] [12:04]

> sudo rpm -ivh 25.x86_ 25.x86_

準備中... ################################# [100%]

正在升級/安裝...

1:25 ################################# [ 50%]

2:25 ################################# [100%]

ubuntu上可以直接使用apt來安裝sudo apt install exfat-utils exfat-fuse

  3、其它虛擬磁碟檔案的掛載

其它的就不再說了,與上面的VHD掛載是一樣的,前提是要是支援的磁碟映像格式才行。