qemu上加载centos

1 创建一个大小为36G的镜像文件,镜像文件的格式qcow2:

qemu-img create -f qcow2 centos-temp.qcow2 36G

2给镜像文件加载centos镜像:

qemu-system-x86_64 -cpu host -smp 2 -m 4096 -enable-kvm -boot menu=on -vnc :99 -usb -device usb-ehci -device usb-kbd -device usb-mouse -device usb-tablet -hda centos-temp.qcow2 -cdrom $iso_name

3给虚拟机桥接虚拟网卡到主机:

配置IP的方法有两种

1>通过nbd对kvm创建的虚拟系统盘centos-temp.qcow2 远程配置

  • qemu-nbd -n --connect=/dev/nbd3 centos-temp.qcow2
  • pvscan --cache
  • vgscan
  • lvscan
  • vgchange -ay vgroup01(vgroup01是修改的vg名字,因为连接到loacalhost的系统盘vg名字和localhost vg同名了,导致每次挂载的时候实际是挂载本地主机的vg。)
  • mount /dev/vgroup01/root /mnt/
  • cd /mnt/etc/sysconfig/network-scripts,配置文件ifcfg-eth0
  • umount /mnt/
  • qemu-nbd --disconnect /dev/nbd3
  • vgchange -an vgroup01

关于这个修改vg的名字有个链接在里面说了现象和原因:

https://segmentfault.com/a/1190000009446943

我遇到的问题,跟这个类似。

通过nbd连接映射虚拟系统盘到localhost的镜像,需要找到/etc/sysconfig/network-scripts文件路径,就要找到系统盘vg名称,系统盘的vg名称如果和localhost 系统盘所在的vg名称是相同的,即便是lvm vgrename vgoldname newname修改vg的名字,在配置好网络,disconnect 之后,kvm重新对系统加载的时候查找原有的/dev/centos/root 、/dev/centos/swap文件而出错,因为叫centos的vg在连接到localhost的时候被修改成为 vgroup01。

2>直接去虚拟机/etc/sysconfig/network-scripts下加入正常的配置文件ifcfg-eth0

TYPE=Ethernet

BOOTPROTO=static

DEFROUTE=yes

DEVICE=eth0

ONBOOT=yes

IPADDR=192.168.xxx.xxx

NETMASK=255.255.xxx.xxx

GATEWAY=192.168.xxx.xxx

DNS1=192.168.xxx.xxx

设置桥接和永久加载虚拟机:

(b=centos-67.qcow2; sudo sh -c "chown :kvm /dev/vhost-net; chmod g+rw /dev/vhost-net; ip tuntap add dev tap67 mode tap; ip link set tap67 up promisc on; brctl addif br0 tap67"; nohup qemu-system-x86_64 -cpu host -smp 6 -m 28G -enable-kvm -hda $b -vnc 0.0.0.0:67 -device virtio-net,netdev=t0,mac=ac:1f:6b:c5:37:67 -netdev tap,vhost=on,id=t0,ifname=tap67,script=no,downscript=no -device nvme,drive=hd1,serial=foo -drive if=none,id=hd1,format=qcow2,file=data-67-1.qcow2 -device nvme,drive=hd2,serial=foo2 -drive if=none,id=hd2,format=qcow2,file=data-67-2.qcow2 1>qemu.log 2>&1 &)

你可能感兴趣的:(综合,centos,linux,网络)