给一台已经装着 Windows 10 的电脑再塞一个 CentOS 7 进去,做成双系统安装,这事我在不同机器上前后折腾过七八次,从老款 ThinkPad 到自组台式机、从纯机械盘到 NVMe 固态都试过,踩的坑基本能凑成一册小册子。很多人对双系统安装的想象是"分个区、插个 U 盘、下一步下一步就完事",结果卡在第一步——压缩磁盘时提示可用空间不足,明明 C 盘还剩几百个 G。也有人装完了,重启直接进不去 Windows,或者反过来 CentOS 黑屏,最后只能重装。这篇就按我自己的操作习惯,把 Windows10 加 CentOS7 的双系统安装从头到尾捋一遍,磁盘怎么规划、U 盘启动盘怎么做、UEFI 下 ESP 分区不够怎么办、GRUB 引导怎么调默认项、装完之后网卡名字为什么不是 eth0 这些实际问题都会讲到。零基础的朋友照着走能走完,做过几次的老手可以直奔避坑那几节挑自己需要的。
1. 动手前先想明白:真机双系统值不值得做
1.1 真机双系统、虚拟机和 WSL 的真实差别
先把话说明白,双系统安装不是唯一解,也不一定是最优解。你要是只想跑跑 Linux 命令、学学 Shell 或者搭个开发环境,虚拟机和 WSL 的性价比高得多。我用 VMware 和 VirtualBox 都跑过 CentOS7,好处是随开随用、搞坏了直接删掉重来,完全不担心影响宿主机;坏处也很明显,虚拟机吃内存、吃 CPU,嵌套虚拟化场景下性能损耗能到百分之二三十,测 IO 密集型任务、测驱动、测内核模块这类需求基本没法做。
WSL 则是另一个路子,Windows10 上装个 WSL 子系统很快,WSLg 还能跑图形界面,日常敲命令、写脚本的体验相当顺。但它的本质是微软提供的一个兼容层,内核由微软维护,你没法真正编译一个自定义内核装上去,也没法完整复现一台 CentOS 服务器的启动流程、systemd 行为、SELinux 策略。所以凡是涉及系统管理、运维实操、内核调试、服务部署这类要"真"环境的需求,真机双系统安装还是有它的位置。
真机双系统的核心价值就三条:性能无损、环境真实、能练手。你装的 CentOS7 就是一台货真价实的服务器环境,跟机房里的机器行为一致。代价是操作有风险,分区这步一旦弄错,Windows 里的数据可能一起没了,所以后面我会反复强调备份。
1.2 哪些机器、哪些人不建议折腾双系统
有三种情况我劝你别动。第一,硬盘总容量小于 256G 的机器。Windows10 本身占三四十个 G,加上你的软件、资料,再切出六七十个 G 给 CentOS7,两边都紧巴巴,用起来难受。第二,只有一块机械盘的老机器。机械盘上做分区操作本来就慢,压缩卷时受阻的概率也高,而且你来回切换系统,机械盘开机进系统都要等一两分钟,体验很差。
第三,也是最重要的,机器里有不能丢的数据且你懒得备份。双系统安装涉及分区表改动,这是全流程里风险最高的动作。我可以负责任地说,只要动了分区,就有概率出意外,跟技术熟练度关系不大,跟磁盘状态关系很大。数据先拷到移动硬盘或者云端,这一步省不得。
如果你属于上面任何一种,建议换个思路:加一块硬盘单独装 CentOS,或者干脆用虚拟机。加硬盘这个方案其实很香,一百多块买块固态,插上去单独装 CentOS7,两块盘各自独立引导,互不干扰,比在一块盘上分区省心太多。这个后面会单独说。
1.3 你的机器是什么引导方式,先查清楚
双系统安装里最容易被忽略、又最容易翻车的就是引导方式。你得先搞清楚自己的 Windows10 是 UEFI 引导还是 Legacy BIOS 引导,分区表是 GPT 还是 MBR,这两个信息决定了后面 CentOS7 怎么装、引导往哪写。
最省事的查法是 Windows 里按 Win+R,输入 msinfo32 回车,看"BIOS 模式"这一项,写 UEFI 就是 UEFI 引导,写"传统"就是 Legacy。再看"分区样式"那一栏,是 GPT 还是 MBR。这两项信息组合起来,大致是以下四种情况。
| 引导方式 | 分区表 | 出现的概率 | 装 CentOS7 要注意什么 |
|---|---|---|---|
| UEFI | GPT | 近五年新机器基本都是 | ESP 分区空间可能不够,Secure Boot 建议关 |
| Legacy | MBR | 老机器常见 | 引导写 MBR,分区用标准分区更稳 |
| UEFI | MBR | 少见但存在 | 兼容模式导致的混搭,建议改装成 UEFI+GPT |
| Legacy | GPT | 手动改造过才会出现 | 需要额外的 bios_grub 分区,新手别碰 |
我遇到过最多的坑就是 UEFI+GPT 这一组,问题出在 ESP 分区上,这个后面会详细讲。还有两个东西动手前必须确认:一是 Secure Boot 安全启动,CentOS7 对这个支持有限,建议进 BIOS 关掉;二是 BitLocker 或者设备加密,Win10 专业版有些机器默认开启,你一动分区,重启时系统会要求输入恢复密钥,很多人到这一步直接懵了。动手前先去"管理 BitLocker"里把加密暂停或者关闭,解密完成后再操作。
2. 开工准备:镜像、启动盘和分区规划
2.1 CentOS7 镜像从哪拿,怎么校验
CentOS7 的 ISO 我一直从国内镜像站拿,速度快,也不用担心下载中断。清华的 TUNA 镜像站、阿里云的镜像站都有完整的 centos 目录,路径大致是 centos/7/isos/x86_64/,里面会列出几个版本,推荐选 CentOS-7-x86_64-DVD 那个,它是完整版,包含 GNOME 桌面和常用软件包,离线安装时最省事;如果只想要最小化系统,可以选 Minimal 版,但装完之后很多东西得联网补,网络不通的机器就别选它。
下载完一定要校验,别嫌麻烦。镜像站同目录下有个 sha256sum 文件,下载下来和你的 ISO 一起放同一目录,在 Linux 或 Git Bash 里执行 sha256sum CentOS-7-x86_64-DVD-xxxx.iso,对一下字符串是否一致。校验通不过说明下载损坏,重下。这一步能省掉后面安装到一半报"介质检查失败"的尴尬。
CentOS7 已经在 2024 年 6 月结束维护,官方源的软件包不再更新,但这不影响它作为学习环境的价值,你在系统里把 yum 源换成国内镜像站的 centos-vault 或者阿里云的归档源就行,这个后面会讲怎么配。
2.2 启动盘制作的工具选择与参数
U 盘至少 8G,里面数据先备份,因为写入过程会格式化。工具我推荐两个:Rufus 和 balenaEtcher。Rufus 在 Windows 上跑,体积小、免安装,参数可控性最强;balenaEtcher 界面更傻瓜,基本是选镜像、选盘、点开始三步。
用 Rufus 的时候有三个参数必须选对。分区类型要选 GPT(对应你的 UEFI 机器),目标系统选 UEFI,文件系统它会自动帮你选;如果你的是 Legacy 机器,分区类型选 MBR,目标系统选 BIOS。选错了会导致开机从 U 盘启动时直接跳过、找不到引导。另一个小细节是写入完成后 Rufus 可能会问你要不要用 ISO 镜像模式还是 DD 模式,CentOS7 用 ISO 模式就够了。
顺便提一句,制作启动盘这一步有很多人卡在"U 盘插上去 Rufus 识别不到"。常见原因是 U 盘是 USB3.0 但插在了机箱前面的接口,或者是 U 盘本身分区表损坏。换到机箱后面板、或者先在磁盘管理里把 U 盘所有分区删掉重建一个再试,基本能解决。
2.3 分区方案设计:给 CentOS7 留多少、怎么切
这是整个双系统安装里最需要动脑子的一步。先说留多少。我的经验是给 CentOS7 至少留 60G,其中系统盘 50G、剩下的给 home。如果你要装 GNOME 桌面、装开发工具链、还要跑数据库,那留 80 到 100G 更保险。Windows 那边至少留 100G 可用空间,不然用不了多久就满。
再说怎么切。我给一个我自己常用的分区表,以总空间 80G 为例。
| 挂载点 | 容量 | 文件系统 | 说明 |
|---|---|---|---|
| /boot | 1G | ext4 | 存放内核和 initramfs,1G 是 UEFI 环境下的稳妥值 |
| /boot/efi | 沿用现有 ESP | EFI System Partition | 关键:挂载到 Windows 已有的 ESP,绝对不要格式化 |
| swap | 8G | swap | 常规用途 4 到 8G 够用,要休眠才需要等于内存大小 |
| / | 50G | xfs | 系统根目录,CentOS7 默认文件系统就是 xfs |
| /home | 剩余空间 | xfs | 用户数据,独立出来以后重装系统不用动它 |
这里有一个很多人问的问题:为什么 /boot 要 1G?传统 Legacy 环境下 500M 绰绰有余,但 UEFI 环境下 CentOS7 需要往 ESP 里写内核文件,同时 /boot 里也要放内核,加上后续系统更新会累积多个内核版本,500M 有时候会被撑爆。给 1G 是一劳永逸的做法,多占几百兆而已。
swap 的大小也有讲究。如果你要跑一些对内存敏感的服务,或者机器内存只有 8G,那 swap 给到 8G 实用;如果内存 16G 以上且不做休眠,4G 也够,甚至很多人直接给 2G。CentOS7 官方文档的老建议是"内存小于 8G 时 swap 等于内存的 1.5 到 2 倍",但放今天来看不必教条,按实际用途给就行。
还有一个决策点:用标准分区还是 LVM。LVM 的好处是以后能在线扩容、能做快照,缺点是 Windows 认不出 LVM,你得靠 CentOS 自己管理。我的建议是,如果你就是纯练手,标准分区更简单直接,出问题好排查;如果你打算长期用、以后可能加硬盘扩容,那就 LVM。新手第一次装,标准分区上手更快。
2.4 Windows 侧的几个必做动作
在压缩磁盘之前,Windows 这边有四个动作必须做,我按顺序列一下,每一条都对应一个实际的坑。
第一,关闭系统保护(卷影副本)。它会在磁盘上生成还原点,这些还原点属于"不可移动文件",会直接导致压缩卷时能挤出的空间远小于预期。控制面板里搜"系统",进系统保护,把 C 盘的保护关掉。
第二,关闭页面文件。虚拟内存文件 pagefile.sys 动不动就几十个 G,而且位置不固定。进高级系统设置,性能选项里把虚拟内存设为无分页文件,重启生效。装完双系统后你可以再改回来。
第三,关闭休眠。管理员权限开 CMD,执行 powercfg /h off,把 hiberfil.sys 删掉。这个文件大小等于你的物理内存,16G 内存的机器它就是 16G,白占空间。
第四,关闭快速启动。快速启动是 Win10 的一个混合关机特性,它会锁住一部分磁盘状态,对分区操作不友好。控制面板电源选项里找到"启用快速启动",取消勾选。
做完这四步,再对 C 盘做一次碎片整理(机械盘)或者 TRIM(固态),然后才去磁盘管理里压缩卷。这个顺序别搞反,否则你会遇到那个经典的"可压缩空间只有几十 G"的提示。
3. 实操主线:从压缩卷到系统装完
3.1 在 Windows10 里压缩出空闲空间
右键"此电脑"→管理→磁盘管理,找到 C 盘,右键选"压缩卷"。系统会先扫描,等一会儿,然后弹出一个框,让你填要压缩多少 MB。这里填的是你要给 CentOS7 的空间大小,比如 80G 就填 81920(80 × 1024)。
填完点压缩,你会看到 C 盘右侧多出一块"未分配"的空间,它是黑色的,不属于任何分区。这块空间就是给 CentOS7 准备的。
如果压缩卷提示"可用压缩空间不足",回到上一步检查那四个动作是不是都做了。还有一个隐藏原因是磁盘上有不可移动的系统文件正好卡在你想要压缩的位置,这种情况即使关了所有能关的东西也没用,解决方案是把不可移动文件"推"到磁盘尾部,或者干脆用第三方分区工具(比如 DiskGenius、傲梅分区助手)来做无损调整。第三方工具能解决,但动了分区表就有风险,一定要先备份。
压缩完不用在 Windows 里新建分区,更不要把它格式化成 NTFS,保持"未分配"状态就行,因为 CentOS7 安装程序需要直接接管这块空间。
3.2 BIOS 设置与从 U 盘启动
重启,开机时狂按进 BIOS 的键。不同品牌不一样:联想一般是 F2 或 Fn+F2,戴尔是 F2,华硕是 Del 或 F2,惠普是 F10,神州笔记本常见是 F2 或者 Del。进不去就在开机第一屏看提示,或者直接按 F12 调出启动菜单。
进 BIOS 后要改三处。第一,Secure Boot 设为 Disabled,CentOS7 的引导没做微软签名,开着安全启动会直接拒绝加载。第二,启动模式确认是 UEFI(如果你是 Legacy 机器就跳过这条,别乱改)。第三,把 U 盘调到启动顺序第一位,或者直接按 F12 从启动菜单里选 U 盘。
有个细节要注意:U 盘可能会在启动菜单里出现两个条目,一个带"UEFI"前缀,一个不带。你的机器是 UEFI 引导就选带 UEFI 的那个,选错了会进不去安装界面。这一步选错的表现是屏幕一闪又回到启动菜单,或者提示"No bootable device"。
3.3 安装引导与软件选择
从 U 盘启动后会看到 CentOS7 的引导菜单,用上下键选 "Install CentOS 7",回车。接下来是语言选择,选中文简体或者英文都行,我个人习惯选英文,因为报错信息搜起来方便。然后进到安装总览界面,这里有一堆选项要配,我按重要性排个序。
"软件选择"这一项别忽略。默认是最小化安装,装完只有命令行,连 yum 都在但很多常用工具没有。如果你想用图形界面,选"GNOME 桌面",同时把右侧的"开发工具"勾上,这样后面编译东西不用再补包。纯做服务器练习的话,选"基础设施服务器"或者"最小化安装"都可以,看你需求。
"网络和主机名"这一项,右下角有个开关,打开它,安装过程就能联网,装完之后网卡默认就是启用的,省得你再去改 ONBOOT。主机名顺手起一个,比如 centos-dev。
"时间和日期"选亚洲/上海,如果开了网络同步会自动校准。
"安装位置"是重头戏,放到下一节单独说。全部配完点"开始安装",趁安装过程设置 root 密码、建一个普通用户,都勾上"将此用户设为管理员",这样这个用户能用 sudo。
3.4 手动分区实操:那一步千万别点错
进"安装位置",先选中那块空闲空间所在的磁盘(比如 /dev/nvme0n1 或 /dev/sda),然后一定要选"我要配置分区",不要用自动分区。自动分区会尝试重新规划整块盘,很可能把你的 Windows 分区也动了,这个风险不值得冒。
点进去之后,分区方案选"标准分区"(想用 LVM 就选 LVM)。然后点"+"号逐个添加挂载点。
第一个加 /boot,1G,ext4。第二个加 /boot/efi,注意这里不要填容量,而是从下拉列表里选中已经存在的那个 EFI System Partition(通常 100M 到 300M 大小),并且不要勾选"重新格式化"。这一步是整个双系统安装里最关键的,格式化 ESP 会直接让 Windows 无法引导,变成两个系统都进不去。
第三个加 swap,容量填 8192(8G),文件系统选 swap。第四个加 /,50G,xfs。第五个加 /home,容量不填,留空表示用掉剩余全部空间。
全部分配完,检查一下"可用的空间"应该显示为 0 或者接近 0,确认没有把 Windows 的分区划进来。然后在左下方的"引导加载程序"位置,UEFI 环境下默认会装到那块磁盘的 ESP 上,保持默认即可;Legacy 环境下默认是 MBR,也是默认即可。
这里有两个经典的报错要提前说。如果提示"无法找到合适的 stage1 设备"或者"you have not created a bootloader stage1 target device",通常是因为你在 GPT 磁盘上用 Legacy 方式安装,或者反过来,磁盘类型和引导方式对不上。解决方案是回 BIOS 统一引导方式,或者在分区时单独建一个 1M 的 bios_grub 分区。如果提示"EFI System Partition 空间不足",那就是 Windows 原本的 ESP 太小了,这个情况的处理办法我在下一章讲。
点"完成"→"接受更改",回到安装总览,点"开始安装"。等待二三十分钟,看你机器性能。装完点重启,记得拔掉 U 盘。
3.5 引导与默认启动项调整
重启之后,理论上会看到 GRUB 的菜单,里面应该有两项:CentOS Linux 和 Windows Boot Manager。如果能进 CentOS,说明引导没问题,第一关过了。
但如果你是 UEFI 机器,有可能重启后直接进了 Windows,GRUB 菜单压根没出现。原因通常是 BIOS 启动顺序里 Windows Boot Manager 排在了 centos 前面。解决方案有两个:一是进 BIOS 把 centos 调到第一位;二是在 Windows 里用管理员 CMD 执行 bcdedit /set {bootmgr} path \EFI\centos\grubx64.efi 把默认引导指向 GRUB。我更推荐第一种,改 BIOS 不动系统文件,更干净。
GRUB 菜单里默认是 5 秒自动进 CentOS,如果你日常主要用 Windows,可以把默认项改成 Windows。CentOS 里编辑 /etc/default/grub,把 GRUB_DEFAULT 从 0 改成 saved,然后执行 grub2-set-default "Windows Boot Manager" 指定默认项,最后执行 grub2-mkconfig -o /boot/grub2/grub.cfg 重新生成配置(UEFI 环境下 CentOS7 的 GRUB 配置文件在 /boot/efi/EFI/centos/grub.cfg,但一般用上面这条命令它会自动处理)。
如果重启后看到的是 grub rescue> 提示符,说明 GRUB 找到了引导记录但找不到模块文件。这种情况多半是 ESP 里只写了一半的引导文件。修复办法是用 CentOS 安装 U 盘进救援模式,挂载原系统后执行 grub2-install 重装引导。这个流程稍微复杂,我在下一章的问题排查里展开说。
4. 装完别急着用,先把这几个配置收尾
4.1 CentOS7 网络配置与那个 ens33 的由来
第一次进 CentOS7 你会发现网卡名字不是 eth0,而是 ens33 或者 enp3s0 这种看着别扭的名字,而且默认没配 IP。这不是 bug,是 CentOS7 引入的一致性网络设备命名规则,目的是让网卡名字跟物理位置绑定,避免 eth0 一会儿是这块卡一会儿是那块卡的混乱。习惯了就好,不建议改回 eth0,那需要改内核参数,容易引出别的问题。
配静态 IP 就是编辑 /etc/sysconfig/network-scripts/ifcfg-ens33(文件名里的 ens33 换成你实际的网卡名,用 ip addr 命令能看到)。要改的字段有这么几个:BOOTPROTO 改成 static,ONBOOT 改成 yes,然后加上 IPADDR、PREFIX(或 NETMASK)、GATEWAY、DNS1。改完执行 systemctl restart network 生效,再用 ip addr 和 ping 验证一下。
要是重启网络报错,八成是配置文件里有拼写错误,或者网卡名字写错了。CentOS7 的 network 服务报错信息还算清楚,照着提示改就行。另外从图形界面切到命令行配置后,NetworkManager 可能会跟 network 服务抢管理权,稳妥做法是 systemctl disable NetworkManager 关掉它,只用 network 服务。
4.2 双系统时间不同步的根治方案
这是个几乎百分之百会遇到的坑。你从 Windows 重启进 CentOS,会发现系统时间差了 8 小时。原因在于 Windows 默认把主板硬件时钟当本地时间读,而 Linux 默认把硬件时钟当 UTC 读,两个系统的理解不一致,来回切换就来回错。
解决方案有两条,选一条就行。方案一是在 CentOS 里执行 timedatectl set-local-rtc 1 --adjust-system-clock,让 CentOS 也按本地时间读硬件时钟,跟 Windows 保持一致。方案二是在 Windows 注册表里加一个键,让 Windows 按 UTC 读,路径是 HKLM\SYSTEM\CurrentControlSet\Control\TimeZoneInformation,新建一个 DWORD 值叫 RealTimeIsUniversal,值设为 1,然后重启 Windows 并把 w32time 服务关掉。
我一般用方案一,改 Windows 注册表毕竟有心理负担,改 Linux 一条命令就完事。不过如果你还同时用着别的不需要动的 Linux 机器,方案二更统一。
4.3 yum 源替换和基础环境搭建
CentOS7 停维之后,默认的 mirrorlist 地址基本失效,直接 yum install 大概率报错。解决办法是把源换到国内的归档镜像。先把 /etc/yum.repos.d/CentOS-Base.repo 备份一份,然后把里面的 mirrorlist 和 baseurl 指向阿里云或清华的 centos-vault 地址,保存后执行 yum clean all 和 yum makecache,再加一个 epel-release,常用的开发包就都能装了。
基础工具建议一次装齐:vim、wget、curl、net-tools、bash-completion、telnet、unzip、git、gcc、make。这几样装完,CentOS7 就能当日常开发环境用了。如果你打算在上面跑开发项目、部署服务,那再按需装 Docker、Nginx 之类,CentOS7 上装 Docker 要注意版本,太老的 Docker 跟新内核不兼容,这部分以后有机会单独开一篇说。
5. 常见问题排查和我的避坑心得
5.1 引导类问题速查表
双系统安装里出问题频率最高的就是引导。我把最常见的几种情形整理成表,遇到问题先对号入座。
| 现象 | 可能原因 | 处理办法 |
|---|---|---|
| 重启直接进 Windows,没有 GRUB 菜单 | BIOS 启动顺序里 Windows 在前 | 进 BIOS 把 centos 调到第一,或用 bcdedit 改默认引导 |
| 出现 grub rescue 提示符 | GRUB 引导文件不全或 ESP 挂载被误格式化 | 用安装 U 盘救援模式,挂载原系统后 grub2-install 重装 |
| GRUB 菜单里没有 Windows 项 | os-prober 没检测到,或 Windows 分区是 BitLocker 加密的 | CentOS 里执行 grub2-mkconfig 重新扫描,先关掉 BitLocker |
| 装完 CentOS 进不去,卡在 dracut 提示符 | 根分区 UUID 对不上,或分区方案和内核参数不匹配 | 检查 grub.cfg 里的 root= 参数,确认 UUID 正确 |
| 两个系统都进不去 | ESP 被格式化了 | 用 Windows 安装盘修复引导,再重装 CentOS 引导 |
这个表里最要命的是最后一条,一旦 ESP 格式化,Windows 和 CentOS 都起不来。修复办法是用 Windows10 安装 U 盘启动,进修复模式,命令行里执行 bootrec /fixboot、bootrec /rebuildbcd 两条命令重建 Windows 引导,然后再回 CentOS 重装 GRUB。所以再强调一遍,分区那一步,看到 /boot/efi 一定要选"不格式化"。
5.2 安装过程中的典型报错及应对
除了引导,安装过程本身也有几个高频报错。第一个是前面提到的"无法找到合适的 stage1 设备",根子是引导方式和分区表对不上。UEFI 机器就老老实实用 GPT 加 ESP,不要混搭。
第二个是 ESP 空间不足。Windows 默认给的 ESP 通常只有 100M,CentOS7 往里面写内核和 grub 文件需要一定的空间,如果 Windows 已经占了大部分,就装不下了。解决办法是用 Windows 的 diskpart 或者第三方工具,把 ESP 扩容到 300M 左右。扩容 ESP 需要先把它后面的分区往后挪,属于无损调整,但同样有风险,务必先备份。懒得折腾的话,还有一条路:退回去用 Legacy 引导重装,但那样 Windows 也得重装,代价更大,不如直接扩 ESP。
第三个是安装过程中卡在"正在安装引导加载程序"这一步不动。这通常是 U 盘质量或者 ISO 校验不过关导致的,重做启动盘、最好换一个 U 盘试试。
5.3 我踩过之后才明白的几条经验
第一条,动手前先在虚拟机里完整走一遍流程。用 VMware 建一个 UEFI 虚拟机,装一遍 Windows10 再装一遍 CentOS7,把整个分区和引导流程跑通。虚拟机上搞坏了删掉重建只要几秒钟,真机上搞坏了可能要重装一天的软件。这个演练花你两个小时,能省掉后面不知道多少个焦虑的夜晚。
第二条,分区方案写纸上。别在安装向导里临时想"这个分多大那个分多大",提前把挂载点、容量、文件系统列清楚,安装的时候照着填。安装程序的分区界面没法撤销,你手抖点错一下,可能就把 Windows 分区标成了待格式化。
第三条,宁可加一块硬盘也别在系统盘上硬切。我后来的习惯是,凡是长期要用的双系统机器,直接加一块固态单独装 CentOS,装的时候把引导写到这块盘自己的 ESP 上,Windows 那块盘的引导完全不动。开机时用 BIOS 的启动菜单选进哪个系统,两套环境互相隔离,拔了任何一块盘另一个都能正常开机。这个方案的成本就是一块硬盘的钱,省的是折腾的心力。
第四条,别着急一次装到位。装完先重启三次,每次都确认两个系统都能正常进、都能正常上网、都能正常关机。这三次通过之后,再往 CentOS 里装你真正想用的东西。因为一旦开始装软件、改配置,出问题了你会分不清是双系统的锅还是软件的锅。
第五条,CentOS7 停维之后,新版本的内核和驱动跟它的兼容性会越来越差。如果你只是想学 Linux,我建议顺势把 CentOS 换成它的下游替代品,比如 Rocky Linux 或者 AlmaLinux,装双系统的流程跟这篇讲的几乎一模一样,分区规划、引导处理、时间同步那一套全都能复用,只有软件源和镜像地址需要换一下。老版本留着当怀旧环境可以,别在上面跑重要业务。
最后再分享一个小技巧。如果你实在不想动分区,又需要一块独立的 Linux 环境,可以买一个 U 盘或者移动硬盘,把它做成完整的 Linux 安装盘,CentOS7 或者别的发行版都行。用这个 U 盘启动电脑,就是一个完整独立的系统,拔掉 U 盘 Windows 这边什么痕迹都没有,BIOS 里设一下启动顺序就能自由切换。这个方案我用了很久,特别适合不想承担任何分区风险的场景,唯一的代价是 U 盘读写速度比固态慢一些,日常敲命令、写代码完全够用。