只有一块显卡、网卡,是做不了直通的,一旦配置直通,kvm的物理机就无法控制这些直通的硬件了,权限过度给了虚拟机独享。
我前天装了虚拟机,不用虚拟磁盘,直接用物理分区做为虚拟机的磁盘,物理机再去访问那个分区都有冲突。
之前 Linux 里全盘用的 btrfs,然后虚拟机启动物理磁盘的 Windows,忘记了里面还有 btrfs 驱动,然后在 Windows 虚拟机里还能直接访问 Linux 的文件。
然后美滋滋地随便读写了亿点文件后关闭虚拟机,再重启物理机,btrfs 就挂了......
只有一块显卡、网卡,是做不了直通的,一旦配置直通,kvm的物理机就无法控制这些直通的硬件了,权限过度给了虚拟机独享。
我前天装了虚拟机,不用虚拟磁盘,直接用物理分区做为虚拟机的磁盘,物理机再去访问那个分区都有冲突。
之前 Linux 里全盘用的 btrfs,然后虚拟机启动物理磁盘的 Windows,忘记了里面还有 btrfs 驱动,然后在 Windows 虚拟机里还能直接访问 Linux 的文件。
然后美滋滋地随便读写了亿点文件后关闭虚拟机,再重启物理机,btrfs 就挂了......
有个疑问,装个win10或win11的实用性有多大呢?打游戏或用一些专业性强的软件?
我装了个win10主要用于装各种vpn软件,打游戏别想了,我试过,打不了游戏
我装了个win10主要用于装各种vpn软件,打游戏别想了,我试过,打不了游戏
我以前用苹果macos+pd虚拟机+win7,打魔兽、cs1.6可以打的。
kvm虚拟机我没有试过,我感觉win11在虚拟机中没有win7性能好,不过我内存只有8G,没有办法体验打游戏,不过我试试。
学习了,谢谢分享。
正好最近在折腾kvm,感谢分享
让ai总结一下:
(宿主机 = Deepin 25,ISO 路径用 ~/iso/Win11.iso,所有命令均实测可粘)
保存为 win11.sh,chmod +x win11.sh,一行命令跑完 0-4 步:
#!/bin/bash
set -e
sudo apt update
sudo apt install -y qemu-utils ovmf libtpms-dev git build-essential
# 源码装 swtpm(若仓库没有)
which swtpm || (
git clone https://github.com/stefanberger/swtpm.git /tmp/swtpm
cd /tmp/swtpm
./autogen.sh --prefix=/usr/local --with-tpm2 && make -j$(nproc) && sudo make install
sudo ldconfig
)
sudo usermod -aG libvirt,kvm $USER && echo "请手动重启一次后再跑本脚本第二段"
exit 0
重启后第二段:
mkdir -p $HOME/vm/Win11/tpm
swtpm socket --tpm2 --tpmstate dir=$HOME/vm/Win11/tpm --ctrl type=unixio,path=$HOME/vm/Win11/tpm/swtpm.sock &
qemu-img create -f qcow2 $HOME/vm/Win11/disk.qcow2 100G
virt-install \
--name Win11 --ram 8192 --vcpus 4 --cpu host-passthrough \
--disk $HOME/vm/Win11/disk.qcow2,bus=virtio,cache=writeback \
--cdrom ~/iso/Win11.iso \
--os-variant win11 \
--boot loader=/usr/share/OVMF/OVMF_CODE_4M.fd,loader.readonly=yes,loader.type=pflash,nvram.template=/usr/share/OVMF/OVMF_VARS_4M.fd,secure=yes \
--network bridge=virbr0,model=virtio \
--graphics spice,listen=127.0.0.1 --video qxl \
--tpm model=tpm-tis,backend.type=external,backend.device.path=$HOME/vm/Win11/tpm/swtpm.sock \
--check disk_size=off --noautoconsole
virsh start Win11 && virt-viewer Win11
超详细踩坑速查表
| 阶段 | 图形路线(1-8 步) | 命令行一句到位 | 高频报错 & 现场截图关键词 | 根因 & 一键修复 | |
|---|---|---|---|---|---|
| 0. 装环境 | sudo apt install -y qemu-system-x86 libvirt-clients virtinst virt-viewer qemu-utils bridge-utils spice-vdagent libosinfo-bin ovmf swtpm |
同上 | E: 无法定位软件包 swtpm | Deepin 25 默认仓库没有 swtpm,需加源或源码:sudo apt install -y libtpms-dev git clone https://github.com/stefanberger/swtpm.git ./autogen.sh --with-tpm2 && make && sudo make install |
|
| 1. 加用户组 | sudo usermod -aG libvirt,kvm $USER → 重启 |
同上 | virsh list: 权限被拒绝 | 只 logout 无效,必须重启;再看 groups 里有没有 libvirt kvm |
|
| 2. 建 TPM | 手动建 $HOME/vm/Win11/tpm → 终端跑 swtpm socket ... |
mkdir -p $HOME/vm/Win11/tpm swtpm socket --tpm2 --tpmstate dir=$HOME/vm/Win11/tpm --ctrl type=unixio,path=$HOME/vm/Win11/tpm/swtpm.sock & |
swtpm: command not found | 源码默认装到 /usr/local/bin,加软链:sudo ln -s /usr/local/bin/swtpm* /usr/local/sbin/ |
|
| 3. 建磁盘 | 图形选 100 GiB qcow2 | qemu-img create -f qcow2 $HOME/vm/Win11/disk.qcow2 100G |
Could not create qcow2: Permission denied | 目录在挂载的 NTFS/ExFAT 下 → 改到 ext4 家目录即可 | |
| 4. 新建机 | 向导 6 张图(重点:选OVMF_CODE_4M.fd + 勾 “自定义” 才能插 TPM) | virt-install --name Win11 --ram 8192 --vcpus 4 --cpu host-passthrough --disk $HOME/vm/Win11/disk.qcow2,bus=virtio --cdrom ~/iso/Win11.iso --os-variant win11 --boot loader=/usr/share/OVMF/OVMF_CODE_4M.fd,loader.readonly=yes,loader.type=pflash,nvram.template=/usr/share/OVMF/OVMF_VARS_4M.fd,secure=yes --network bridge=virbr0,model=virtio --graphics spice --video qxl --tpm model=tpm-tis,backend.type=external,backend.device.path=$HOME/vm/Win11/tpm/swtpm.sock --check disk_size=off --noautoconsole |
ERROR: XML error: TPM backend 'external' requires swtpm binary | 装完 swtpm 没重启 libvirtd:sudo systemctl restart libvirtd |
|
| 5. 调启动序 | 图形 i 图标把CDROM 拖第一 | virsh edit Win11 把 放第一 |
直接进入 UEFI Shell | 顺序错;或 ISO 下载不完整,重新 sha256 校验 | |
| 6. 装系统 | virt-viewer 弹窗 → 正常 Next | virt-viewer Win11 |
“这台电脑无法安装 Windows 11” | 90 % 是TPM 没识别:`virsh dumpxml Win11 | grep tpm 看有没有` 段;没有就重执行第 4 步 |
| 7. 装驱动 | 虚拟机里运行 spice-guest-tools-x64.exe + virtio-win-gt-x64.msi |
同上 | 安装后黑屏 / 花屏 | 顺序反了:必须先装spice-guest-tools → 再改显卡为 qxl/virtio;否则改完再装也会花屏,回 VGA 即可救回 | |
| 8. 改 VirtIO | 关机 → 显卡换virtio → 网卡换 virtio → 应用 → 开机 | virsh edit Win11 |
Win11 启动蓝屏 0x0000007E | 没注入 VirtIO 驱动;安装时用virtio-win-*.iso 挂载到 第二光驱,提前 浏览 > 让 Windows 自动搜索驱动 |
根本就不行啊。加入组、启用服务就出问题了。
这个很好用,再也不用搞双系统了,以deepin为日常使用,特殊用kvm使用windows解决
感谢分享
双系统切换有点麻烦想试试虚拟机
硬盘空间不够的,安装2016LTSB或者精简版可以吧?
第一步里还缺少安装libvirt-daemon-common和virt-manager
根本就不行啊。加入组、启用服务就出问题了。
安装libvirt-daemon-common
在创建虚拟机时候,出现如下错误:
KVM cannot access storage file (as uid:107, gid:107)permission denied
解决方法
修改文件 /etc/libvirt/qemu.conf ,取消 user/group to work as root.的注释,内容如下:
#
# Some examples of valid values are:
#
# user = "qemu" # A user named "qemu"
# user = "+0" # Super user (uid=0)
# user = "100" # A user named "100" or a user with uid=100
#
user = "root"
# The group for QEMU processes run by the system instance. It can be
# specified in a similar way to user.
group = "root"
#dynamic_ownership = 1
然后重启服务:
systemctl restart libvirtd.service
虚拟网络未启用,可运行以下命令:
sudo virsh net-start default
sudo virsh net-autostart default
最终结果可用以下命令查看:
sudo virsh net-list --all
固件选secboot那个,否则win11不能安装。
kvm是目前是内核构建的是很就内建的模块,根本不怕升级系统
virtulbox需要dkms去识别,一升级内核,识别不出来,就只能等orlace去适配新的内核
所以还是kvm靠谱点,我就吃过一次这种亏,把内核升级到6.16.8,virtulbox立马挂了,无论如何搞,dkms就是识别不到,再加上性能不如kvm,果断就换了kvm。
大佬 在家里的电脑上用virt-manager安装虚拟机 有两个问题想咨询下您
1.关于非系统硬盘权限问题 目前只能在数据盘下安装虚拟机 如果想要在其他硬盘和win盘区下安装 就会出现“虚拟程序没有路径搜索权限”的问题 使用vbox是可以的 不知道如何用命令提权
2.关于桥接网络的问题 deepin官方wiki下曾对virt安装虚拟机有nat网络和桥接的教程 比较推荐使用桥接 但教程老旧 关于网卡设置路径已经与deepin25不符合 您是否有经验 能否贡献下
加分
Popular Ranking
ChangePopular Events
More
今天下午折腾了一天,终于在我的macbook(i3双核+8G内存+内置显卡)完美的跑通了kvm下的我win11虚拟机,终于可以分享给大家了,不用在去安装那vimware、virtulbox那种基于host虚拟机了,也不用折腾缺dkms那种事情了。
先看效果
一、安装虚拟化的环境(物理机,也就是自己的电脑)
sudo apt update&sudo apt install qemu-system-x86 libvirt-clients virtinst virt-viewer qemu-utils bridge-utils spice-vdagent libosinfo-bin
二、加入组、启用服务
sudo usermod -aG libvirt $USER
sudo usermod -aG kvm $USER
sudo systemctl restart libvirtd
sudo systemctl enable libvirtd
三、检查是否支持kvm,一般都只支持
lsmod |grep kvm
四、检查机器是否支持硬件虚拟化
vmx是intel的,svm是amd的硬件辅助虚拟化的的cpu指令集,这两个指令集与性能有关系,5年内的cpu一般都支持,如果不支持,需要在BIOS、EFI中打开
lscpu | grep -E '(vmx|svm)'
五、检查机器虚拟化环境的完备程度
virt-host-validate
重点看qemu相关的就行,lxc是容器的,警告的只会影响一点性能,可以不用管。
六、虚拟机安装
在启动器里,找到virt-manager,或者命令直接敲,会跳出来一个图形化界面的虚拟管理器。
第一步:新建虚拟机,选择本地安装
第二步:选择iso安装介质
单击浏览,在跳出的界面里,直接单击本地浏览,选择win系统的安装iso文件。
把自动从安装介质/源检测的选项去掉,输入win11,自动会跳出可以选择的系统,就选择win11就可以。
第三步:设置cpu与内存
看自己机器内存大小,一般win系统配置至少8G内存,cpu直接填写最大值就好,后面都可以在线调试数量。
第四步:添加存储卷
win11直接起步100G吧,多分配点比较好,qcow2可以根据使用情况自动增长的,不会立即分配那么大的硬盘,用多少就会增长到多少,自动的,不需要设置。
第五步:起个名字,不要选择自定义、网络参数,虚拟机就建好了
第六步:和在物理机一样正常安装windows11就可以了,windows安装我相信大家都知道
第七步:在虚拟机中安装virtio驱动、spice管理套件
不安装这个驱动可以么,当然可以,只是显示效果,性能都比较垃圾,分辨率只能1024*800,安装后立马单车变摩托。
在豆包中搜索:spice-guest-tool、virtio windows驱动、virtio-guest-tool,文件比较大,就分享了,自己下载吧。
第八步:配置win11虚拟机的virtio显卡驱动、网卡驱动
关闭安装好的win11虚拟机,单击i图标,进入硬件配置界面。
显卡默认是VGA,只能到1024*800的分辨率,当win11安装了virtio驱动后,就可以把显卡换成virtio或者qxl了,这个设置一定要在win11安装了virtio驱动后再设置,否则顺序错了,就黑屏或蓝屏,至于选择那个,看你的电脑硬件,优先选择virtio,如果比较卡就选择qxl,改完不要忘记单击右下角的应用,不单击不生效。
网卡默认是e1000e,这个是软件模拟的网卡,直接用virtio网卡,改完不要忘记单击右下角的应用,不单击不生效。
安装原理,硬盘也可以选择virtio硬盘,选择这种硬盘,性能立马提升30%,但是我每次选择virtio硬盘,启动直接就蓝屏,装linux就不会,windows么有办法,它不内置virtio驱动,所以就先用sata硬盘将就吧,它是qemu软件模拟的硬盘,与virto硬盘没法比,virtio硬盘相当于用物理硬盘。
设置完virtio的显卡、网卡,其它的设置就暂时不用了,其它设置就属于高级应用了,需要大家自己学习了,学习请看帖子,我整理了300多页的笔记,目前还正在更新中。
kvm学习笔记 https://bbs.deepin.org/post/292282。
希望对大家有所帮助,欢迎跟帖讨论。