pve 不够灵活,unraid不单收费也不灵活,通过一段时间的使用,决定还是arch神教。已经基本安装了一个archlinux系统
内容占用 150-170M 硬盘占用1.9G左右。我efi分区有一个 功能完整带网络的winpe,还有一个 alpine 所以占用有700M,实际不会这么大
df -h
Filesystem Size Used Avail Use% Mounted on
dev 7.8G 0 7.8G 0% /dev
run 7.8G 1.1M 7.8G 1% /run
/dev/nvme0n1p3 4.9G 1.9G 2.7G 42% /
tmpfs 7.8G 0 7.8G 0% /dev/shm
tmpfs 7.8G 0 7.8G 0% /tmp
/dev/nvme0n1p1 5.0G 710M 4.3G 14% /boot/efi
tmpfs 1.6G 0 1.6G 0% /run/user/1000
初始教程基于arch,后面可能会尝试用alpine 看时间和精力吧。
安装组件
sudo pacman -S qemu-base # 大概 329M 84个包 保护 qemu-img工具
capstone-4.0.2-6 dtc-1.6.1-4 edk2-ovmf-202208-1 fuse3-3.12.0-1 hicolor-icon-theme-0.17-2 libcacard-2.7.0-2 libdrm-2.4.114-1 libepoxy-1.5.10-1
libglvnd-1.5.0-1 libnfs-5.0.2-1 libomxil-bellagio-0.9.3-3 libslirp-4.7.0-1 libssh-0.10.4-1 liburcu-0.13.2-1 libxdamage-1.1.5-4
libxkbcommon-1.4.1-1 libxshmfence-1.3.1-1 libxxf86vm-1.1.5-1 libyaml-0.2.5-1 llvm-libs-14.0.6-3 lm_sensors-1:3.6.0.r41.g31d1f125-1 lzo-2.10-3
mesa-22.2.1-1 multipath-tools-0.9.3-1 ndctl-74-1 numactl-2.0.16-1 pixman-0.42.2-1 qemu-audio-spice-7.1.0-10 qemu-block-curl-7.1.0-10
qemu-block-dmg-7.1.0-10 qemu-block-nfs-7.1.0-10 qemu-block-ssh-7.1.0-10 qemu-chardev-spice-7.1.0-10 qemu-common-7.1.0-10
qemu-hw-display-qxl-7.1.0-10 qemu-hw-display-virtio-gpu-7.1.0-10 qemu-hw-display-virtio-gpu-gl-7.1.0-10 qemu-hw-display-virtio-gpu-pci-7.1.0-10
qemu-hw-display-virtio-gpu-pci-gl-7.1.0-10 qemu-hw-display-virtio-vga-7.1.0-10 qemu-hw-display-virtio-vga-gl-7.1.0-10
qemu-hw-s390x-virtio-gpu-ccw-7.1.0-10 qemu-hw-usb-host-7.1.0-10 qemu-hw-usb-redirect-7.1.0-10 qemu-hw-usb-smartcard-7.1.0-10 qemu-img-7.1.0-10
qemu-pr-helper-7.1.0-10 qemu-system-x86-7.1.0-10 qemu-system-x86-firmware-7.1.0-10 qemu-tools-7.1.0-10 qemu-ui-curses-7.1.0-10
qemu-ui-opengl-7.1.0-10 qemu-ui-spice-app-7.1.0-10 qemu-ui-spice-core-7.1.0-10 qemu-virtiofsd-7.1.0-10 seabios-1.16.0-3 snappy-1.1.9-2
spice-0.15.0-1 usbredir-0.13.0-1 vde2-2.3.3-3 virglrenderer-0.9.1-1 vulkan-icd-loader-1.3.226-1 wayland-1.21.0-1 wolfssl-5.5.3-1
xkeyboard-config-2.37-1 qemu-base-7.1.0-10
sudo usermod -a -G kvm user_name
sudo pacman -S ovmf # efi的支持 可选安装 前面装qemu的时候 应该自动安装上了 edk2-ovmf 17M
kvm是内核内置的,不需要另外安装。
我是不建议使用libvirt的,因为shell方式更加灵活 也更简单。对了解qemu-system的也由帮助,后面所有教程和记录 全部基于shell
libvirt
sudo pacman -S libvirt #可选,命令行模式用的习惯,就不用这个工具,可以用xml管理虚拟机,libvirt是Linux上实现虚拟化功能的库,是长期稳定的C语言API,支持KVM/QEMU、Xen、LXC等主流虚拟化方案。 50M左右 5个包
查看其他相关包的包sudo pacman -Ss qemu
音频映射,你能需要 多几个包: qemu-audio-alsa qemu-audio-pa 等几个包
挂载exfat 和机械盘分区
|
|
基本系统
只安装了一下包
|
|
qemu-system-x86_64 命令行方式 灵活 创建虚拟机
参数 参考 :https://man.archlinux.org/man/qemu.1
|
|
实例: 先弄一个win10虚拟机
创建磁盘
如果能自己 估算每一个虚拟机的磁盘占用,建议用raw格式,因为img文件兼容性更好一些,qcow2 在win下需要转换才可以访问。而且img文件可以用ventoy直接在物理机启动。各有优势吧,自己选择。
qemu-img create -f raw -o size=16G /mnt/exfat/win10.img
#qcows2多一个是否初始分配空间的选项,也就是类似vhd的动态磁盘 具体含义这里不解释
qemu-img create -f qcow2 -o preallocation=falloc|off|full|metadata size=10G q4.qcow2
准备安装镜像和驱动iso
/mnt/hdd/iso/windows/Win10-21H2.iso
/mnt/hdd/iso/virtio-win-0.1.225.iso
virtio驱动iso下载地址: https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/archive-virtio/
查看机型和接口参数
机型尽量用q35,对新特性支持好一些,新linux 或win8以上win 或者mac 接口尽量用virtio,accel当然多数情况都用kvm,或者直接 -enable-kvm 也可以
qemu-system-x86_64 -machine help
后面都选 pc-q35-7.1
启动一个virtio硬盘和桥接网卡的win10虚拟机 q35
qemu-system-x86_64 -enable-kvm -machine pc-q35-7.1 -m 8192 \
-drive index=1,media=disk,format=raw,if=virtio,file=/mnt/exfat/win10.img,cache=unsafe \
-drive index=2,media=cdrom,file=/mnt/hdd/iso/windows/Win10-21H2.iso \
-drive index=3,media=cdrom,file=/mnt/hdd/iso/virtio-win-0.1.225.iso \
-vnc :1
不指定vnc的话,他默认是监听本地 类似::1:5900,其他机器是连不上的。所以这里指定一下:x
外部机器 vnc 链接 ip:5901 即可,鼠标可能会错位,多用键盘配合 可以顺利安装上win10
性能优化
上了个厕所发现还没装完。。
安装过程并不快,感觉还少了点什么。,然后想起来。。没指定cpu。。。大概是单核。。。哈哈哈
-smp 2,sockets=1 #一个cpu2个核心的意思
-smp 12,sockets=1,cores=6 # 单cpu 双核4线程
重新执行 。顺带加上引导菜单 -boot menu=on,strict=off
windows主机可以再加 -cpu host,hv_relaxed,hv_spinlocks=0x1fff,hv_vapic,hv_time
开启 Hyper-V enlightenments 提升性能
如果linux虚拟机可以 -drive file=disk_image,if=virtio,aio=native,cache.direct=on
可以 启用内核页归并节省内
网络 可以暂时用-netdev user,id=mynet0,hostfwd=tcp::13389-:3389 -device e1000,netdev=mynet0
并映射端口13389到虚拟机的3389里面
使用一个ICH-9 AHCI控制器的仿真层 -device ich9-ahci,id=ahci -device ide-drive,drive=disk,bus=ahci.0
显卡也可以指定一下-vga 如果linux和win建议 virtio-vga / virtio-gpu,如果要跑黑苹果建议 vmware,我这里 选择vmware
同时再加多一个winpe /mnt/hdd/iso/pe/FirPE-V1.8.1.iso
方便学习测试
鼠标指针偏移尝试 -usb -device usb-tablet
测试有效
重启后开机按esc 选择 3 win10安装盘,重新安装
源码: https://github.com/joyanhui/file.leiyanhui.com/blob/main/pve-unraid-kvm/kvm-baseNet-seaeBois.sh
注释如下
|
|
进阶功能和相关记录文章
基本安装
查看这里: https://dev.leiyanhui.com/arch/install-kvm/
关于efi模式启动
查看这里: https://dev.leiyanhui.com/kvm/ovmf/
进阶:配置桥接网络
桥接网络:https://dev.leiyanhui.com/kvm/net-br/
硬件直通 pci 和usb
查看这里 https://dev.leiyanhui.com/kvm/pci-usb/
声卡的直通/穿透
查看这里 https://dev.leiyanhui.com/kvm/sound-pass/
我的一些配置文件记录
查看这里 https://github.com/joyanhui/file.leiyanhui.com/tree/main/pve-unraid-kvm
kvm 开机自动启动
查看这里 https://dev.leiyanhui.com/kvm/auto_start_vm/
kvm安装macos
查看这里:https://dev.leiyanhui.com/kvm/install-macos-base/
kvm安装macos附加上一个win
查看这里:https://dev.leiyanhui.com/kvm/macos_add_win10/
我的kvm脚本参考
https://github.com/joyanhui/file.leiyanhui.com/tree/main/pve-unraid-kvm