詳解Linux下掛載和格式化虛擬磁盤
我們用dd命令就可以創建一個raw格式的虛擬磁盤,通常Xen就是使用這種格式的虛擬磁盤,今天就來討論下怎樣將虛擬磁盤掛載到本地。
分三種情況:只有一個分區;有多個分區但不包含lvm;包含lvm;
先創建一個raw的虛擬硬盤在下面的實驗中使用。
一個分區
直接格式化然后掛載
多個分區(不含lvm)
先映射到回環設備上,然后用fdisk分區
losetup把文件映射到回環設備中,這時,/dev/loop0就像/dev/sdb,/dev/hdc等一樣,你可以使用fdisk進行分區,我將test.img均分了兩個區,還沒有格式化。
其實對于單分區,在mount時加上-o loop選項,就相當于如下操作
losetup /dev/loop0 test.img
mount /dev/loop0 /mnt (把磁盤作為一個分區時可以用mount /dev/sdb /mnt掛載)
但是多分區時不行,因為需要mount /dev/sdb1 /mnt這樣
因此,用kpartx -av /dev/loop0把虛擬磁盤的分區列出來
假如/dev/loop0相當于/dev/sdb,那么/dev/mapper/loop0p1和/dev/mapper/loop0p2相當于/dev/sdb2
掛載即可
如何卸載呢?反向來一遍
包含lvm
同樣,先映射到回環設備,然后創建一個pv,一個vg,再創建兩個lv
這樣實際上只有一個物理分區,太簡單了,弄復雜點。
創建兩個物理分區,一個直接格式化,一個做lvm,然后再創建一個vg,兩個lv。
先losetup再fdisk再kpartx,這樣的到了/dev/mapper/loop0p1和/dev/mapper/loop0p2
對/dev/mapper/loop0p1直接mkfs.ext3
在/dev/mapper/loop0p2上創建lvm分區
卸載時注意去激活卷組
假如給我一個有lvm的虛擬磁盤,要怎么掛載呢?就拿上邊的來說,在kpartx -av后,用vgchange -a y vgg激活卷組,然后就能在/dev/里看到vgg了,否則看不到。
為什么以這樣的分區格式為例呢?因為裝linux時默認分區格式就是這樣的,
兩個分區
/dev/sda1 ==> /boot
/dev/sdb2 ==> /dev/VolGroup00 ==> root,home,swap(或者沒有home)