ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

虚拟机安装 CentOS 7 全流程:yum 源迁移与网络排错

虚拟机安装 CentOS 7 全流程:yum 源迁移与网络排错 上周帮同事在笔记本上装环境他一句话就把结论定了在虚拟机里开一台 CentOS 7几分钟搞定。结果两个小时过去他卡在 yum 报 404、网卡没起来、VMnet1 带黄色感叹号这三件事的连环坑里。这个场景我见过太多次了——虚拟机里装 CentOS 7 本身确实是十几分钟的事真正吃时间的从来不是装而是装之前没想清楚、装完之后不知道要做什么。这篇文章就按我自己反复重装、克隆、迁移的流程把从选平台、分资源、走安装流程到仓库迁移、网络修通、报错排查这一整条链路讲透。不管你是完全没碰过虚拟化的新手还是只想找一段能直接抄的 repo 替换命令的老手都能在这里找到能落地的部分。1. 动手之前先把VM和CentOS 7这两件事对齐1.1 VM在不同圈子里指的是三种东西搜索vm这个词出来的结果经常是错位的。有人在找虚拟机软件有人在找海康的 VM 视频管理平台还有人在折腾 GNS3 VM、PVE 里的虚拟机磁盘复制。这三个VM唯一的共同点只是缩写撞车技术栈完全不搭边。所以在你开始下载镜像之前先确认自己要的是哪一类如果你手上是一台要跑 Linux 服务、做实验、练命令行的机器那你要的是虚拟机软件 客户机操作系统这条线也就是 VMware Workstation / Oracle VM VirtualBox 这类宿主软件如果你是在做视频监控平台的部署那VM指的是一套需要授权许可的管理软件和 CentOS 7 没有直接关系如果你在用 PVE 或者 GNS3那VM是平台内部的资源单位操作入口完全不同。这篇内容只覆盖第一条线其余两类不要拿这篇的操作去套。顺便说一句热词里还有vm协议书vm协议解析vm二次开发这类属于特定行业的软件生态和虚拟化本身也没关系。搜索时把关键词补全成虚拟机 安装 CentOS 7结果会干净很多。1.2 CentOS 7 已经停止常规维护为什么还值得在虚拟机里装CentOS 7 在 2024 年 6 月 30 日走完了它的常规维护周期官方仓库的路径整体挪到了归档站。这件事带来的最直接影响就是你装完之后第一次执行 yum大概率会看到一堆 404 和 Cannot find a valid baseurl。很多教程还停留在几年前的写法照着做必然翻车。那为什么还要装它因为现实里还有大量存量环境跑在这个版本上很多企业内部系统的部署文档、中间件安装脚本、认证考试的实验环境都是围绕 CentOS 7 写的。你在虚拟机里放一台既能对齐这些老环境做兼容性验证又不用动自己的主力机。而且虚拟机的最大价值就在于试错成本几乎为零——分区改错了、SELinux 调崩了、配置文件删了回滚一个快照就回来了。这里有个预判要提前说清楚如果你只是想学 Linux 基础命令、想跑 Docker、想搭一套新环境那更省心的选择是 Rocky Linux、AlmaLinux 或者 Ubuntu LTS 这类还在活跃维护周期的发行版。CentOS 7 在虚拟机里的定位应该是兼容性沙盒而不是新项目的首选系统。这个判断会直接影响你后面分区怎么分、要不要装图形界面。1.3 宿主机上必须先确认的两件事第一件事是 CPU 虚拟化开关。开机进 BIOS/UEFI找 Intel VT-x 或者 AMD-V 相关的选项并打开否则虚拟机软件能装、能配置但一开机就卡在黑屏或者直接报此主机支持 Intel VT-x但该功能已禁用。判断方法很简单Windows 下打开任务管理器性能页签里看 CPU 那一栏有没有虚拟化已启用Linux 下执行grep -E vmx|svm /proc/cpuinfo有输出就是开了。第二件事是虚拟化平台的冲突。Windows 上如果你开过 WSL2、装过 Docker Desktop、或者打开了内核隔离里的内存完整性系统底层会占用硬件虚拟化能力VMware 就可能直接起不来报出和 Device/Credential Guard 不兼容的提示。这不是虚拟机软件坏了是两套虚拟化在抢同一份硬件资源。解决办法在第六节会详细拆这里你只需要先知道装虚拟机之前先把系统里其他的虚拟化功能捋一遍。第三件事算半个磁盘空间。别小看这个一块 20GB 的虚拟磁盘加上快照很容易把你本就紧张的 C 盘吃掉三四十个 G。养成习惯虚拟磁盘文件统一放一个专门的目录比如D:\VMs\并且保证那个盘至少留出 100GB 以上余量。2. 平台、资源与网络装之前必须拍板的四个决定2.1 VMware Workstation、VirtualBox、Hyper-V 怎么选这几个选择没有绝对优劣只有场景匹配度。我的实际体验是如果你要在本机做长期实验、频繁用快照和克隆VMware Workstation Pro 的综合体验最顺如果你完全不想付费也不想折腾授权VirtualBox 足够用代价是增强功能包需要自己处理内核头文件如果机器是 Windows 专业版并且你本来就在用 WSL2 或者 Hyper-V那用 Hyper-V 能省掉一整类冲突问题但它的网络配置对新手不太友好。平台优点明显短板适合谁VMware Workstation Pro快照/克隆/虚拟网络编辑器成熟图形性能好需要授权Windows 下可能与 Hyper-V 系功能冲突长期做实验、需要多环境切换VMware Workstation Player免费、轻量、够跑单机没有快照、没有克隆、网络编辑受限只想跑一台固定虚拟机Oracle VM VirtualBox完全免费开源跨平台一致性好增强功能需装内核头文件图形体验一般学生、预算敏感、多系统切换Hyper-VWindows 专业版自带与 WSL2 共存网络虚拟交换机配置门槛高快照机制弱已经在用 WSL2/Docker Desktop 的人顺带提醒一句安装包里带不带虚拟网络编辑器这个组件是 Pro 和 Player 最实质的差别之一。网络一乱没有这个工具你只能靠命令行和驱动重装去救麻烦得多。2.2 网络模式选错的代价NAT、桥接、仅主机网络模式是新手最容易随手点下一步的地方也是后期 90% 的连不上问题的根源。NAT 模式虚拟机和宿主机共享一个网络出口虚拟机可以访问外网宿主机可以用宿主机 IP 访问虚拟机但局域网里其他机器看不到你的虚拟机。默认的 VMnet8 就是这一套。适合绝大多数单机实验场景。桥接模式虚拟机直接接入你所在的物理局域网会从路由器的 DHCP 拿到一个和宿主机同网段的 IP局域网内其他设备能直接访问它。适合需要模拟真实服务器对外提供服务的场景代价是 IP 会变、可能和公司网络策略冲突。仅主机模式只在你和宿主机之间通信出不了外网。默认走 VMnet1。适合做纯隔离的测试比如模拟两台机器之间的通信又不能污染外网。我的默认建议是先用 NAT 跑通等确实需要被局域网访问时再换桥接。NAT 模式下宿主机和虚拟机之间的通信通路是天然的宿主机访问虚拟机的 IP 只要在同一网段就能通不涉及额外的防火墙策略。很多人一上来就选桥接结果在公司网络里拿到一个被策略隔离的 IP反而更难排查。后面第五节要讲的VMnet1 带黄色感叹号没有网络适配器其实都是这两个虚拟网卡背后的驱动和服务出了问题理解了这个对应关系排查方向就有了。2.3 CPU、内存、磁盘到底分多少资源分配的原则是够用就行别贪。给虚拟机分的资源是从宿主机真实扣掉的你给虚拟机 8 核 16G宿主机自己就只剩半条命。场景CPU内存磁盘说明最小化安装练命令、跑脚本1 核1 GB20 GB完全跑得动别少于 1G 否则安装器都吃力带 GNOME 桌面2 核2~4 GB30 GB图形界面吃内存1G 会非常卡跑 Docker / 中间件实验2~4 核4~8 GB40~60 GB镜像和日志占空间很快模拟集群多台1 核/台1~2 GB/台20 GB/台宁多台小配置不要一台大配置磁盘那一栏还要做一个选择是拆分成多个文件还是作为单个文件。多个文件便于拷贝和在文件系统间迁移单个文件在大磁盘上读写略快。个人建议选单个文件除非你有明确的分卷传输需求。另外记得选将虚拟磁盘存储为单个文件 按需分配精简置备这样 20GB 的盘实际只占你几 G。2.4 分区方案与安装类型的取舍新手常见做法是直接选自动分区这在实验场景完全没问题。但如果你想理解这套系统手动分区一次很有价值。CentOS 7 安装器默认走 LVM标准的最低要求分区有这么几块挂载点建议大小为什么/boot1 GB内核和引导文件独立出来避免根分区满了导致升级失败swap见下表内存吃紧时的缓冲也是休眠所需/15~20 GB系统本体和大部分软件包/home剩余用户数据独立重装系统时可保留/var10 GB 起日志和 Docker 数据默认都往这写单独分出来能防日志把根撑爆swap 的分配有个沿用多年的经验规律内存小于 2GB 时给内存的 2 倍2GB 到 8GB 之间给等量超过 8GB 给 8GB 就够。这只是参考实际看你的负载跑数据库类的实验可以适当放大。安装类型Software Selection这一项我的建议很明确第一次装就选 Minimal Install。理由有三个包少、攻击面小、出问题好定位。带 GNOME 的桌面版会拉进来几百个包光下载就要比最小化多花好几分钟而且装完之后你还得手动关掉一堆用不上的服务。如果你确实需要图形界面等系统跑通、yum 源修好之后再执行yum groupinstall GNOME Desktop这样出问题的时候你能明确知道是哪一步引入的。3. 安装过程的完整走查每一步在干什么3.1 新建虚拟机时容易被跳过的选项向导里有几个选项经常被一路回车跳过但它们后面会变成麻烦。第一个是客户机操作系统版本的选择。如果你下载的是 CentOS 7 的 ISO在 VMware 里选Linux → CentOS 7 64 位VirtualBox 里选 Red Hat (64-bit)。选错成 CentOS 6 或者 Other Linux安装器可能识别不到磁盘控制器直接表现为进入安装界面后没有可用磁盘。第二个是固件类型。现代的机器默认走 UEFI但 CentOS 7 的 ISO 在部分平台下用 UEFI 引导会有兼容性问题。我的做法是显式选BIOSLegacy这样 GRUB 的安装位置、分区表类型预期都是最经典的组合出问题时排查资料也最多。第三个是虚拟磁盘的类型。默认的 SCSI LSI Logic SAS 对 CentOS 7 来说是兼容性最好的组合。如果你手贱把它改成 NVMe 或者 PVSCSI很可能重启后就卡在 dracut 的紧急提示符里原因就是 initramfs 里没有对应控制器驱动。这个问题第六节会展开。3.2 引导菜单与安装器界面开机进引导菜单光标停在 Install CentOS 7 上直接回车就行。如果这一步卡住或者黑屏很久先别急着判定失败——在低配宿主机上从 ISO 引导到安装器界面出现等一两分钟很正常。真正需要警惕的是屏幕上出现dracut-initqueue timeout这种提示并掉进 shell那基本可以确定是磁盘控制器类型或者 ISO 文件本身的问题。安装器起来之后第一屏是语言选择。这里有个很多人会纠结的点到底选中文还是英文。我的建议是界面语言选 English时区选 Asia/Shanghai。原因很实在最小化安装不带完整的中文字体如果系统语言设成中文终端里很多提示会出现方块乱码日志排查时会很难受。而时区设成 Asia/Shanghai 保证日志时间戳和你本地时间一致这在排查某个服务什么时候挂的这类问题时非常关键。键盘布局保持 English (US) 就好除非你确实需要输入其他语言字符。3.3 安装位置、网络与主机名进入主界面后重点看三个带感叹号的地方安装位置、网络和主机名、软件选择。安装位置这一项点进去如果选自动分区直接点完成即可。如果手动分区注意一个细节分区完成后一定要确认引导加载程序安装位置是整块磁盘比如 /dev/sda而不是某个分区。选错这一步的结果是系统装完了但开不了机只能重装。网络和主机名这一项最容易被忽略。默认状态下右上角的以太网开关是关着的装完系统你会发现没有网络。做法很简单点进去把右上角开关拨到 ON这样安装器会自动通过 DHCP 拿到一个 IP并且在装完后生成对应的 ifcfg 文件。主机名顺手改一个有意义的名字比如dev-centos7后面做多机实验时能一眼分清谁是谁。软件选择按前面说的选 Minimal Install。如果后面确实要用开发工具链装完再补yum groupinstall Development Tools。3.4 root 密码、普通用户与重启root 密码这一步只有一个原则实验环境也别用 123456。不是说担心安全而是很多自动化脚本、连接工具对弱密码有额外处理反而给你添麻烦。设一个自己记得住但有点复杂度的比如加个年份数字和符号的组合。创建普通用户这一步建议是创建并且勾选把它加入 wheel 组同时把让这个用户成为管理员的选项勾上。这背后的逻辑是日常操作走普通用户 sudo是 Linux 世界的通行做法很多服务的安装脚本会检测当前用户root 直连有时候会触发额外的权限提示。点开始安装之后等待时间取决于你选的包和宿主机性能最小化安装通常三到五分钟。装完点重启注意在重启前把 ISO 从虚拟光驱里断开否则可能又引导回安装界面。VMware 里在虚拟机设置的 CD/DVD 那一项把启动时连接的勾去掉VirtualBox 里在存储设置里把 ISO 移除或取消勾选。3.5 首次开机后的第一件事第一次登录用 root 或者你刚建的用户。登录成功之后先别急着装东西做三件事执行ip addr确认网卡有 IP。如果只有 lo说明网络没起来回到第二节的网络模式去对。执行ping -c 3 223.5.5.5确认能出网。如果不通但ping宿主机 IP 通那是 NAT 的 DNS 或者网关的问题。执行yum repolist看仓库能不能列出来。这一步十有八九会报错而这正是下一节要处理的内容。顺便登录成功之后立刻打一个快照。VMware 里是 虚拟机 → 快照 → 拍摄快照VirtualBox 里是生成备份。名字写清楚比如刚装完-未调优。快照的价值在这一刻还看不出来等你后面把 yum 源改崩了、把网络配置写错了它会救你一次。4. 刚装完 yum 就报 404仓库迁移的完整操作4.1 报错背后的真实原因先看清楚你遇到的报错长什么样。典型的几种Could not resolve host: mirrorlist.centos.org—— 这是 DNS 或者网络问题不是仓库问题。Cannot find a valid baseurl for repo: base/7/x86_64—— 这是真正的仓库路径失效。一堆404 - Not Found刷屏 —— 同样是路径失效。真正的原因是 CentOS 7 走完维护周期之后原本公开提供的mirror.centos.org/centos路径已经不再维护内容整体归档到了vault.centos.org。而系统里/etc/yum.repos.d/CentOS-Base.repo这个文件还是老写法指向了老路径自然全部 404。理解这一点很重要因为它决定了修复方向你要做的不是换一个更快的国内源那么简单而是把 baseurl 指向归档站。国内一些镜像站也提供 centos-vault 的镜像目录但路径和原来的不一样直接套用老教程里的mirrors.aliyun.com/centos/依然会 404。这是我踩过的第一个坑以为换个镜像站就好了结果地址结构完全不同。4.2 把 repo 指向归档站的操作先备份这个习惯一定要养成cd /etc/yum.repos.d/ mkdir -p ~/repo-backup cp CentOS-*.repo ~/repo-backup/然后处理 base 仓库。系统自带的CentOS-Base.repo里mirrorlist是启用状态、baseurl是注释状态。所以思路是注释掉 mirrorlist启用并改写 baseurl。可以手动编辑也可以用 sed 批量处理sed -i s|^mirrorlist|#mirrorlist|g /etc/yum.repos.d/CentOS-*.repo sed -i s|^#baseurlhttp://mirror.centos.org|baseurlhttps://vault.centos.org|g /etc/yum.repos.d/CentOS-*.repo sed -i s|^#baseurlhttps://mirror.centos.org|baseurlhttps://vault.centos.org|g /etc/yum.repos.d/CentOS-*.repo执行完之后用grep -n baseurl /etc/yum.repos.d/CentOS-Base.repo检查一下确认每一段下面都有生效的 baseurl 指向 vault。这几条 sed 覆盖了两种原始写法http 和 https执行完建议逐段看一遍因为不同时间下载的 ISO 里 repo 文件的写法可能有细微差别。改完清缓存重建yum clean all yum makecache如果第三步走得很慢或者超时说明到 vault 的网络不通畅。这时候可以换成国内的归档镜像但注意路径要带centos-vault格式大致是把域名替换掉、后面的路径结构保持一致。不要凭记忆写去镜像站首页确认一下目录结构再动手这是最容易出错的地方。4.3 验证与残留问题yum makecache不报错之后跑一次真正安装来验证yum install -y vim wget net-tools这里有个小坑CentOS 7 最小化安装里默认没有 ifconfig因为 net-tools 这个包没装。很多人装完发现ifconfig命令找不到以为系统坏了其实用ip addr就够了。装 net-tools 只是为了让老教程里的命令能用。另一个残留问题是 EPEL。如果你后面要用到 EPEL 里的包会发现它的 7 版本仓库同样已经归档。解决思路相似把epel.repo里的地址指向归档路径或者干脆用国内镜像站提供的 epel-archive 目录。判断标准就一条yum repolist里所有仓库都显示正常而不是报错。再补一个不那么明显的问题如果你在改 repo 之前已经执行过yum makecache旧的缓存元数据可能残留导致明明地址改对了还是报错。所以yum clean all这一步不能省。我见过有人跳过这一步然后花半小时怀疑人生。5. 网络、工具与远程连接让它从能开变成能用5.1 网卡不见了、VMnet1 带黄色感叹号的排查顺序这是搜索量极高的一类问题而且描述通常很模糊虚拟机没有网络适配器VMnet1 有感叹号。先分清两件事一个是宿主机上的虚拟网卡出问题Windows 设备管理器里能看到带黄色感叹号另一个是虚拟机内部的网卡没起来客户机里ip addr看不到 ens33。这两件事的排查路径完全不同。如果是宿主机侧的问题按这个顺序走检查服务。Windows 服务里找 VMware DHCP Service 和 VMware NAT Service确认是正在运行并且启动类型是自动。这两个服务被禁用是很常见的情况尤其装过其他虚拟化软件之后。还原默认网络设置。VMware Workstation Pro 里打开编辑 → 虚拟网络编辑器 → 更改设置 → 还原默认设置。这一步会把 VMnet0/1/8 全部重建能解决大部分网卡漂移问题。VirtualBox 里对应的是管理 → 主机网络管理器。检查驱动残留。如果还原之后还是不行去设备管理器里看网络适配器下有没有带叹号的 VMware Virtual Ethernet Adapter。有的话卸载它再重新执行一次虚拟网络还原。注意卸载前先把 VMware 完全关掉。查第三方干扰。某些网络加速类、防护类软件会往网卡上挂过滤驱动把 VMware 的虚拟网卡顶掉。如果你装过这类软件先临时退出再试。提醒还原默认设置会重置 VMnet8 的网段和 DHCP 分配范围如果你之前用手动配的静态 IP 并且写死在客户机里还原之后可能就连不上了需要同步调整客户机的 ifcfg 文件。如果是客户机侧的问题通常是/etc/sysconfig/network-scripts/ifcfg-ens33里ONBOOTno。执行sed -i s/^ONBOOTno/ONBOOTyes/ /etc/sysconfig/network-scripts/ifcfg-ens33 systemctl restart network重启网络服务之后再用ip addr确认。这是最省事的修法比在图形界面里点来点去靠谱。5.2 open-vm-tools、共享文件夹与分辨率自适应虚拟机能不能用得舒服很大程度上取决于有没有装增强工具。VMware 平台上现在推荐装的是开源的open-vm-tools而不是安装包里那个 VMware Tools 的光盘。原因是 open-vm-tools 能通过 yum 直接管理升级方便不用每次内核更新后重装。yum install -y open-vm-tools systemctl enable --now vmtoolsd systemctl status vmtoolsd如果你需要图形界面下的分辨率自适应和剪贴板共享还要装桌面组件yum install -y open-vm-tools-desktop装完之后重启分辨率会随窗口大小自动调整鼠标也能在宿主机和虚拟机之间自由穿行不用按快捷键切出来。共享文件夹是另一个高频需求。VMware 里在虚拟机设置里先启用共享文件夹并指定宿主机目录然后在客户机里挂载mkdir -p /mnt/hgfs vmware-hgfsclient # 列出宿主机共享出来的目录名 vmount-fuse -o allow_other . /mnt/hgfs # 部分版本可用更通用的方式是直接用mount -t fuse.vmhgfs-fuse挂载或者把挂载写进/etc/fstab实现开机自动生效。这里要提醒一句open-vm-tools 必须装上共享文件夹机制才可用光装内核模块没有用。VirtualBox 用户对应的是装 Guest Additions需要先装kernel-devel、gcc、make这几个包否则增强功能编不出来。5.3 静态 IP 与 SSH 免密登录如果你要把这台虚拟机当长期在用的开发环境DHCP 分配的 IP 会变每次都要查一遍很烦。建议在 NAT 模式下配静态 IP注意两点地址要落在虚拟网络的网段内并且避开 DHCP 的分配范围。VMware 的 VMnet8 默认网段是 192.168.x.0/24网关通常是 x.x.x.2DHCP 池一般从 x.x.x.128 开始。所以静态 IP 可以取 x.x.x.10 这种低段地址。# /etc/sysconfig/network-scripts/ifcfg-ens33 TYPEEthernet BOOTPROTOstatic NAMEens33 DEVICEens33 ONBOOTyes IPADDR192.168.10.10 PREFIX24 GATEWAY192.168.10.2 DNS1223.5.5.5 DNS2119.29.29.29改完systemctl restart network再ping www.baidu.com验证 DNS 和出口都通。如果你更习惯用 nmcli命令是nmcli con mod ens33 ipv4.addresses 192.168.10.10/24 ipv4.gateway 192.168.10.2 ipv4.dns 223.5.5.5 ipv4.method manual然后nmcli con up ens33。两种方式等价选择你顺手的。然后就是 SSH。宿主机上直接用终端连过去比在虚拟机窗口里敲命令舒服太多。免密登录的做法是把自己的公钥推过去ssh-keygen -t ed25519 # 宿主机上生成一路回车 ssh-copy-id root192.168.10.10 ssh root192.168.10.10为了后面用着省事可以在宿主机的~/.ssh/config里加一段别名之后一个ssh c7就能进去。这套配好之后虚拟机窗口基本就不用再看了日常操作全在宿主机终端里完成。5.4 快照与磁盘瘦身快照是虚拟机相对物理机最大的优势但用错了也会变成负担。我的原则是只在即将做有风险的改动之前打快照改完验证通过就删掉旧的。常见的打点时机包括装完系统调好网络之后、装完关键组件之后、做原理验证之前。快照链越长磁盘占用越大而且恢复速度越慢有时候还会因为快照链断裂导致整台虚拟机起不来。磁盘空间的问题也要注意。虚拟磁盘实际占用会随你写入的数据增长即使你把文件删了vmdk 也不一定自动缩小。VMware 里可以在客户机内执行清理再用工具压缩更实际的方案是给虚拟机单独留目录 定期把不用的虚拟机整体删除别指望自动瘦身能救回多少空间。6. 高频报错逐个拆从不是虚拟磁盘到启动卡死6.1 指定的文件不是虚拟磁盘这个报错的意思很直白虚拟机配置里指向的那个磁盘文件宿主软件认为它不是一个合法的磁盘或者根本找不到。常见成因有这么几种排查思路是从最外层往里走第一虚拟机目录被整体拷贝或移动过。磁盘描述文件里记录了相对路径如果你移动的方式不对路径就断了。处理办法是重新配置虚拟机的磁盘指向或者直接把整个虚拟机目录一起搬、保留原有的目录结构。第二磁盘文件被截断或者拷贝不完整。单个 vmdk 文件在拷贝过程中中断文件大小对不上宿主软件自然读不出来。这种基本救不回来只能从备份或者快照恢复。第三快照链断裂。这是最隐蔽的一种。有快照的虚拟机实际磁盘是由基础盘 若干增量盘组成的删了其中任何一个都会导致整条链失效。所以不要手动去动虚拟机目录里的 vmdk 文件要删快照就用界面里的快照管理器。第四虚拟磁盘类型被改过。比如原来是 SCSI 被改成了 NVMe宿主软件会认为这不是它预期的那种虚拟磁盘。改回去就行。如果你怀疑是描述文件的问题可以试着用磁盘管理工具做一次修复。VMware 平台上有vmware-vdiskmanager可以对 vmdk 做检查和整理但前提是文件本身没损坏。最靠谱的策略还是那句老话改大动作之前先打快照重要环境定期导出备份。6.2 与 Windows 虚拟化安全功能冲突前面提过Windows 上有些底层功能会占用硬件虚拟化能力导致 VMware 起不来提示信息里通常会提到和某个安全功能不兼容。这类冲突的本质是同一份硬件虚拟化资源被两套软件同时申请。排查顺序可以这样走打开 Windows 安全中心看内核隔离里的内存完整性是不是开着的。如果是关掉它并重启。这个功能本身对普通用户价值有限但对虚拟机的干扰是实打实的。检查是否启用了 Hyper-V 相关的 Windows 功能以及是不是装了 WSL2、Docker Desktop 这类会在后台开启虚拟化平台的软件。如果这些你都离不开那有两个选择升级到较新版本的 VMware Workstation它能以兼容模式运行但性能会打折或者干脆把虚拟机迁到 Hyper-V 平台上避开这类冲突。用systeminfo命令在宿主机上确认一下虚拟化相关状态能省掉很多猜测。注意关掉内存完整性需要管理员权限而且这台机器上其他依赖它的安全策略可能也会受影响。动手之前先确认这台机器的使用场景别为了跑一个实验环境把公司要求的安全配置关掉。这类问题的价值在于它提醒你一个道理虚拟化不是装个软件这么简单它和操作系统底层的资源分配直接相关。遇到启动失败先想想系统里有没有别的东西也在抢这块资源。6.3 卡在正在安装虚拟网络驱动程序这个现象出现在安装或者升级虚拟机软件的过程里进度条走到安装虚拟网络驱动程序就长时间不动。可能的原因和应对方式旧版虚拟网卡驱动残留。之前装过其他版本的虚拟机软件卸载不彻底设备管理器里还留着虚拟网卡的残骸。做法是先去设备管理器的网络适配器下把相关的虚拟网卡卸载掉再重新安装。网络过滤类软件拦截。某些网络管理、防护类软件会挂驱动到网卡协议栈上安装新驱动时被挡住。先退出这类软件再装。系统驱动签名策略。极少数情况下系统的驱动签名要求会拦下安装。这种要按官方文档处理不建议随意改系统签名策略。安装包本身损坏。重新下载一次安装包校验一下完整性比在系统里瞎改省时间。需要特别说一句的是注册表清理这条路——网上有很多教程让你手动删注册表里网络适配器相关的项。这条路确实有效但风险也大删错一个键可能影响宿主机本身的网卡。如果你要走这条路先导出备份注册表并且老老实实按官方社区里的步骤一条条对不要凭感觉删。6.4 黑屏、卡在 dracut 与分辨率异常装完重启卡在 dracut 的紧急提示符这几乎可以锁定是磁盘控制器类型的问题。CentOS 7 的 initramfs 里如果没有包含当前虚拟磁盘控制器的驱动系统就没法挂载根分区。解法有两个方向一是把控制器的虚拟设备类型改回 LSI Logic SASVMware 里对应选项叫 LSI Logic SAS二是进救援模式重建 initramfs。前者快后者更彻底。改控制器类型可以在虚拟机设置里改也可以直接编辑配置文件里的对应项。开机黑屏但能听到系统在跑可能是图形驱动的问题。最小化安装没有图形界面如果你装的是带桌面的版本又遇到了黑屏可以尝试在引导时加nomodeset参数临时进入进去之后再补装显卡相关驱动。分辨率固定、窗口拖动后画面不跟着变八成是没装 open-vm-tools-desktop。装完重启就好。每次都要等很久才出引导菜单检查一下是不是 ISO 还挂在虚拟光驱上或者虚拟机配置里设置了较长的引导延迟。6.5 几条我踩过才记住的小经验第一装之前把宿主机的时间同步确认一下。听起来离谱但我真遇到过因为宿主机时间偏了几小时导致虚拟机内部证书验证失败报错信息还完全看不出和时间有关。第二虚拟机名字和主机名保持一致。虚拟机列表里一堆 CentOS 7 64 位过两天你都不知道哪台是哪台。命名规范一点比如c7-dev-01配合客户机内部的 hostname管理成本会低很多。第三别在虚拟机里存唯一一份重要数据。虚拟机是沙盒不是备份。快照和宿主机的文件系统不是一回事宿主机硬盘挂了虚拟机一起走。第四遇到问题时先看日志再搜索。客户机里/var/log/messages、/var/log/secure宿主机上虚拟机软件的日志目录这些地方的信息比搜索引擎给出的通用答案精准得多。我自己的习惯是先把报错原文复制出来去掉具体路径里的用户名和主机名再去搜命中率会高很多。最后一点体会是虚拟机里装 CentOS 7 这件事本身没有难度难的是把每一个为什么会这样想明白。你搞清楚了网络模式背后的那两张虚拟网卡、搞清楚了 yum 源失效是因为归档路径变了、搞清楚了 dracut 卡死是控制器类型不匹配以后再遇到类似的问题排查速度会是完全不同的量级。这套东西学会了换成装 Rocky Linux、Ubuntu 或者别的系统思路是可以直接搬过去的。
返回列表