linux虛拟機在使用過程中,硬碟空間不夠使用。由于前期沒有做lvm,是以隻能手動添加新的硬碟。
給虛拟機添加硬碟有兩種方法:
1、通過virsh attach-disk指令添加一塊硬碟到系統中,即時生效,但系統重新開機後新硬碟會消失。
2、通過修改虛拟機配置檔案進行添加,永久生效。
現在我來一一介紹方法一和方法二。
方法一、通過virsh attach-disk指令添加硬碟
首先看看在未添加新硬碟系統的分區情況。
fdisk –l
df –h

從上圖我們可以看到目前系統中隻有一塊硬碟vda,而且被分成3個分區,其中vda1為系統啟動分區。
下面開始添加硬碟:
先使用 qemu-img添加一塊新的硬碟
qemu-img create -f qcow2 /vhost/testdisk.img 20g
現在開始使用virsh attach-disk指令把新硬碟添加到虛拟機上。
virsh attach-disk ilanni01 /vhost/testdisk.img vdb
該指令的意思是把/vhost/testdisk.img硬碟添加到虛拟機ilanni01中,并且該硬碟在虛拟機系統中顯示的硬碟名稱為vdb。
現在在系統中檢視是否已經挂載該硬碟,使用fdisk指令,如下圖:
以上操作是在虛拟機運作是,進行操作的。
現在我們把虛拟機關閉然後,再添加看看。
virsh destroy ilanni01
virsh list –all
再次使用virsh attach-disk添加新的硬碟vdc,如下指令:
virsh attach-disk ilanni01 /vhost/test1.img vdc
通過上圖我們可以發現,通過virsh attach-disk添加硬碟時,隻能是虛拟機運作時才能添加,而且是即時生效的。
現在我們重新啟動虛拟機看看,如下圖:
通過上圖,我們可以看到通過virsh attach-disk指令添加的硬碟在重新開機系統後,添加的新硬碟失效。
那麼現在我們來看第二種方法通過修改配置檔案來添加新硬碟。
要通過修改配置檔案來添加硬碟,我們首先要關閉虛拟機,否則無法正常添加。
關閉虛拟機,然後使用virsh edit指令修改虛拟機的主配置檔案。
虛拟機的所有配置檔案都存放在/etc/libvirt/qemu,如下圖:
編輯虛拟機配置檔案,如下圖:
配置檔案中,我們找到有關硬碟的代碼:
<disk type=’file’ device=’disk’>
<driver name=’qemu’ type=’qcow2′ cache=’none’/>
<source file=’/vhost/ilanni01.img’/>
<target dev=’vda’ bus=’virtio’/>
<address type=’pci’ domain=’0x0000′ bus=’0x00′ slot=’0x04′ function=’0x0’/>
</disk>
現在我們在</disk>這之後,添加如下的代碼
<source file=’/vhost/testdisk.img’/>
<target dev=’vdb’ bus=’virtio’/>
注意其中type表示硬碟的格式
file表示硬碟所在的路徑
dev表示硬碟在系統中顯示的硬碟名稱
bus表示硬碟的接線類型,如果是windows系統一般是ide。
添加完畢後,我們來啟動虛拟機看看實際的效果。
可以看到硬碟已經被添加進來了。
第一種方法和第二種方法的差別,以上兩種方法都能添加硬碟。
但是如果是使用第一種方法添加的硬碟,使用virsh edit ilanni01編輯時,是無法看到第一種方法添加的硬碟的,同時在系統重新開機添加的硬碟會消失。也就是說使用第一種方法添加的硬碟是在ilanni01.xml這個配置檔案中看不到的。
除此之外,如果是解除安裝硬碟,通過第一種方法添加的一定要在虛拟機運作時解除安裝。否則會報錯,但是還會把該磁盤解除安裝掉。而且在此之前對硬碟的操作、分區,等都還存在。
解除安裝硬碟我們可以使用virsh detach-disk指令,如下圖:
virsh detach-disk ilanni01 –target vdb
使用virsh detach-disk ilanni01 –target vdb 也可以解除安裝通過virsh edit ilanni01添加的硬碟。但是此時配置檔案ilanni01.xml中還是有此資訊的。使用 virsh attach-disk ilanni01 /vhost/testdisk.img vdb指令可以再增加,系統重新開機後還是存在的。
綜上所述,在我們添加硬碟時,建議還是使用第二種方法。