virsh VM 指令

tags: IT

Install qemu-img and virsh

sudo apt install cpu-checker -y # kvm-ok sudo apt install qemu-kvm virt-manager virtinst libvirt-clients bridge-utils libvirt-daemon-system -y apt-get install libosinfo-bin # osinfo-query

在 terminal 下從 iso 建立 virtual machine

  1. 建立一個 20G 的虛擬硬碟空間
sudo qemu-img create -f qcow2 ~/linux_test.qcow2 20G
  1. 用 virsh-install 安裝 linux
sudo virt-install --virt-type kvm --name ubuntu1804 --ram 2048 --disk ~/linux_test.qcow2,format=qcow2 --network network=default --graphics vnc,listen=0.0.0.0,password=YOUR_PASSWORD --noautoconsole --os-type=linux --os-variant=ubuntu17.10 --cdrom=/home/seal/Downloads/ubuntu-18.10-desktop-amd64.iso

Install RHEL

sudo virt-install --virt-type kvm --name RHEL7 --ram 2048 
  --disk ~/rhel7.9.qconw2,format=qcow2 
  --network network=default 
  --graphics vnc,listen=0.0.0.0,password=YOUR_PASSWORD 
  --noautoconsole 
  --os-type=linux --os-variant=rhl7 
  --cdrom=/home/seal/Downloads/<rhel img>

如果在 remote 狀態下可能會卡在手動安裝.
如果沒有 console, 可以考慮用 vnc-viewer 來顯示手動安裝畫面.
畫面完成後可以得到 ks file 來做自動安裝
virt-manager 也可以做到同樣的事情,但是在 macbook m1 會無法執行

用 ks file 來做 auto installation
/root/anaconda-ks.cfg

如何在 vm 中新增一個 disk (attach disk)

建立一個 6G 左右的 raw 空間 (rhel6 基本需求為 6g 的空間)
這邊沒辦法使用 qcow2 ,會無法進行 partition 跟格式化

qemu-img create -f raw disk_raw.img 6G

接著用 attach-disk 把硬碟接上 VM

virsh attach-disk {vm-name}  --source /var/lib/libvirt/images/{img-name-here} --target vdb --persistent

接著在 vm 裡面做一般的分割跟格式化

fdisk /dev/vda       //分割 vda 假設新的裝置在 vda
mkfs.ext4 /dev/vdb1  //格式化成 ext4

透過 lsblk 應該可以得到以下結果

$lsblk
...
...
vdb                         252:16   0     6G  0 disk
└─vdb1                      252:17   0     6G  0 part /vdb

最後對 vdb1 做 mount

mount /dev/vdb1 /vdb

成功的話就可以再把檔案放到裡面了

檢查在 vm 上的 HDD

$ virsh domblklist rhel-server-6.10-x86_64-dvd.iso
Target     Source
------------------------------------------------
sda        /home/user/linux_test.qcow2
hda        -
vdb        /home/user/rhel_extra_6G

https://www.cyberciti.biz/faq/how-to-add-disk-image-to-kvm-virtual-machine-with-virsh-command/

從 cdrom reboot

把 cd rom mount 上 VM

virsh change-media  image.iso hda ~/clonezilla-live-2.7.0-10-amd64.iso

Error: to '/var/run/libvirt/libvirt-sock': No such file or directory

Reference:

sudo systemctl enable libvirtd
sudo systemctl start libvirtd

Error: You will need to grant the 'libvirt-qemu' user search permissions

chown libvirt-qemu:libvirt-qemu rhel-server.img
chown libvirt-qemu:libvirt-qemu rhel.qconw2 

參考