如果你习惯了 VMware 或 VirtualBox,刚刚转战 Linux 原生的 KVM/QEMU (libvirt) 虚拟化环境,准备大展身手安装一台 Windows 虚拟机时,大概率会遇到几个让人摸不着头脑的小问题。
今天,我们就通过三个常见的“新手灵魂拷问”,把 KVM 安装 Windows 的核心逻辑串起来。
1. 为什么 sudo cd 进不去虚拟机的默认目录?
在 Linux 系统中,libvirt 虚拟机的默认磁盘镜像存放路径是 /var/lib/libvirt/images/。这个目录权限很严格,普通用户进不去。很多人的第一反应是敲下:sudo cd /var/lib/libvirt/images/
结果系统会无情地报错:sudo: cd: command not found。
为什么会这样?
因为 cd(切换目录)根本不是一个独立的应用程序,它是 Shell(命令行解释器)自带的一个内部指令。而 sudo 的作用是赋予你最高权限去执行一个独立的程序。既然找不到一个名叫 cd 的独立程序,sudo 自然就罢工了。
正确姿势:
你需要先用 sudo 提升整个 Shell 会话的权限,然后再自由切换目录。
- 方法 A(推荐): 输入
sudo -i,直接切换到 root 用户的专属环境,然后执行cd /var/lib/libvirt/images/。 - 方法 B: 输入
sudo -s,保持当前用户环境但获取 root 权限,同样再执行cd命令。
(操作完成后,输入exit即可退回普通用户状态。)
2. 找不到硬盘?你需要 virtio-win.iso 救场
当你成功进入目录,开始安装 Windows 虚拟机,到了“选择安装位置”那一步时,你可能会傻眼:列表里空空如也,系统提示找不到任何驱动器。
这时候,你就需要请出 virtio-win.iso 这个神器了。(官方下载地址通常类似于:https://fedora-virt.repo.nfrance.com/virtio-win/...)
它是干什么用的?
为了让虚拟机获得媲美物理机的极致磁盘读写和网络性能,KVM 通常会给虚拟机配置 VirtIO 架构的虚拟硬件。然而,微软的 Windows 系统原生并不认识这种开源的虚拟硬件,自然也就认不出虚拟硬盘。
如何使用:
- 在创建虚拟机时,配置两个虚拟光驱。
- 光驱 A 挂载 Windows 操作系统的安装镜像;光驱 B 挂载下载好的
virtio-win.iso。 - 在安装界面提示找不到硬盘时,点击“加载驱动程序”。
- 浏览到
virtio-win.iso所在的盘符,找到对应你 Windows 版本(如amd64\w10)的文件夹并加载。 - 见证奇迹的时刻——虚拟硬盘出现了!安装完成后,还可以继续用这个光盘把虚拟网卡(NetKVM)、虚拟显卡(QXL)等驱动全部打齐。
3. qcow2 到底是个什么格式?
在准备虚拟机硬盘时,你一定会遇到 qcow2 这个词。
简单粗暴地理解:qcow2 在 KVM 里的地位,就完全等同于 VMware 里的 .vmdk 文件。 它就是你那台 Windows 虚拟机的“物理硬盘”。
为什么 KVM 独宠 qcow2?
全称 QEMU Copy On Write version 2 的它,拥有几个极其强大的特性:
- 按需分配(动态扩展): 假设你给 Windows 分配了 100GB 的 qcow2 硬盘,刚装完系统实际上只占用了 20GB。那么在你的宿主机硬盘上,这个文件就只有 20GB 大小。只有当你在虚拟机里存入新文件,它才会慢慢变大。极大节省了宿主的存储空间。
- 原生快照支持: 它可以把虚拟机的状态像拍照一样记录下来。更新系统前打个快照,万一蓝屏崩溃,几秒钟就能回滚到健康状态。
- 高级特性: 支持数据透明压缩和磁盘加密。
总结
现在,完整的 KVM Windows 安装逻辑应该很清晰了:
首先,通过正确的命令获取权限进入 /var/lib/libvirt/images/ 目录;接着,在那里创建一个灵活强大的 qcow2 虚拟硬盘;最后,同时挂载 Windows 安装盘和 virtio-win.iso 驱动盘,完美点亮你的虚拟机!
版权属于:soarli
本文链接:https://blog.soarli.top/archives/879.html
转载时须注明出处及本声明。