
开头想说点实际的在 Parallels Desktop 里跑 CentOS-6.9-x86_64-minimal这件事听起来有点“考古”但真实需求一点都不少。客户的老项目还在 CentOS 6 上没迁完或者你想本地复现一个六年前的部署环境又或者只是图 minimal 版省内存、想在 Mac 上快速起一个小虚拟机练手这套流程都会碰到。难点不在于安装本身而在于 CentOS 6 早就停止维护了官方 yum 源默认失效很多人装完系统第一步就被cannot find a valid baseurl卡死甚至启动阶段直接掉进grub minimal bash-like line editing is supported。这篇文章会把安装、网络、yum 源修复、常见故障一次讲透适合运维、开发也适合照着操作的新手。先说结论只要镜像源选对、引导方式选 BIOS、装完后把源切成 vault 或国内镜像CentOS 6.9 minimal 在 Parallels Desktop 上完全可以跑得很稳。怕就怕你按新系统思路死磕旧源那大概率会折腾到怀疑人生。1. 安装前的准备工作镜像选择和虚拟机参数1.1 为什么还在用 CentOS 6.9 minimalCentOS 6.9 是 6 系列里非常经典的版本后面虽然还有 6.10但大量存量系统的环境定义都是基于 6.9 做的。minimal 版本不带图形界面装完只占几百 MB 磁盘内存 512MB 都能跑对 Parallels 这种跑在 Mac 上的虚拟化软件非常友好启动速度快资源占用低。另外x86_64 这个架构要提前确认。Intel 芯片的 Mac 可以直接虚拟化 x86_64 的 CentOS 6老系统反而比新系统更省资源。但如果你用的是 Apple Silicon 芯片Parallels Desktop 不支持模拟 x86_64 客户机装不了 6.9 x86_64需要换 ARM 版 Linux 或者用其他方案。这个一定要在动手前搞清楚不然镜像下了半天装到一半才发现架构不对很浪费时间。1.2 镜像去哪下载别下了个假源CentOS 6.9 的官方安装包已经进了 vault 归档目录默认的 mirror.centos.org 链接基本不可用。推荐优先用下面的地址官方归档站http://vault.centos.org/6.9/isos/x86_64/CentOS-6.9-x86_64-minimal.iso清华镜像https://mirrors.tuna.tsinghua.edu.cn/centos-vault/6.9/isos/x86_64/CentOS-6.9-x86_64-minimal.iso阿里云镜像https://mirrors.aliyun.com/centos-vault/6.9/isos/x86_64/CentOS-6.9-x86_64-minimal.iso下载之前先确认一下文件是否真的存在用 curl 看一眼头部信息就行curl -I http://vault.centos.org/6.9/isos/x86_64/CentOS-6.9-x86_64-minimal.iso返回 200 就可以下。如果返回 404说明归档路径有变化去 vault.centos.org/6.9/isos/x86_64/ 目录页手动找一下。国内网络环境下清华和阿里源通常比官方源快得多我一般直接用阿里云镜像。下载完建议校验一下 SHA256shasum -a 256 CentOS-6.9-x86_64-minimal.iso然后和页面上公布的哈希值对一下避免下载损坏。ISO 损坏是后面安装阶段各种诡异问题的常见源头这个环节别省。1.3 Parallels Desktop 虚拟机参数怎么给打开 Parallels Desktop新建虚拟机时选择镜像文件让系统识别到 CentOS-6.9 的 ISO。如果 Parallels 列表里没有直接显示 CentOS 6可以选择 Red Hat Enterprise Linux 6 x64或者 Other Linux 2.6.x内核兼容性上没有问题。参数上CPU 给 2 核内存 1GB 到 2GB磁盘 20GB 就够。minimal 系统本身占用很小磁盘大一点是为了后面装工具和缓存包留余量。网络先保持默认的共享网络NAT等系统装完再按需切换桥接。最关键的是引导方式。CentOS 6 的安装器和内核默认对 UEFI 支持很差在 Parallels 里如果用默认 EFI 引导非常容易出现启动即卡死、黑屏或者 grub 直接掉到命令行交互界面。所以创建虚拟机后先到虚拟机配置里把引导模式改成 BIOS或者叫“传统 BIOS”。这一步是很多人在 Parallels 下装老 CentOS 翻车的根本原因一定要提前设置好。2. 安装 CentOS 6.9 minimal 的完整流程2.1 启动安装程序遇到黑屏怎么办配置好虚拟机后开机正常会进入 CentOS 6 的安装引导界面直接回车开始。但如果屏幕黑住、花屏或者卡在no default or UI configuration directive found说明默认的图形安装器在虚拟显卡下起不来。此时在 boot 提示符下输入linux text回车进入纯文本安装模式。文本模式不受显卡驱动限制兼容性最稳整个安装过程无非多按几下 Tab、空格效率反而更高。我建议大家在 Parallels 上装老版 CentOS 一律用文本模式省去图形界面动不动卡住的烦恼。安装语言选 English键盘选 English (US)这类老系统在纯文本环境下对中文支持不太好后面 yum 输出日志出现乱码会让你排查问题更痛苦。存储设备选择“基本存储设备”Parallels 虚拟磁盘是全新的系统会提示是否保留数据选“忽略”继续。2.2 分区和网络配置装完不用返工分区方案我习惯手动分区虽然 minimal 自动分区也能用但手动分区能让你清楚知道引导文件放在哪里后面 grub 出问题时更容易定位。建议方案/boot500MBext4标准分区swap2048MB/剩余空间全部分给根分区ext4CentOS 6 的安装器里选择“创建自定义布局”按这个方案分配即可。如果你嫌麻烦直接选“替换现有 Linux 系统”让安装器自动分通常也能引导成功但 grub 故障时排错难度会高一些。网络配置环节先点开网卡设置把“自动连接”勾上。这一步很多人会忽略装完系统才发现网卡没启用又要进系统手动改配置文件。主机名可以随便写比如 centos69-minimal时区选 Asia/Shanghairoot 密码设一个你自己记得住的。安装类型选择 Minimal然后开始安装。整个过程大概几分钟视磁盘性能而定。安装完成后重启如果一切正常会看到 grub 菜单然后进入命令行登录界面。2.3 重启后掉进 grub 的修复方法不少人在重启后遇到grub minimal bash-like line editing is supported这是 grub 没正确写入主引导记录或者分区结构变了导致找不到启动文件。遇到这种情况先别着急重装。在 grub 命令行里手动指定内核和 initrd 启动系统grub root (hd0,0) grub kernel /vmlinuz-2.6.32-696.el6.x86_64 ro root/dev/sda1 grub initrd /initramfs-2.6.32-696.el6.x86_64.img grub boot注意/dev/sda1要跟你实际根分区位置对应如果/在 sda3就写 sda3。root (hd0,0)里的第二个数字是/boot所在分区序号从 0 开始。手动能进系统后执行grub-install /dev/sda重新把 grub 写回主引导记录重启就不会再掉了。出现这个问题的根本原因多是 Parallels 引导模式没选 BIOS或者分区时把/boot建在了比较靠后的位置老版本 grub 对 LVM 和 GPT 的支持都不如新版本好所以能用标准分区就尽量用标准分区。3. 网络、Parallels Tools 和基础环境配置3.1 网卡没启用的解决方案CentOS 6 安装完默认网卡可能是禁用状态。登录后先用ip addr看看有没有 IPip addr如果没有输出 eth0 的 IPv4 地址说明网卡没起来。最简单的办法是先用 dhclient 临时获取dhclient eth0能拿到 IP 后再改配置文件让网卡永久启用。编辑/etc/sysconfig/network-scripts/ifcfg-eth0vi /etc/sysconfig/network-scripts/ifcfg-eth0把ONBOOTno改成ONBOOTyes然后重启网络服务service network restartParallels 默认的共享网络 NAT 模式下虚拟机通过 DHCP 自动获取 10.211.55.x 网段的 IP不需要手动配置就能上网。如果你需要固定 IP比如做测试环境要经常重启改成静态配置DEVICEeth0 BOOTPROTOnone ONBOOTyes IPADDR192.168.1.50 NETMASK255.255.255.0 GATEWAY192.168.1.1 DNS1223.5.5.5 DNS2119.29.29.29注意这里 IP 要跟你的网络环境匹配别把 192.168.1.x 直接照抄。修改后同样重启网络服务。CentOS 6 默认没装 ifconfig只有 ip 命令想用 ifconfig 还得单独装 net-toolsyum install -y net-tools不过这一步要等 yum 源修好之后再做否则会报cannot find a valid baseurl。3.2 Parallels Tools 安装的依赖坑Parallels Tools 是虚拟机增强工具装了之后才能实现自适应分辨率、剪贴板共享、拖拽文件这些功能。操作路径在 Parallels 菜单栏虚拟机 → 安装 Parallels Tools。系统会挂载一个光驱镜像把里面的文件拷到临时目录后执行安装脚本。这个脚本本质是编译内核模块所以需要 gcc、make、kernel-devel、dkms 这些开发包yum install -y gcc make kernel-devel dkms如果你的 yum 源还是坏的这里一定会失败。我见过很多人卡在 Parallels Tools 装不上最后发现是内核开发包装不了根源还是源的问题。所以顺序很重要先修源再装 Tools。安装完成后重启虚拟机分辨率会自动适配 Parallels 窗口鼠标进出虚拟机也不再需要按快捷键日常使用体验会好很多。老系统里 Tools 偶尔会跟新版 Parallels 不兼容如果安装完成后有报错通常不影响系统运行只是高级功能用不了不必死磕。3.3 时区和基础包的必要调整CentOS 6 默认时区可能是 UTC如果你在安装时选了 Asia/Shanghai这一步一般已经自动处理好。不确定的话可以查一下date如果显示的时间和本地时间差 8 小时手动设置时区cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtimeCentOS 6 用的是 ntpd 或 ntpdate但官方 NTP 服务很多已经停止支持这里建议直接用系统时间同步到宿主机。Parallels 本身提供了时间同步功能装上 Tools 后会自动校准不用额外折腾。基础包方面minimal 实在太干净了很多常用命令都没有。修好源之后我习惯先补一组基础工具yum install -y vim wget curl net-tools bind-utils lsof tree这些不是必须的但能省去后面很多“命令不存在”的尴尬。4. 修复 yum 源CentOS 6 环境最核心的一步4.1 为什么会出现 cannot find a valid baseurlCentOS 6 在 2020 年就停止了维护官方把老版本的所有包迁移到了 vault.centos.org 归档目录。系统默认的 yum 源还停留在 mirror.centos.org 的老地址而这个地址早就不提供 6 的镜像了于是 yum install 任何包都会报错Cannot find a valid baseurl for repo: base/6/x86_64如果你是误用了 CentOS 7 的镜像或源配置会看到base/7/x86_64。甚至有些人下载的是 CentOS 7 的 ISO却以为自己在装 6安装完发现源配置全是 7 的路径。所以看到报错先确认/etc/redhat-release里写的版本号cat /etc/redhat-release如果确实装的是 6.9就把源配置改成 vault 或国内镜像的 vault 目录。如果装的是 7那要用的源是mirrors.aliyun.com/centos/7.9.2009/而不是 6 的 vault。4.2 把 yum 源切换到 vault 的方式编辑/etc/yum.repos.d/CentOS-Base.repo把 base、updates、extras 三个仓库的 baseurl 改成归档地址。完整配置如下[base] nameCentOS-6.9 - Base baseurlhttp://mirrors.aliyun.com/centos-vault/6.9/os/x86_64/ gpgcheck1 gpgkeyfile:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6 enabled1 [updates] nameCentOS-6.9 - Updates baseurlhttp://mirrors.aliyun.com/centos-vault/6.9/updates/x86_64/ gpgcheck1 gpgkeyfile:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6 enabled1 [extras] nameCentOS-6.9 - Extras baseurlhttp://mirrors.aliyun.com/centos-vault/6.9/extras/x86_64/ gpgcheck1 gpgkeyfile:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6 enabled1关键点不能使用$releasever变量因为 vault 目录名是6.9而系统内部的 releasever 可能会解析成6导致路径找不到。直接写死版本号是最省心的。如果阿里云这个路径访问慢可以换成清华源baseurlhttps://mirrors.tuna.tsinghua.edu.cn/centos-vault/6.9/os/x86_64/改完配置文件后清理缓存并重新生成yum clean all yum makecache看到 “Determining fastest mirrors” 并能正常下载元数据说明源已经通了。4.3 SCL 源失效的处理除了默认的 Base 源CentOS 6 还自带了 SCLSoftware Collections仓库很多人在安装软件时会遇到这个报错Cannot find a valid baseurl for repo: centos-sclo-rh/x86_64原因一样SCL 仓库的 mirrorlist 也指向了已经失效的老地址。处理办法有两种。如果不需要 SCL 软件集合直接禁用sed -i s/enabled1/enabled0/g /etc/yum.repos.d/CentOS-SCLo-scl.repo sed -i s/enabled1/enabled0/g /etc/yum.repos.d/CentOS-SCLo-scl-rh.repo如果确实要用其中的软件就手动指定 baseurl 到 vaultbaseurlhttp://mirrors.aliyun.com/centos-vault/6.9/sclo/x86_64/sclo/注意vault 里 SCL 的目录结构跟普通源不太一样需要到mirrors.aliyun.com/centos-vault/6.9/目录下看看实际路径别盲写。另外 EPEL 源也要注意EPEL 6 已经归档到https://archives.fedoraproject.org/pub/archive/epel/6/国内用阿里云也有备份。配置时如果 GPG key 下载不下来可以临时把gpgcheck0等安装完再改回来不过要清楚这意味着放弃校验安全风险自己评估。4.4 离线环境用本地 ISO 做源如果你的虚拟机网络实在搞不定或者源一直修不通还有一个兜底方案把 CentOS-6.9-x86_64-minimal.iso 挂载成本地 yum 源。mount -o loop /path/to/CentOS-6.9-x86_64-minimal.iso /mnt/cdrom然后创建/etc/yum.repos.d/local.repo[local] nameCentOS 6.9 Local baseurlfile:///mnt/cdrom gpgcheck0 enabled1清理缓存后就可以用yum install安装 ISO 里自带的包。但注意minimal ISO 里只有安装系统所需的最小包集合大概几百个 RPM很多软件依然装不了。如果希望离线环境覆盖更全需要提前下载 DVD 版 ISO或者把需要的 RPM 包提前缓存好。这个方案适合应急不适合日常开发。5. 常见问题与故障排查速查5.1 排错思路与典型问题对照表我整理了一份高频问题速查表按我踩过的频率排序你可以直接对照排查故障现象根本原因解决思路Cannot find a valid baseurl for repo: base/6/x86_64默认源指向已失效的 mirror.centos.org改成 vault 或国内镜像归档目录Cannot find a valid baseurl for repo: centos-sclo-rh/x86_64SCL 仓库 mirrorlist 失效禁用 SCL 源或改指向 vaultCannot find a valid baseurl for repo: base/7/x86_64装的是 CentOS 7 或源配置被改成 7确认 redhat-release改用对应版本的源grub minimal bash-like line editing is supportedgrub 未正确安装或引导分区不对手动引导进系统执行grub-install /dev/sda安装界面黑屏、花屏图形安装器与虚拟显卡不兼容在 boot 提示符输入linux textParallels Tools 安装失败缺 kernel-devel、gcc、make修好源后再装开发包重试 Toolsyum install卡在 Determining fastest mirrors网络不稳定或 DNS 配置不对检查/etc/resolv.conf换静态 DNS网卡没有 IP默认 ONBOOTnodhclient 临时获取并修改网卡配置5.2 老版本 yum 源修复后的几个验证动作源修好不是“看到 makecache 成功”就完事了我习惯做一轮基础验证确认环境真的可用。先试装一个包yum install -y wget能装说明源基本正常。再验证 EPELyum list available | head看看仓库是否完整加载。接着检查内核开发包yum install -y kernel-devel-$(uname -r)注意用uname -r精确匹配内核版本避免装了一个对不上的 kernel-devel最后编译 Parallels Tools 时还是报错。如果yum makecache时报 GPG key 相关错误可以去/etc/pki/rpm-gpg/看一下密钥文件是否存在CentOS 6 对应的密钥文件是RPM-GPG-KEY-CentOS-6。缺失的话从镜像站下载并导入rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-65.3 macOS 版本和 Parallels 版本的兼容提醒最后说一个大家容易忽略的点Parallels Desktop 不同版本的虚拟化底层差别很大。老版本 Parallels 配合新 macOS 可能无法启动 CentOS 6新版本 Parallels 对老系统的支持反而可能变差。如果你装到一半虚拟机异常退出先别怀疑 ISO把 Parallels 更新到较新版本再把虚拟机的操作系统类型改成 Red Hat Enterprise Linux 6 x64很多奇怪问题都会消失。Apple Silicon 芯片的 Mac 用户再次强调目前 Parallels Desktop 不能在 M 系列芯片上运行 x86_64 的旧 Linux 系统如果确实有老环境开发需求要么找一台 Intel Mac要么改用 ARM 架构的 Linux 发行版并重新验证应用兼容性。6. 一些实在的经验总结我在 Parallels 上装 CentOS 6.9 至少折腾过十几遍最深的一个体会是这种老系统就没有“装完就能用”这一说整个流程是一个链条任何一个环节断了后面全都跑偏。引导模式没选 BIOS后面 grub 必然出问题网卡没勾自动连接进系统后就得折腾网络yum 源没修好Parallels Tools 永远装不上。所以每走一步都确认一下别急着赶进度。另一点很关键CentOS 6 已经停止维护没有安全更新装它之前要想清楚使用范围。我自己的习惯是把它放在一个隔离的 NAT 网络里只用于本地测试和代码兼容性验证绝不直接暴露到公网也不在上面跑真实业务。源修复是用 vault 归档还是国内镜像考虑网络环境顺手就行但$releasever这个变量陷阱以及 SCL 源需要单独处理这两点记住了基本就能少走一大半弯路。