ARTICLE DETAIL

资讯详情

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

从CentOS到Rocky Linux:系统迁移、LVM扩容与安全加固实战指南

从CentOS到Rocky Linux:系统迁移、LVM扩容与安全加固实战指南 1. 为什么是Rocky LinuxCentOS时代的落幕与继承者登场如果你在2020年底之前问任何一个运维老手“生产环境用什么发行版”十有八九会得到同一个答案CentOS。那时候的CentOS 7和CentOS 8几乎就是“免费版RHEL”的代名词稳定性、兼容性、社区生态都无可挑剔。但2020年12月红帽官方宣布CentOS项目将停止维护CentOS 8的维护周期从原定的2029年直接缩短到2021年底CentOS 7也在2024年6月30日正式走向生命周期终点。这一刀切下去等于把全球无数企业的生产服务器推进了一个必须尽快做选择的岔路口。当时市面上冒出了好几个“接棒”选手比如AlmaLinux、Rocky Linux和Oracle Linux。但如果说谁最能还原CentOS时期的使用体验Rocky Linux几乎是不二之选。原因很简单Rocky Linux的创始人Gregory Kurtzer就是CentOS的联合创始人之一他做Rocky Linux的初衷就是“让CentOS的灵魂继续活下去”——完全基于RHEL源代码构建二进制兼容性有保障迁移成本低到惊人。对于手上有一批CentOS的老机器、又不想因为发行版切换而重写脚本和服务的团队来说Rocky Linux是迁移路径最平滑、心理负担最小的选择。再补充一点Rocky Linux遵循RHEL的发布节奏每个大版本支持10年这对企业来说意味着“部署一次、维护十年”的确定性。相比那种滚动更新或者三五年就不得不再来一次大迁移的发行版Rocky Linux在精神上与CentOS时代的“稳字当头”是一脉相承的。这篇文章面向的读者很明确正在用CentOS、被维护终止逼着做迁移的运维人员以及想直接从Rocky Linux入门Linux、不想学一个“即将过时”的系统的零基础新手。我会从安装镜像下载一直讲到网络配置、软件部署、磁盘扩容、常见坑排查把从CentOS到Rocky Linux这一步的完整路径走一遍也把Linux使用的通用基本功揉碎在里面。2. 从零部署镜像获取、虚拟机安装与初始配置2.1 如何正确下载Rocky Linux镜像Rocky Linux的官方镜像下载地址是rockylinux.org但国内访问官方源的速度可能不够理想。实操中我更推荐直接用清华镜像站或阿里云镜像站速度快而且稳定。以清华镜像站为例进入 mirrors.tuna.tsinghua.edu.cn/rocky/ 之后找到对应版本的目录结构。这里有一个新手特别容易看花眼的地方目录里的isos文件夹下面有x86_64、aarch64等多个架构目录而x86_64目录里又会有Boot.iso、Minimal.iso、DVD.iso、Everything.iso等好几个文件。如果只是想在虚拟机里体验或者做服务器基础环境选Minimal.iso就够用体积小、安装快、装完就是一个纯净的命令行系统如果是要在物理机上做完整桌面环境或者不想在安装后折腾网络源直接下载DVD.iso它自带大量常用软件包离线也能装很多组件Everything.iso则是包含几乎所有RHEL软件包的完整版本一般不用碰。Rocky Linux 9系列的Minimal.iso大概在2GB左右DVD.iso在9GB以上下载前注意磁盘空间。另外下载完成后建议做一下校验官网会提供CHECKSUM文件用sha256sum命令核对一下镜像文件的哈希值。2.2 VMware虚拟机安装Rocky Linux全过程新建虚拟机时操作系统类型选择“Red Hat Enterprise Linux 8.x/9.x”或对应的64位版本Rocky Linux和RHEL的内核与硬件兼容性高度一致VMware能自动识别并应用比较合适的配置。内存建议至少给2GB硬盘建议给20GB以上——如果打算后续做桌面环境、装开发工具30~40GB会更从容。安装过程的几个关键节点我单独拿出来说第一安装源。如果用的是Minimal.iso安装程序会要求配置软件源默认会走网络源只要虚拟机网络能通保持默认即可。如果网络环境受限建议用DVD.iso做本地源会省去很多麻烦。第二软件选择。Minimal安装模式下默认是一个最精简的核心环境没有图形界面、没有额外工具链。如果想少走弯路在Software Selection界面勾选“Server”带基本管理工具或者按需勾选Development Tools后者会帮你把gcc、make等编译工具链一并装好后面用源码编译安装软件时不用补装一堆依赖。第三磁盘分区。新手机器建议直接用默认的自动分区方案——LVM逻辑卷管理。这是目前Red Hat系发行版的标准做法好处是以后想扩容、加分区都可以在线操作不用拆机器。稍后我会专门用一节讲怎么利用LVM给根分区扩容这是生产环境中非常高频的操作。第四Root密码与用户创建。安装界面会强制要求设置root密码还会询问是否创建一个普通用户。建议直接创建一个有sudo权限的普通用户这是Linux系统安全的第一道闸门。日常操作用普通用户登录需要提权时再sudo或su切到root能有效避免误操作把系统搞崩。2.3 安装完成后的第一轮配置安装完成重启进入系统之后有几件事我建议立刻做否则后面会踩不少坑。第一件事更新系统。刚装好的系统软件包版本可能不是最新的用dnf update -y把系统内核、核心库和工具全部拉一遍。Rocky Linux的包管理器是dnf和CentOS 8一样CentOS 7用的yum命令在RHEL 8之后已经由dnf接管了不过为了兼容习惯dnf命令也可以直接用yum作为软链接调用。第二件事检查SELinux状态。SELinux是Red Hat系发行版内置的强制访问控制安全模块它在CentOS时代就存在很多新手怕它烦人爱用sed -i s/SELINUXenforcing/SELINUXdisabled/ /etc/selinux/config直接关掉。我的建议是安装和测试阶段可以临时用setenforce 0关掉但生产环境还是尽量开启遇到权限问题优先排查SELinux的布尔值和上下文而不是无脑禁用。安全底线不能丢。第三件事配置好yum/dnf仓库。Rocky Linux安装后默认会启用BaseOS、AppStream和Extras三个仓库这些源指向的是官方镜像。在国内环境下建议直接换成阿里云或清华的镜像源速度差距非常明显。具体做法是修改/etc/yum.repos.d/目录下的rocky.repo和rocky-extras.repo文件把mirrorlist和baseurl两行里的官方地址替换为https://mirrors.aliyun.com/rocky/或清华镜像对应的路径。3. 网络配置实操从静态IP到远程连接3.1 为什么服务器必须用静态IP虚拟机安装好之后系统默认使用DHCP自动获取IP地址这在家庭网络或测试环境里没问题但如果是要做服务器、要做SSH远程管理、要跑数据库或Web服务DHCP分配的IP地址是动态变化的一旦重启路由或租约到期IP可能就变了到时候所有依赖这个IP的连接全断。生产环境中给服务器配置固定IP是基本功。Rocky Linux 9的网络配置方式和CentOS 7有本质区别——它默认使用NetworkManager管理网络连接网络配置文件以NetworkManager的keyfile格式存放在/etc/NetworkManager/system-connections/目录下。网卡命名规则也变了不再是eth0这种简洁名称而是像ens160、enp0s3、eno1这类基于硬件位置信息生成的名称。配置静态IP有两种主流方式一种是传统做法直接修改网卡配置文件另一种是走NetworkManager命令行工具nmcli。我更推荐第二种因为nmcli的语法清晰、不容易出错而且改动即时生效非常适合新手对照学习。3.2 使用nmcli配置静态IP的完整步骤先查看当前系统的网络接口名称和连接状态nmcli device status假设网卡名是ens160接下来用以下命令为它配置静态IPnmcli con mod ens160 ipv4.addresses 192.168.1.100/24 nmcli con mod ens160 ipv4.gateway 192.168.1.1 nmcli con mod ens160 ipv4.dns 223.5.5.5 114.114.114.114 nmcli con mod ens160 ipv4.method manual第一行是把IP地址设置为192.168.1.100子网掩码用CIDR格式的/24表示也就是255.255.255.0。第二行设置网关地址为路由器的局域网IP。第三行配置DNS服务器这里用的是阿里DNS和114DNS的组合生产环境建议根据运营商或公司内部DNS来定。第四行把IP获取方式从自动改为手动。配置完成后执行nmcli con up ens160让配置生效然后执行ip addr查看IP地址是否变更为预设值再用ping -c 3 www.baidu.com验证网络是否通畅。如果ping不通域名但能ping通网关多半是DNS没有配置正确如果网关都ping不通优先检查IP和掩码是否写错。3.3 修改主机名与SSH远程管理装完系统后默认主机名是localhost.localdomain需要在网络中识别服务器身份时很不方便。用以下命令修改为有意义的名称hostnamectl set-hostname rocky-server然后编辑/etc/hosts在127.0.0.1行的末尾加上新主机名这样本机解析自己的名称时才不会报错。SSH服务在Rocky Linux安装完成后默认是开启的检查一下状态systemctl status sshd如果有防火墙需要放行22端口firewall-cmd --permanent --add-servicessh firewall-cmd --reload远程连接时用MobaXterm或Xshell这类SSH工具输入服务器的IP、用户名和密码即可登录。如果连接不上先在本机执行ss -tlnp | grep sshd确认SSH服务在监听用systemctl status firewalld查看防火墙状态再用ping确认网络连通性——绝大多数连接失败的场景都逃不过这“三步走”排查法。4. Linux必备基础常用命令、用户权限与文件系统4.1 新手必会的Linux常用命令素养从Winndows转过来的人最不适应的就是“没有图形界面怎么干活”这件事。其实Linux命令行的逻辑是你告诉系统你要干什么系统就去执行一条命令就是一次精确的指令。我把最常用的命令分成几类每一类都值得反复练文件操作类ls列出目录文件、cd切换目录、pwd显示当前路径、cp复制、mv移动/重命名、rm删除、mkdir创建目录、touch创建空文件、find查找文件。其中的关键技巧是掌握通配符比如cp *.log /backup/可以一次性复制所有后缀为.log的文件。文本查看与处理类cat查看文件内容、less分页查看大文件、grep按关键词过滤内容、head看文件开头、tail看文件结尾配合-f参数可以实时跟踪日志这是排查线上问题最常用的命令、awk和sed文本处理工具进阶必备。系统管理与状态查询类ps查看进程、top动态监控资源占用、free -h查看内存、df -h查看磁盘使用率、du -sh查看目录大小、systemctl管理服务、ss -tlnp查看端口监听情况。软件安装类dnf install 包名、dnf remove 包名、dnf search 关键词、rpm -qa列出所有已安装的RPM包。压缩与解压类.tar.gz文件用tar -zxvf 文件名解压、tar -zcvf 文件名.tar.gz 目录名压缩.zip文件用unzip解压.xz文件用tar -xJf解压。新手最容易犯的错误是解压.tar.gz文件时把参数拼错这里有一个稳的口诀tar -zxvf表示用gzip解压tar -jxvf表示用bzip2解压tar -Jxvf表示用xz解压x代表解压v代表显示过程f必须放在参数最后指代文件名。4.2 用户管理与文件权限体系Linux是一个真正的多用户操作系统权限设计是它的安全基石。首先要理解三个身份概念文件所有者Owner、文件所属组Group和其他用户Others。用ls -l查看文件的详细属性时第一列就是像-rw-r--r--这样的10个字符第一个字符代表文件类型-是普通文件d是目录l是符号链接后面每三个字符一组分别对应所有者、所属组、其他人的读r、写w、执行x权限。用户管理的高频命令useradd alice # 创建用户 passwd alice # 设置用户密码 usermod -aG wheel alice # 把用户加入wheel组获得sudo权限 sudo -i # 切换到root身份 su - alice # 切换到alice用户 userdel alice # 删除用户加-r参数会同时删除家目录在Red Hat系的发行版中wheel组拥有sudo权限CentOS 7时代很多新手忘记了这一步导致创建的新用户无法提权又切不回root最后只能重启进单用户模式或者用live CD救场。这个坑我踩过所以特别提醒普通用户必须加入wheel组才能正常用sudo。修改权限用chmod命令有两种表达方式。数字法r4w2x1合起来就是0~7的数字比如754代表所有者可读写执行、所属组可读执行、其他人只读。符号法chmod ux 文件给所有者加执行权限、chmod o-w 文件删掉其他人的写权限。目录权限要特别注意目录的x权限代表“能否进入该目录”r权限代表“能否列出目录中的内容”如果只有r没有x你会发现ls能看到文件名但打不开文件这个细节很容易让新手一脸懵。4.3 理解systemd从SysV到新时代的服务管理Rocky Linux的服务管理完全由systemd接管CentOS 7之后的Red Hat系版本都是如此。systemd把服务抽象成单元Unit用一条命令就能完成启动、停止、开机自启等操作systemctl start sshd # 启动服务 systemctl stop sshd # 停止服务 systemctl restart sshd # 重启服务 systemctl enable sshd # 设置开机自启 systemctl disable sshd # 取消开机自启 systemctl status sshd # 查看服务状态每次修改了服务的配置文件执行systemctl daemon-reload让服务加载新配置这也是一个容易被忽略的步骤。启动一个服务就像请了一位员工上班systemd还会给这个员工记考勤它有restart机制服务异常退出时自动拉起用journalctl可以查看日志journalctl -u sshd # 查看某个服务的日志 journalctl -f # 实时跟踪所有日志 journalctl --since today # 查看今天的日志排查服务起不来的通用套路是先systemctl status 服务名看有没有报错信息再journalctl -u 服务名看日志的详细输出90%的问题都能通过这两步定位。5. 从入门到实干软件安装、办公套件与开发环境搭建5.1 三种软件安装方式与各自适用场景Linux下安装软件的路径比Windows多样理解这几种方式的区别是Linux水平分水岭的一块重要试金石。第一种dnf包管理器。它是Red Hat系的“应用商店”从官方仓库下载并安装软件自动处理依赖关系。绝大多数软件都能通过这种方式安装比如dnf install nginx、dnf install python3。优点是无脑、省心、卸载干净缺点是软件版本可能不是最新受到的官方仓库更新节奏的限制。第二种RPM包直接安装。这种方式适合安装那种已经打包好但没有收录进官方仓库的软件比如Oracle数据库、某些商业软件。使用方式为rpm -ivh 软件包.rpm卸载用rpm -e 包名。注意直接安装RPM包不会自动解决依赖如果缺少依赖库命令会报错告诉你具体缺什么需要手动去装齐依赖非常麻烦。第三种源码编译安装。下载源代码依次执行./configure、make、make install。这种方式最灵活可以自定义编译参数但前提是系统里必须装好编译工具链dnf groupinstall Development Tools。这个组包会一次性把gcc、g、make、autoconf等一整套工具装好我建议新装系统后无论用不用得到先给它装上是明智的。另外还有一种很常见的场景软件只发布二进制tar包比如某些JDK版本和企业软件解压即用不需要安装。这种包通常会把这个目录的路径写入/etc/profile或用户目录下的.bashrc环境变量里就能全局调用。5.2 使用dnf安装LibreOffice办公套件先回答一个实际问题Rocky Linux能装WPS或LibreOffice办公套件吗答案是能但方式不太一样。WPS官方提供Linux版rpm包下载安装即可LibreOffice则可以直接通过dnf装。虽然从热词里看到有用户专门去找LibreOffice的Linux版安装包来解决办公需求但实际上在连好网络源的情况下一句命令就够了dnf install libreoffice这个命令会安装全套LibreOffice组件包括Writer文档、Calc表格、Impress演示文稿等。如果只想安装其中的几个组件可以精确指定比如只装Writer和Calcdnf install libreoffice-writer libreoffice-calc我实测在Rocky Linux 9上dnf源里的LibreOffice版本是7.x系列功能完整打开大部分Office文档没有问题。对于一台从CentOS迁移过来的办公用Linux机器来说这基本可以覆盖日常的文档、表格、PPT需求。装完直接输入libreoffice或soffice启动首次打开时可能需要导入一些字体建议顺便执行dnf groupinstall fonts把中文字体也补上否则打开含中文的文档容易显示成乱码或方块。另外如果实在习惯了WPS的交互体验WPS官网有专门的Linux版本rpm下载安装方式是rpm -ivh wps-office-*.rpm需要注意的是WPS依赖了一些第三方库若安装报错缺少依赖可以使用dnf install *依赖名*补齐再把对应的字体文件放到/usr/share/fonts/下执行fc-cache刷新字体缓存中文显示就正常了。5.3 在Rocky Linux上安装Python及多版本管理Linux系统通常自带Python但版本可能偏旧。在Rocky 9上默认的Python是3.9系列很多新项目需要Python 3.11甚至3.12的特性这时不能直接去官网下载源码怼上去因为系统自带的Python被yum/dnf工具链依赖随便替换可能导致包管理器损坏。正确的做法有多条路这里分享我最常用的两种第一种用dnf安装系统仓库内的Python版本dnf install python3-pip python3-develpython3-pip是pip包管理器python3-devel包含编译Python扩展模块所需的头文件安装第三方包时经常会用到。第二种使用pyenv管理多版本Python。pyenv是Linux下管理Python多版本的经典工具安装方式curl -L https://github.com/pyenv/pyenv-installer/raw/master/bin/pyenv-installer | bash装完之后把pyenv的路径写入shell配置然后就可以自由安装和管理多个Python版本pyenv install 3.11.9 pyenv global 3.11.9这里提醒一点在CentOS/Rocky系系统上编译安装新Python必须提前装好编译依赖否则会卡在缺少头文件这一环dnf groupinstall Development Tools dnf install zlib-devel bzip2-devel readline-devel sqlite-devel libffi-devel openssl-devel tk-devel很多人在用pyenv安装Python时遇到ModuleNotFoundError: No module named _ctypes就是因为缺了libffi-devel。这类依赖问题装好上面的包基本能一次过。5.4 离线安装pnpm无网络环境的软件部署方案生产环境很多时候是内网隔离的无法访问外部网络这时装软件就得走离线流程。我以离线安装pnpm为例把这个套路完整走一遍以后遇到其他离线安装场景可以举一反三。在能联网的开发机上用corepack把pnpm做好离线准备或者直接从npm源下载tgz包。实际操作中最简单的方式是直接下载pnpm的二进制压缩包——pnpm官方提供了standalone格式的Linux二进制包。假设已经把压缩包上传到了内网服务器的/opt目录接下来按这个步骤操作mkdir -p /opt/pnpm tar -zxf pnpm-linux-x64.tar.gz -C /opt/pnpm ln -s /opt/pnpm/pnpm /usr/local/bin/pnpm第二步解压静态二进制文件第三步创建软链接把pnpm命令挂到系统命令路径下。之后验证pnpm -v输出版本号即代表安装成功。这个思路适用于所有提供静态二进制包或单文件发布的软件比如许多Go语言编写的工具、部分国产软件都是解压即用的模式。离线安装另一个重要技巧是提前准备好依赖比如要用pnpm装某个项目的依赖可以在联网环境执行pnpm install然后把整个node_modules目录和pnpm-lock.yaml一并拷贝到内网机器然后执行pnpm install --offline就能完全离线完成依赖安装。5.5 容器与虚拟化在Rocky 9上部署KVM虚拟化平台生产环境里经常需要一台宿主机跑多个隔离的虚拟机KVM是Linux内核自带的虚拟化方案性能和稳定性都很优秀是替代商业虚拟化软件的可靠选项。在Rocky Linux 9上部署KVM核心步骤如下。安装虚拟化组件dnf module install virt或安装完整的虚拟化宿主机组dnf groupinstall Virtualization Host安装完成后启动并设置自启systemctl start libvirtd systemctl enable libvirtd检查CPU是否支持虚拟化grep -Eo (vmx|svm) /proc/cpuinfo如果有输出就说明硬件虚拟化已开启。接下来创建虚拟机有两种常用方式一是virt-manager图形化管理工具适合不熟悉命令行的人二是用virsh命令结合XML配置文件或virt-install命令行工具适合批量部署。用virt-install创建一台CentOS虚拟机作为对比在Rocky上再开一台CentOS是完全可行的镜像可从CentOS官方Vault里拿virt-install \ --name centos-test \ --memory 2048 \ --vcpus 2 \ --disk size20 \ --os-variant centos7 \ --network default \ --cdrom /opt/iso/CentOS-7-x86_64-Minimal-2009.isoKVM部署最容易踩的三个坑一是BIOS里没开虚拟机化功能导致KVM模块加载失败二是防火墙拦截了VNC端口virt-manager图形界面连不上三是SELinux的sVirt策略与目录权限冲突虚拟机找不到磁盘镜像。排查思路分别是确认/dev/kvm设备存在、在firewalld放行vnc服务或者tcp/5900-5910端口范围、把磁盘镜像目录的SELinux上下文设置为virt_image_t。6. 系统维护进阶磁盘管理、扩容实战与安全加固6.1 用LVM给根分区扩容的完整操作热词里出现了“CentOS扩容”和“wsl linux删除文件后空间没释放”这类问题说明磁盘空间管理是Linux用户的一个真实痛点。LVM逻辑卷管理是Red Hat系Linux默认的磁盘管理方案它的核心价值在于“分区不再是物理上的死板划分而是可以在逻辑层动态调整”。CentOS/Rocky安装系统的自动分区默认就是LVM布局物理卷PV→ 卷组VG→ 逻辑卷LV三层结构。虚拟机200GB磁盘快满了扩容思路分两步。第一步在虚拟化层把磁盘调大。比如VMware里把磁盘从200GB扩到300GB调完之后系统里还看不到新空间因为这只是虚拟磁盘层面的扩大物理卷还没感知。第二步在系统内部完成物理卷、卷组、逻辑卷和文件系统的扩展# 让系统识别新的磁盘空间 echo 1 /sys/class/scsi_disk/0:0:0:0/device/rescan partprobe /dev/sda # 扩展物理卷到整个磁盘 pvresize /dev/sda2 # 查看卷组还有多少可用空间 vgdisplay # 把新增空间全部分配给根逻辑卷 lvextend -l 100%FREE /dev/mapper/rl-root # 扩展文件系统大小XFS文件系统用xfs_growfsext4用resize2fs xfs_growfs / # 验证扩容效果 df -h一条条拆开解释一下pvresize的作用是让物理卷识别到磁盘新增的空间就像把仓库的墙往外移仓库的“可使用面积”变大了lvextend把卷组里可用的空间分配给根逻辑卷xfs_growfs则让文件系统感知到逻辑卷的变化。这三步缺一不可很多人只执行了lvextend却忘了最后一步xfs_growfs结果df -h看到的还是老容量。这种在线扩容量操作不用停服务、不用重启在数据库磁盘吃紧的时候是救命级的操作。但反向操作缩容就麻烦很多XFS文件系统不支持在线缩容真需要缩容只能备份后重新分区。所以生产环境建议“宁大勿小”反正LVM扩容方便初期磁盘规划尽量留足余量实在不够再加。6.2 防火墙配置与安全加固要点Rocky Linux默认启用了firewalld它比CentOS 6时代的iptables更加易用而且也能对流量进行精细控制。高频命令整理如下systemctl status firewalld # 查看防火墙状态 firewall-cmd --list-all # 查看当前规则 firewall-cmd --permanent --add-port8080/tcp # 放行8080端口 firewall-cmd --permanent --remove-port8080/tcp # 删除端口放行 firewall-cmd --permanent --add-servicehttp # 放行HTTP服务 firewall-cmd --permanent --add-rich-rulerule familyipv4 source address192.168.1.0/24 port port3306 protocoltcp accept # 指定网段访问数据库端口 firewall-cmd --reload # 重新加载规则注意一个规律--permanent表示写入永久配置但不会立即生效必须执行firewall-cmd --reload才能让新规则生效。如果只执行不带--permanent的命令规则会立即生效但重启后丢失。安全加固层面我从实际经验里挑几个性价比最高的动作修改SSH默认端口。22端口每天会被全网扫描机器人光顾无数次把SSH端口改成高位端口如22222能挡掉90%的自动扫描攻击。改法是编辑/etc/ssh/sshd_config找到#Port 22修改为Port 22222然后systemctl restart sshd。注意防火墙要同步放行新端口并且确认当前SSH连接不会因为配置错误被断掉后再重启服务。禁止root直接SSH登录。编辑/etc/ssh/sshd_config设置PermitRootLogin no用普通用户登录后通过su或sudo提权。这一步等于把暴力破解的“最终奖励”去掉了攻击者就算猜到密码也无法直接拿到root。配置密钥登录替代密码登录。用ssh-keygen -t rsa -b 4096生成密钥对把公钥内容追加到服务器的~/.ssh/authorized_keys文件中并在sshd_config里设置PasswordAuthentication no这样即使密码泄露没有私钥也登不进来。6.3 忘记root密码的应急自救办法关于系统管理很多人迟早会碰上一个“完网都塌了”的时刻root密码忘了。在物理机或虚拟机上Red Hat系的系统提供了一种标准的破密码方式。重启系统在GRUB引导菜单出现时按e进入编辑模式。找到以linux开头的那一行定位到行尾在ro附近追加rd.break参数然后按CtrlX引导进入紧急shell。这一步让系统在接管根文件系统之前停下来给你一个root身份的救援shell。接下去的经典操作顺序mount -o remount,rw /sysroot chroot /sysroot passwd root touch /.autorelabel exit reboot依次解释mount -o remount,rw /sysroot是把原先只读挂载的根目录重新以读写方式挂载chroot /sysroot是把当前shell切换到真正的根文件系统环境里passwd root设置新密码touch /.autorelabel是告诉SELinux在下次启动时重新给文件打标签因为直接在救援环境修改系统文件文件的SELinux上下文可能乱了最后退出并重启用新密码登录完事。提这个操作不是为了教大家怎样绕过密码权限而是在发生密码管理事故时给自己留一条保底的逃生通道。安全底线在于这台服务器必须是物理上你说了算的那台机器只有在你自己能控制硬件的机器上这个办法才成立。6.4 解决WSL磁盘空间不释放虚拟磁盘压缩经验热词里有“wsl linux删除文件后空间没释放”这是Windows Subsystem for Linux用户的通病。WSL2使用ext4文件系统存放在一个名为ext4.vhdx的虚拟磁盘文件里删除文件时ext4会释放块但虚拟磁盘文件不会自动缩小导致在Windows里看这个文件越来越大。标准的修复流程是这样的在Windows里用 wsl --shutdown 关闭所有WSL实例再以管理员身份打开PowerShell执行diskpart select vdisk fileC:\Users\你的用户名\AppData\Local\Packages\...\LocalState\ext4.vhdx attach vdisk readonly compact vdisk detach vdisk exit这一步相当于手工对虚拟磁盘文件做了一次“压缩整理”回收被删除文件占用的虚存空间。实测下来能把动辄200GB的ext4.vhdx压缩回四五十GB效果非常显著。虽然这个操作本身不复杂但有两个注意事项一是在执行压缩前务必备份ext4.vhdx文件因为一旦磁盘操作出错WSL里所有数据都会遭殃二是如果你在WSL内部运行了数据库等持续写入的服务压缩前要先停止这些服务并用sudo fstrim /手动触发一次文件系统的TRIM操作否则回收效果会大打折扣。7. 常见问题速查Rocky/CentOS迁移与使用避坑这两年在CentOS和Rocky之间来回迁移以及日常用Rocky踩过的坑整理成一张速查表基本覆盖了高频疑难场景问题现象排查思路解决方案Rocky/虚拟机SSH连不上先本地systemctl status sshd看服务再看防火墙最后ping网关确保ssh服务存活firewalld放行ssh端口IP和网关配置正确配置静态IP后网络不通检查IP/网关是否处于同一网段DNS是否错误用nmcli con mod逐项检查ip route show查看路由配置完nmcli con up重新激活连接dnf安装软件报“无法找到镜像”或网络超时确定是源的问题而非网络问题换国内镜像源编辑/etc/yum.repos.d/rocky.repo中的baseurlLibreOffice/WPS打开中文乱码系统没有中文字体dnf groupinstall fonts或把Windows的simsun等字体放到/usr/share/fonts/后执行fc-cache安装Python源码包时报缺少_ctype或ssl模块系统没装对应的devel包dnf install libffi-devel openssl-devel zlib-devel磁盘空间不足但删了文件空间没变WSL的vhdx不会自动收缩需要compact按6.4节流程用diskpart压缩虚拟磁盘编译软件时报Cannot find C compiler没有开发工具链dnf groupinstall Development Tools扩容后df -h没有变化逻辑卷和文件系统没有同步扩展XFS执行xfs_growfs /ext4执行resize2fs对应设备路径sudo命令提示用户不在sudoers中用户不在wheel组usermod -aG wheel 用户名切换新会话生效这套速查表写的是最常见、最基础的问题把它们逐个搞明白之后大部分日常工作都能顺手完成。其实Linux的学习路径就是这样一开始是背命令、查文档用多了之后会发现遇到的坑就那些解决一个少一个积累到一定程度自然就“熟手”了。Rocky Linux作为CentOS的延续能够让你把这套经验平滑过渡过来同时它本身也在持续演进——比如内置了更新的内核、更强的SELinux策略、更精细的firewalld管理这些都需要在实际操作中一点点体会。我特别想分享的一点是不要害怕在安装和配置过程中反复把系统搞坏。虚拟机的快照功能就是为此准备的装系统之前打一个快照折腾坏了就一键还原哪怕重装也就十几分钟的事。真正的学习发生在“坏了→排查→修复”的循环里多折腾几次前面表格里的那些“解决方案”就不再是文字而成了你自己的肌肉记忆。最后留一个练习思路在一台Rocky Linux虚拟机上从配置静态IP开始装上Python环境用dnf部署一个LibreOffice再用LVM把根分区扩大10GB最后改掉SSH默认端口并开启密钥登录。把这串操作完整跑完你的Linux系统管理基本功就已经入门了而且是可以直接用到生产环境的那种。
返回列表