ubuntu20.04 安装桥接虚拟机

ubuntu20.04 安装虚拟,将一个定制化的系统移植到虚拟机

1.安装必要的软件包

apt install qemu-kvm virtinst bridge-utils uml-utilities tightvncserver libvirt-daemon-system libvirt-daemon  net-tools libguestfs-tools

其它用的一些常用工具,比如ifconfig,如果需要,自行安装。

而且上面的这些包的安装或安装很多依赖包。

2. 配置桥接网络

要移植的系统不能以nat方式,要以暴露在局域网,做一个普通的终端节点。

netplan的yaml文件配置示例:


将要桥接的网卡放在bridges里。

tunctl -t tap0 

brctl addif br0 tap0

ifconfig tap0 0.0.0.0 promisc up

tunctl -t tap1 

brctl addif br0 tap1

ifconfig tap1 0.0.0.0 promisc up

将两个虚拟网卡桥接到br0的相关的物理网卡上

3. 创建虚拟磁盘

qemu-img create zzos.qcow2 -f qcow2 16G

qemu-img create -f qcow2 sata1.qcow2 900G

qemu-img create -f qcow2 sata2.qcow2 900G

4. 通过iso安装系统

qemu-system-x86_64 -enable-kvm -hda zzos.qcow2 -boot cd -cdrom /zos/ubuntu-20.04.1-desktop-amd64.iso -m 8192 vnc:4

需要重时候,重写启动qemu, 去掉-cdrom选项即可

5. 启动虚拟机

三块磁盘,两块网卡,8G内存。注意网卡的写法,使用了刚建立的两个桥接网卡设备。

qemu-system-x86_64 -name z4sys -m 8192 -smp 2 -cpu host -hda /zos/z4/z4os.qcow2 -hdb /storage/sata1.qcow2 -hdc /storage/sata2.qcow2 -boot c -enable-kvm -netdev type=tap,ifname=tap0,script=no,downscript=no,id=net0 -device e1000,netdev=net0,mac=5C:85:7E:40:92:F5,bus=pci.0,addr=0x3 -netdev type=tap,ifname=tap1,script=no,downscript=no,id=net1 -device e1000,netdev=net1,mac=5C:85:7E:40:92:F6,bus=pci.0,addr=0x4 -daemonize -vnc :4

6. 编辑qcow2镜像文件

安装工具包

apt install libguestfs-tools

guestmount -a zzos.qcow2 -m /dev/sda5 qcow_mount/

这里如果不知道有哪些分区可以,直接是使用sda,出错信息里会有提示有那几个分区可用。当然guestmount可用只读挂载。

dd的img文件挂载方式:

mount -o ro,loop,offset=3001444864 ubuntu_20.04_z4_v3.4.img tmp/

这里的offset=startsector * sectorsize, 通过fdisk获得这些信息

7. 至此,能够编辑镜像,就可以定制系统,或者用已定制文件系统挺好已经安装的系统。

这样做的好处是保证grub已经正确安装,不用折腾怎么在空虚拟磁盘安装引导程序了。

替换文件系统两个要点:

a,grub引导现在大都以uuid方式进行,确保元系统的grub部分和相关内核、内核模块不要被删除

b,/etc/fstab文件要使用原理文件系统的,不要替换;或者你用设备节点名替换uuid=“xxx”

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容