从Windows迁移到CentOS 7.9:完整系统重装与配置指南
1. 从Windows到CentOS:一次彻底的系统环境重塑
如果你已经厌倦了Windows的频繁更新、潜在的隐私顾虑,或者作为一名开发者、运维人员,需要一个稳定、高效、完全可控的服务器环境,那么将你的电脑从Windows彻底重装为Linux,尤其是像CentOS 7.9这样的企业级发行版,无疑是一个极具吸引力的选择。这不仅仅是更换一个操作系统,更像是给你的电脑进行一次“底层架构”的重构,从一个面向大众消费的通用平台,转向一个为稳定运行和深度定制而生的专业环境。我经历过多次这样的转换,从个人笔记本到老旧服务器,每一次都像是一次“系统大扫除”,清除了不必要的预装软件和后台服务,获得了对硬件资源的完全掌控权。这篇文章,就是为你梳理这条转换之路,从前期思想准备、工具选择,到具体的每一步操作、可能遇到的坑,以及装完后的基础配置,我会把我踩过的雷、总结的技巧都摊开来讲清楚。无论你是想搭建一个本地的开发/测试环境,还是让一台旧电脑焕发新生作为家庭服务器,跟着步骤走,你都能顺利完成这次系统环境的“重塑手术”。
2. 重装前的核心考量与准备工作
在动手格式化硬盘之前,充分的准备是避免灾难性后果(比如数据全丢)的关键。这个阶段的核心是:明确目标、备份数据、制作工具。
2.1 明确你的目标与硬件兼容性
首先问自己:我为什么要装CentOS 7.9?是为了学习Linux运维、搭建Web服务器(如Nginx+PHP)、运行数据库(如MySQL/Redis),还是单纯想要一个更干净、更高效的系统?CentOS 7.9作为RHEL(Red Hat Enterprise Linux)的免费复刻版,以其超长的生命周期(支持到2024年6月)和极致的稳定性著称,非常适合用于生产服务器或需要长期稳定运行的环境。但对于桌面日常使用,它的软件仓库可能略显陈旧,桌面环境(如GNOME)也不如Ubuntu等发行版友好。如果你的目标是桌面办公娱乐,或许Fedora、Ubuntu是更好的起点。
接下来是硬件兼容性。CentOS 7.9内核版本较老(3.10.x),对非常新的硬件(特别是2020年后发布的笔记本,涉及Wi-Fi 6网卡、最新核显/独显)支持可能不佳。建议先到电脑或主板官网查看是否有提供Linux驱动,或者用“你的电脑型号 + Linux”作为关键词搜索,看看社区反馈。一个折中的方法是:先在虚拟机(如VMware Workstation或VirtualBox)里安装体验,测试硬件(特别是声卡、网卡、显卡)是否能正常工作。
2.2 数据备份:不容有失的第一步
重装系统会清空你指定安装的分区(通常是整个硬盘或某个分区)上的所有数据。请务必、务必、务必进行完整备份。我个人的备份策略是“三级备份法”:
- 云端备份:将最重要的文档、代码、配置文件同步到网盘(如OneDrive, Google Drive)或自建的NAS/私有云。
- 外部硬盘备份:将整个用户文件夹(
C:\Users\你的用户名)拷贝到移动硬盘或大容量U盘。别忘了浏览器书签、聊天记录(如微信的文件存储路径WeChat Files)、邮件客户端数据等。 - 系统镜像备份(可选但推荐):使用
Dism++或Acronis True Image等工具,为当前Windows系统创建一个完整的镜像文件,存放到外部硬盘。这是最后的“后悔药”,万一新系统不适应或安装失败,可以快速回滚。
注意:不要只备份到电脑的另一个分区(如D盘)。因为在某些安装方案下,你可能会选择格式化整个硬盘,包括所有分区。
2.3 启动盘制作:选对工具,事半功倍
制作Linux启动盘,本质是将一个ISO镜像文件“刻录”到U盘,并使其具备引导能力。你需要准备:
- 一个容量至少8GB的U盘:制作过程会清空U盘,请提前转移数据。
- CentOS 7.9的ISO镜像文件:从官方或国内镜像站下载。推荐下载
CentOS-7-x86_64-DVD-2009.iso或CentOS-7-x86_64-Minimal-2009.iso。Minimal版本更精简,适合服务器;DVD版本包含更多软件包,桌面安装更方便。 - 刻录工具:Windows下首推Rufus,其次Ventoy。
- Rufus:简单粗暴,直接将ISO“烧录”到U盘。优点是兼容性极佳,几乎能应对所有老旧主板。操作时,选择你的U盘,点击“选择”按钮加载下载的ISO文件,分区类型通常选“MBR”(针对传统BIOS)或“GPT”(针对UEFI),具体需与你电脑的启动模式匹配(下文详述),然后点击“开始”即可。
- Ventoy:革命性的工具。你只需将Ventoy安装到U盘一次,之后就可以直接把多个ISO文件像普通文件一样拷贝到U盘里。启动时,Ventoy会提供一个菜单让你选择要启动哪个ISO。这对于需要测试多个Linux发行版或经常重装系统的人来说太方便了。但对于某些特别老的主板,其兼容性可能略逊于Rufus的直接刻录方式。
我个人的习惯是:常备一个用Ventoy制作的多系统U盘,里面放了CentOS、Ubuntu、Windows PE等镜像;同时,针对重要的、一次性的安装(比如给服务器装系统),我会用Rufus单独刻录一个U盘,以求最大程度的安装过程稳定。
3. 深入理解启动模式:BIOS vs. UEFI
这是安装过程中最容易卡住的一环。现代电脑的启动方式主要有两种:传统的BIOS/Legacy和新的UEFI。它们决定了系统如何找到并加载引导程序。
- BIOS/Legacy:使用MBR分区表。系统启动时,BIOS读取硬盘第一个扇区(MBR)中的引导代码,然后加载活动分区上的引导程序(如GRUB)。MBR分区表最多只支持4个主分区,或3个主分区+1个扩展分区(内含多个逻辑分区),且最大支持2TB硬盘。
- UEFI:使用GPT分区表。系统启动时,UEFI固件直接读取EFI系统分区(ESP,一个FAT32格式的小分区)中的
.efi引导文件。GPT分区表没有分区数量限制,支持超过2TB的大硬盘,安全性更好(支持Secure Boot)。
如何判断你的电脑是哪种模式?在Windows中,可以按Win+R,输入msinfo32回车,在“系统信息”窗口中查看“BIOS模式”。如果显示“传统”,则是Legacy;如果显示“UEFI”,则是UEFI。
安装时的关键匹配原则:
- 启动模式:你用什么模式引导U盘(在开机时按F12/F2/Del等键进入启动菜单选择),安装程序就会倾向于以同种模式安装系统。例如,从UEFI模式的U盘启动,安装程序默认会配置UEFI引导。
- 分区表类型:这通常由启动模式决定。UEFI启动必须对应GPT分区表,而Legacy启动对应MBR分区表。在安装CentOS进行分区时,如果硬盘是空的,安装程序会根据启动模式自动建议分区表类型。
实操心得:如果你的电脑支持UEFI,强烈建议使用UEFI+GPT模式安装,这是现代标准,未来兼容性更好。如果电脑较老仅支持Legacy,那就用MBR。最混乱的情况是“混合模式”,即电脑支持UEFI但默认以Legacy启动,这时你需要进入BIOS设置,明确关闭“CSM”(兼容性支持模块)或“Legacy Support”,以启用纯UEFI模式,避免后续引导问题。
4. CentOS 7.9 详细安装流程实录
假设你已经备份好数据,并用Rufus以UEFI模式刻录好了CentOS 7.9 DVD镜像的U盘。下面我们开始安装。
4.1 启动与安装程序初始化
- 插入U盘,重启电脑。在开机自检画面,快速按下启动菜单键(常见的有F12, F2, Esc, Del,具体看屏幕提示或查主板手册)。
- 在启动菜单中,选择带有“UEFI: [你的U盘品牌名]”字样的选项启动。这会进入CentOS安装引导界面。
- 选择“Install CentOS 7”并回车。你会进入一个蓝黑色的安装界面。
第一个可能遇到的坑:屏幕显示异常。如果安装界面花屏、闪烁或只显示一部分,这通常是显卡驱动问题。在引导菜单选择“Install CentOS 7”时,先按Tab或E键(具体看屏幕下方提示)进入编辑模式。在vmlinuz开头的行末尾,空格后添加参数nomodeset,然后按Ctrl+X或F10启动。这个参数会禁用内核模式设置,使用基本的显示驱动,保证安装过程正常进行。
4.2 语言、时区与安装源配置
安装界面首先让你选择语言,建议选“中文-简体中文”,这样后续步骤和安装好的系统部分提示会是中文。 接下来是“安装信息摘要”界面,这是配置的核心。你需要逐一设置:
本地化:
- 日期和时间:点击进入,在地图上选择“亚洲/上海”,或者手动设置。务必关闭“网络时间”同步,因为此时还未配置网络,开启会导致设置失败卡住。系统装好后再开启。
- 键盘:保持“汉语”即可。
- 语言支持:主语言已选“中文”,可以添加“英文”支持,方便某些命令行环境。
软件:
- 安装源:默认是“本地介质”(即你的安装U盘),无需改动。如果是网络安装才需要配置URL。
- 软件选择:这是关键步骤!默认是“最小安装”,只有一个纯命令行界面。对于新手或需要桌面环境的用户,请务必点击进入,在左侧选择“带GUI的服务器”或“开发及生成工作站”。右侧可以勾选你需要的附加组件,比如“开发工具”(包含GCC, Make等编译工具,必选)、“系统管理工具”、“图形管理工具”。我一般选“带GUI的服务器”,再勾选“开发工具”,这样既有图形界面方便初期操作,又具备了基础的开发环境。
系统:
- 安装位置:即磁盘分区,这是重头戏,我们单独在下一节详细讲。
- KDUMP:内核崩溃转储工具,用于调试。对于个人学习或资源紧张的机器,可以关闭它,能节省一点内存。
- 网络和主机名:点击进入,在右上角打开以太网连接(如果有线网已插)或配置Wi-Fi。然后在下方的“主机名”处,输入你喜欢的名字,比如
mycentos,并点击“应用”。强烈建议在这里就配置好网络,因为后续安装可能需要从网络获取更新包。
4.3 磁盘分区方案详解:手动分区更可控
点击“安装位置”,你会看到你的磁盘。选择“我要配置分区”,然后点击“完成”,进入手动分区界面。
对于UEFI+GPT模式,CentOS 7.9至少需要以下三个分区:
| 挂载点 | 建议大小 | 文件系统类型 | 说明 |
|---|---|---|---|
/boot/efi | 200MB - 1GB | EFI系统分区 | UEFI引导必需。用于存放引导文件。 |
/boot | 1GB | xfs 或 ext4 | 存放Linux内核和引导相关文件。1GB足够。 |
/(根分区) | 剩余空间的绝大部分 | xfs (CentOS 7默认) | 系统根目录,存放所有系统文件和用户数据。 |
对于Legacy+MBR模式,则不需要/boot/efi,但需要一个biosboot分区(约1MB),不过CentOS安装程序在MBR模式下通常会自动处理,你只需要创建/boot和/即可。
一个更推荐的、适合新手的方案(UEFI模式):
- 点击“+”按钮,添加
/boot/efi分区,大小设为1024MiB,文件系统为EFI系统分区。 - 再点击“+”,添加
/boot分区,大小设为1024MiB,文件系统为xfs。 - 最后点击“+”,添加
/分区,在“期望容量”处留空(表示使用所有剩余空间),文件系统为xfs。 - 点击“完成”,会有一个“更改摘要”弹窗,确认无误后点击“接受更改”。
注意事项:如果你内存较大(比如16GB以上),可以考虑单独划分一个
swap交换分区,大小通常为物理内存的1-2倍(例如16GB内存,swap给16-32GB)。但在CentOS 7中,如果内存足够大,安装程序可能不会强制要求swap。对于带有GUI的系统,如果内存小于8GB,建议还是分一个swap。
4.4 用户设置与安装执行
分区完成后,回到摘要界面,开始最后设置:
- 网络和主机名:确认网络已连接,主机名已设好。
- 安全策略:可以先保持默认,安装后再配置。
- 根密码:点击“根密码”,为超级管理员root设置一个强密码。务必牢记此密码。
- 创建用户:点击“创建用户”,创建一个你的日常使用账户(如
yourname),并设置密码。建议勾选“将此用户设为管理员”,这样该用户就可以使用sudo命令执行管理任务,比直接使用root更安全。
所有配置检查无误后,点击右下角的“开始安装”。安装程序会格式化磁盘、复制文件、安装软件包。这个过程取决于你的电脑性能和所选软件包数量,通常需要10-30分钟。
安装完成后,点击“重启”按钮。重启时,记得拔掉U盘,否则可能会再次从U盘启动。
5. 首次启动后的关键配置与优化
重启后,你会看到GRUB引导菜单(如果装了多个系统会显示选择项),选择CentOS进入。首次启动会有一个初始化设置向导。
5.1 许可协议与初始设置
同意许可协议,然后进入“初始设置”。
- 连接在线账号:可以跳过。
- 创建普通用户:如果你在安装时已经创建了,这里会直接显示,输入密码登录即可。如果没创建,这里可以补一个。
- 登录后,可能会提示你设置语言、输入法、隐私选项等,按需配置即可。
5.2 配置网络(特别是静态IP)
对于服务器,配置静态IP比动态获取(DHCP)更稳定。在桌面环境,你可以点击右上角网络图标进行图形化设置。但更通用的是命令行方式:
- 打开终端。
- 找到网卡配置文件。CentOS 7的网络配置文件在
/etc/sysconfig/network-scripts/目录下,文件名类似ifcfg-ens33或ifcfg-eth0(ens33是网卡名,你的可能不同,可以用ip addr命令查看)。cd /etc/sysconfig/network-scripts/ ls ifcfg-* # 查看有哪些配置文件 - 编辑你的网卡配置文件,例如
ifcfg-ens33:
你需要修改或确保有以下关键行(根据你的网络环境修改):sudo vi /etc/sysconfig/network-scripts/ifcfg-ens33BOOTPROTO=static # 将dhcp改为static ONBOOT=yes # 开机自启 IPADDR=192.168.1.100 # 你想要的静态IP地址 NETMASK=255.255.255.0 # 子网掩码,或使用PREFIX=24 GATEWAY=192.168.1.1 # 你的网关地址(通常是路由器IP) DNS1=8.8.8.8 # 首选DNS DNS2=114.114.114.114 # 备用DNS提示:如果你不熟悉
vi编辑器,可以使用nano(sudo nano ifcfg-ens33),它更简单。保存vi是按Esc后输入:wq回车;保存nano是按Ctrl+X,然后按Y确认,回车保存文件名。 - 重启网络服务使配置生效:
sudo systemctl restart network - 测试网络:
ping www.baidu.com,看是否能通。
5.3 更新系统与安装基础工具
刚装好的系统,首先更新所有软件包到最新版本,并安装一些常用工具:
# 1. 更新系统(-y 参数表示自动回答yes) sudo yum update -y # 2. 安装常用工具 sudo yum install -y wget curl vim net-tools bash-completion epel-release # wget/curl: 下载工具 # vim: 强大的文本编辑器(比默认的vi更好用) # net-tools: 包含ifconfig等传统网络工具(虽然ip命令是未来,但ifconfig更广为人知) # bash-completion: 命令自动补全增强 # epel-release: 安装EPEL扩展仓库,提供大量额外软件包5.4 配置防火墙与SELinux(可选但重要)
CentOS 7默认开启了firewalld防火墙和SELinux安全模块。对于个人学习环境,为了减少初期麻烦,可以选择暂时调整。
防火墙:如果你只是本地使用,或者需要开放某些端口(如SSH的22,Web的80/443),可以配置
firewalld。# 查看防火墙状态 sudo systemctl status firewalld # 永久开放80端口(HTTP) sudo firewall-cmd --permanent --add-port=80/tcp # 永久开放22端口(SSH) sudo firewall-cmd --permanent --add-port=22/tcp # 重载防火墙配置 sudo firewall-cmd --reload # 查看已开放的端口 sudo firewall-cmd --list-ports如果确定不需要防火墙,可以关闭并禁用(生产环境慎用):
sudo systemctl stop firewalld sudo systemctl disable firewalldSELinux:它是一个强大的安全策略,但过于严格常常导致各种权限问题。对于新手,可以将其模式改为“宽容”模式,仅记录违规而不阻止,或者直接禁用。
# 查看当前状态 getenforce # 显示 Enforcing(强制), Permissive(宽容), 或 Disabled(禁用) # 临时设置为宽容模式(重启后失效) sudo setenforce 0 # 永久设置为宽容模式,编辑配置文件 sudo vi /etc/selinux/config # 将 SELINUX=enforcing 改为 SELINUX=permissive # 然后重启系统重要提示:在真正理解SELinux之前,不建议在生产服务器上直接禁用。
permissive模式是一个很好的折中,它让你能看到哪些操作会被SELinux阻止(通过查看/var/log/audit/audit.log),而不会真正影响服务运行。
6. 常见问题与故障排查实录
即使按照步骤操作,也可能会遇到一些问题。这里记录几个我遇到的高频问题。
6.1 安装后无法进入图形界面(黑屏或卡在命令行)
现象:重启后,没有出现图形登录管理器,而是显示一个黑色屏幕或直接进入命令行(tty1)。原因:最常见的原因是显卡驱动不兼容,或者安装时未正确选择带GUI的软件包。排查与解决:
- 首先,在命令行登录(输入root或你的用户名密码)。
- 检查是否安装了图形界面:
如果返回systemctl get-defaultmulti-user.target,说明系统默认启动到命令行。可以尝试启动图形界面:
如果命令执行后屏幕闪烁但仍无法进入GUI,可能是显卡驱动问题。sudo systemctl set-default graphical.target # 设置默认启动图形界面 sudo systemctl isolate graphical.target # 立即切换到图形界面 - 安装基础显卡驱动(对于Intel/NVIDIA/AMD通用):
安装完成后重启。sudo yum groupinstall "X Window System" "GNOME Desktop" - 如果还是不行,可能是NVIDIA独显的问题。需要先安装EPEL仓库和ELRepo仓库,然后安装NVIDIA驱动(过程较复杂,需根据显卡型号查找具体教程)。一个临时的解决办法是使用
nomodeset内核参数(如前所述),但这会牺牲图形性能。
6.2 系统启动时卡在“A start job is running for /dev/disk/by-uuid/...”
现象:启动过程中,屏幕显示一行提示,大意是“一个启动任务正在等待 /dev/disk/by-uuid/... 的设备”,并且有一个90秒的倒计时。原因:系统在等待某个磁盘设备就绪,但该设备不存在或无法挂载。常见于更改了硬盘顺序、移除了旧硬盘,或者/etc/fstab文件中有错误的磁盘UUID挂载配置。解决:
- 在倒计时界面,你可以按
Ctrl+C中断这个等待,系统可能会继续启动。 - 进入系统后,检查
/etc/fstab文件:
查看是否有指向不存在的设备或错误UUID的行。每一行代表一个开机自动挂载的分区。sudo cat /etc/fstab - 使用
blkid命令查看当前所有磁盘分区的正确UUID:sudo blkid - 对比
blkid的输出和/etc/fstab中的内容,将错误的UUID修正,或者注释掉(在行首加#)那行不需要的挂载配置。 - 保存文件后,执行
sudo mount -a测试配置是否正确(无报错即可),然后重启。
6.3 网络连接不上(特别是Wi-Fi)
现象:在桌面环境无法连接Wi-Fi,或者在命令行下ping不通外网。排查步骤:
- 检查硬件开关:有些笔记本有物理的无线开关或
Fn+Fx组合键,确保Wi-Fi已开启。 - 检查网卡驱动:
确认网卡型号已被识别。对于某些较新的无线网卡(如Intel AX201, Realtek 8852AE),CentOS 7.9的内核可能没有内置驱动。这就需要手动编译安装驱动,过程比较棘手。一个替代方案是使用USB无线网卡,并选择Linux兼容性好的型号(如某些采用RTL8812BU芯片的网卡)。lspci | grep -i network # 查看有线网卡 lspci | grep -i wireless # 查看无线网卡 - 检查NetworkManager服务:CentOS 7的桌面网络由NetworkManager管理。
sudo systemctl status NetworkManager # 查看状态 sudo systemctl start NetworkManager # 启动服务 sudo systemctl enable NetworkManager # 设置开机自启 - 命令行连接Wi-Fi(如果桌面工具失效):
# 查看可用的Wi-Fi网络 sudo nmcli device wifi list # 连接到一个网络(将SSID和密码替换成你的) sudo nmcli device wifi connect "你的Wi-Fi名称" password "你的Wi-Fi密码"
6.4 软件安装失败(yum报错)
现象:运行sudo yum install命令时,出现类似“Cannot find a valid baseurl for repo: base/7/x86_64”或“Could not resolve host”的错误。原因:网络问题,或者yum仓库镜像源配置不正确(特别是从DVD安装后,默认可能指向DVD介质)。解决:
- 备份原仓库文件:
cd /etc/yum.repos.d/ sudo mkdir bak sudo mv *.repo bak/ - 使用阿里云或清华的镜像源(以阿里云为例):
sudo wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo - 清理缓存并重建:
sudo yum clean all sudo yum makecache - 再次尝试安装软件。
7. 进阶配置:让CentOS更好用
系统装好、基础问题解决后,可以进行一些优化,让它用起来更顺手。
7.1 配置SSH远程登录
如果你打算把这台机器作为服务器,SSH是远程管理的必备工具。
- 安装SSH服务器(通常已预装):
sudo yum install -y openssh-server - 启动并设置开机自启:
sudo systemctl start sshd sudo systemctl enable sshd - (可选但推荐)修改SSH配置以增强安全:
sudo vi /etc/ssh/sshd_config- 修改默认端口:找到
#Port 22,去掉注释并改成其他端口(如Port 2222),防止被端口扫描工具轻易攻击。 - 禁止root直接登录:找到
#PermitRootLogin yes,改为PermitRootLogin no。这样你必须先用普通用户登录,再用su或sudo切换为root。 - 使用密钥登录:更安全的方式是禁用密码登录,使用公钥/私钥对。这需要先在客户端生成密钥对,然后将公钥上传到服务器的
~/.ssh/authorized_keys文件中。配置项是PasswordAuthentication和PubkeyAuthentication。 修改后保存,重启SSH服务:sudo systemctl restart sshd。
注意:修改端口或禁用密码前,务必确保你有其他方式(如本地控制台)能访问服务器,并且密钥登录已配置成功,否则可能把自己锁在外面。
- 修改默认端口:找到
7.2 安装并配置Docker
Docker是容器化的标准,在CentOS上安装也很方便。
- 卸载旧版本(如果有):
sudo yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine - 安装依赖和设置仓库:
sudo yum install -y yum-utils sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo - 安装Docker引擎:
sudo yum install -y docker-ce docker-ce-cli containerd.io - 启动并设置开机自启:
sudo systemctl start docker sudo systemctl enable docker - 将当前用户加入docker组,以便无需sudo运行docker命令:
然后注销并重新登录,使组更改生效。sudo usermod -aG docker $USER - 验证安装:
docker run hello-world,如果能成功运行,说明Docker安装成功。
7.3 时间同步配置
服务器时间准确至关重要。使用chronyd服务进行时间同步。
- 安装chrony(通常已安装):
sudo yum install -y chrony - 启动并启用服务:
sudo systemctl start chronyd sudo systemctl enable chronyd - 查看同步状态:
输出中应该能看到几个chronyc sources -v^*或^+的源,表示已成功同步。
从Windows切换到CentOS,最初的一两周可能会有些不适应,特别是文件管理、软件安装方式的不同。但一旦你熟悉了命令行和yum包管理,你会爱上这种高效和透明。我的体会是,把常用命令记在笔记里(比如用alias设置一些快捷命令),遇到问题多查社区(CentOS/RHEL的文档和论坛非常丰富),成长会很快。这台“重生”的电脑,现在是一个由你完全掌控的、稳定且干净的平台,无论是作为学习Linux的沙盒,还是承载你的下一个项目,它都已准备就绪。
