RHEL7系统修复rm -rf /boot /etc/fstab

本文详细介绍如何在RHEL7/Centos7系统丢失/boot/文件和fstab文件后,利用系统光盘进入救援模式,逐步修复分区文件、内核相关文件及引导grub2文件的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

导读RHEL7/Centos7系统发布这么长时间了,大家都知道这个系统的一个特点就是用systemctl代替了init系统守护进程,系统越来越模块化了。在新版的系统中许多的命令也发生了改变,grub也变为了grub2完全看不懂了,网上也有许多的新版本与老版本对比的教程。一直想试一下7版本的系统修复,今天就手一划把系统干掉了,修复ing
暴力干掉系统---"rm -rf /boot /etc/fstab"

/boot/ 存放着系统的内核和引导文件,在boot下面的“grub2/grub.cfg” 又存放着系统的mbr引导记录信息,"rm -rf /boot "系统肯定是挂了,下面做一个更加绝的— — "rm -rf /etc/fstab" 把分区表给干掉
rescue1

重启系统,发现系统已经挂了:

rescue2

修复,进入系统光盘

目前我们的修复就不能进入咱们的linux系统自带的工具进行修复了,因为我们的系统已经挂掉了,已经没有可以进的系统了,接下来需要做的就是:进光盘,从光盘启动— — 修复选项
rescue3
注意,我们在快速启动项中可以选择:光盘,网络,以及其他引导设备如U盘、硬盘等。在企业环境中我们需要做的应该就是网络pxe进行启动,如果没有pxe网络部署服务器的话,要做到就是插入光盘、U盘启动盘、直接把硬盘挂载在一台另外的linux系统中进行修复。

进入光盘的修复模式进行修复

rescue4
在RHEL7中的启动盘中,我们 上下移动光标 选择第三项"Troubleshooting"救援模式 回车 进入;

在RHEL7中的启动盘中有三大选项:

1."Install Red Hat Enterprise Linux 7.0"————安装RHEL7.0操作系统

2."Test this media & install Red Hat Eenterprise Linux 7.0"测试启动盘是否完整并安装RHEL7.0

3."Troubleshooting" ————配错模式救援模式
进入光盘修复模式,修复向导

rescue6

rescue7

按照向导修复系统的fstab也就是让系统找到磁盘分区

在光盘的救援模式下会有一个类似于windows的pe的伪系统,在这个伪系统中我们使用“df”命令查看系统分区,发现没有挂载的分区。我们用“fdisk”命令工具查看我们的硬盘的分区情况,然后写入"/etc/fstab",就可以让系统找到系统分区。

rescue8

在伪系统中是没有命令提示符的,这个时候“pwd”的命令就要发挥作用了,我们在当前位置中创建一个挂载点,然后把光盘的分区挂载到挂载点上,然后通过“ls”命令查看分区下面内容来分辨分区的具体位置:

rescue9

通过分区内容分辨出我们的分区后,我们找到“/”写入"/etc/fstab"。让系统识别系统文件

rescue10

好的,写入fstab我们的分区就找到了,重启系统,继续从光盘启动,继续修复

修复/boot/ 内核等文件

重启从光盘启动,进入“伪系统”中修复

rescue11

rescue12rescue13

思路:
1.根据向导提示,我们已经找到系统分区了,而且还把硬盘挂载到了/mnt/sysimage/ 这个目录里面,下面我们需要的就是把环境切换到我们的硬盘系统中也就是/mnt/sysimage

2.在上一步我们发现我们笔误,把home写成了boot。至于怎么发现这个错误,就是要进入目录中进行ls查看,多运用pwd命令,多想象我们当前所在的位置。

3.我们在/boot/ 下面ls查看,发现我们的文件为空,想象:boot里面存放的是我们的内核,RAMDISk文件,以及引导等重要信息,这些东东都是与我们的内核相关的,没有内核我们怎么办?——手动安装内核——怎么安装?——rpm包安装——安装源?——光盘或ftp——光盘挂载——在伪系统中才能挂载——创建挂载点——安装。。。
"cd ..
mkdir 1
mount /dev/sr0 1
cd 1/Packages/
rpm -ivh kernel—3.10XXX  --root=/mnt/sysimage/ --enforce"

在伪系统中安装内核,"--root=/mnt/sysimage --enforce "以root的身份把内核强制安装在硬盘系统下

rescue14

rescue15

漫长的等待中我们的内核相关文件都已经安装完成了。

接下来就是修复mbr的grub文件:

"grub2-install /dev/sda"在第一块硬盘上添加引导,修复grub2相关文件

"grub2-mkconfig /boot/grub2/grub.conf "重新生成引导项到文件

rescue16

ok,我们的“grub2.conf”修复成功
rescue17
磁盘分区修复成功,内核文件修复成功,引导文件修复成功,系统该有的都有了,ok测试

重启测试

重启我们看到我们的引导项里面就有了linux的启动项
rescue18

重新刷标签,继续等待,在此过程中可能重启多次
rescue19

测试成功,rhel7久违了:

rheldesk

系统修复总结

1.当系统丢失了/boot/的文件和fstab文件,这个时候就需要进入RHEL系统光盘进入救援修复模式修复或者在其他linux系统下修复
2.在救援修复模式中按照向导先看分区是否能够找到。然后看内核文件,最后看引导文件
3.内核安装是在伪系统中通过“rpm -ivh”运行的,"--root=/mnt/sysimage --enforce" 以root的身份把内核强制安装在硬盘系统下
4.grub文件的修复中"grub2-install /dev/sda"在第一块硬盘上添加引导"grub2-mkconfig /boot/grub2/grub.conf"重新生成引导项到文件
5.在救援修复模式中,常用的命令就是“pwd”和“ls”,一定注意您当前所在的位置。
6.系统默认把硬盘挂载在“/mnt/sysimage”在挂载的时候一定不能习惯性的把光盘挂载在“/mnt”否则你会删掉硬盘上的所有文件
7.总规划:救援模式——分区文件——内核相关文件——引导grub2文件

本文转载自:http://www.linuxprobe.com/rhel7-rescue

免费提供最新Linux技术教程书籍,为开源技术爱好者努力做得更多更好:http://www.linuxprobe.com/

<think>嗯,用户说他们的Linux系统里/usr目录使用率过高,需要扩容。首先,我需要理清楚解决这个问题的步骤。通常,处理磁盘空间不足的问题有几个方法,比如清理不必要的文件、调整分区大小或者添加新的存储设备。不过用户提到的是/usr目录,这个目录通常包含系统软件和应用程序,所以直接删除文件可能不太安全,需要谨慎操作。 首先,我应该建议用户先确认当前磁盘的使用情况。使用df -h命令查看各个挂载点的空间情况,确定是不是真的是/usr所在的分区满了。有时候可能是其他分区的问题,或者有符号链接指向了其他位置。然后,使用du -sh /usr/* | sort -hr来查看/usr下各个子目录的大小,找出占用空间最多的部分。比如,是不是有大量的旧内核文件,或者缓存文件积累过多。 接下来,清理不需要的文件可能是个快速缓解的方法。例如,删除旧的内核版本,很多Linux发行版在升级内核后不会自动删除旧版本,这些文件通常存放在/boot目录下,但如果/boot是挂载在/usr下的话,可能会占用/usr空间。另外,检查/usr/local和/usr/src是否有不需要的软件或源码。日志文件也是一个常见的占用大户,检查/var/log,如果/var是/usr的子目录的话,可能需要清理日志或者配置日志轮替。 如果清理后空间还是不够,就需要考虑扩容了。这里有几个方法:调整分区大小、添加新硬盘或者使用符号链接转移部分数据。调整分区需要看当前分区是否有未分配的空间,或者是否使用LVM,这样可以在线调整。如果是传统的分区,可能需要先卸载分区,但/usr通常很难卸载,因为系统在运行中会使用到,这时候可能需要用Live CD启动系统来调整分区。 如果使用LVM的话,扩容就比较方便,可以添加物理卷到卷组,然后扩展逻辑卷。之后用resize2fs或xfs_growfs来调整文件系统大小。不过用户需要确认他们的文件系统类型,比如ext4或者XFS,对应的调整命令不同。 如果物理磁盘没有剩余空间,可能需要添加新硬盘。将新硬盘分区格式化后,挂载到某个目录,比如/usr/new,然后迁移/usr下的部分数据到新位置,并用符号链接指向新位置。不过这种方法可能会影响系统稳定性,需要谨慎操作,特别是对于系统关键目录。 另外,用户可能需要考虑是否是某些应用程序或服务导致/usr空间被快速占用,比如容器镜像、缓存文件等。检查是否有异常的大文件或目录,或者定时任务导致日志暴增。 总结下来,处理步骤应该是:确认问题、清理文件、考虑扩容方法。在操作前备份数据,避免误操作导致系统无法启动。如果是生产环境,建议在维护窗口进行操作,或者使用冗余方案确保服务可用性。</think>好的,我将分步骤为您说明Linux本地文件系统/usr目录扩容的完整解决方案: --- ### 一、确认问题根源 1. **查看磁盘使用率** ```bash df -h /usr # 确认/usr所在分区及使用率 df -Th /usr # 查看文件系统类型(ext4/xfs等) ``` ![分区示例](https://example.com/df-output.png) 2. **分析具体占用** ```bash sudo du -sh /usr/* | sort -hr # 按大小排序子目录 sudo ncdu /usr # 交互式可视化分析工具 ``` --- ### 二、临时清理方案 #### 1. 清理可删除内容 ```bash # 清理旧内核(重要!至少保留一个可用内核) sudo apt autoremove --purge # Debian/Ubuntu sudo dnf remove --oldinstallers # RHEL/CentOS # 清理软件包缓存 sudo apt clean # Debian/Ubuntu sudo dnf clean all # RHEL/CentOS # 清理编程语言缓存 rm -rf ~/.cache/ # 用户级缓存 sudo rm -rf /usr/lib/python*/__pycache__ ``` #### 2. 日志管理 ```bash sudo journalctl --vacuum-size=200M # 限制systemd日志大小 sudo logrotate -f /etc/logrotate.conf # 强制执行日志轮替 ``` --- ### 三、永久扩容方案 #### 方案1:LVM动态扩容(推荐) ```bash sudo pvcreate /dev/sdb1 # 创建物理卷(假设新磁盘为sdb1) sudo vgextend vg_name /dev/sdb1 # 扩展卷组 sudo lvextend -L +50G /dev/vg_name/usr_lv # 扩展逻辑卷 sudo resize2fs /dev/vg_name/usr_lv # ext4文件系统扩容 # 或对xfs: sudo xfs_growfs /dev/vg_name/usr_lv ``` #### 方案2:物理分区扩容 1. 使用`gparted`图形工具调整分区 2. 或通过`fdisk`删除重建分区(需要卸载分区,建议使用Live CD) #### 方案3:绑定挂载 ```bash # 将新磁盘挂载到子目录 sudo mkfs.ext4 /dev/sdb1 sudo mkdir /mnt/new_usr sudo mount /dev/sdb1 /mnt/new_usr sudo rsync -av /usr/* /mnt/new_usr/ sudo umount /mnt/new_usr sudo mount /dev/sdb1 /usr # 永久生效需修改/etc/fstab: /dev/sdb1 /usr ext4 defaults 0 0 ``` --- ### 四、预防措施 1. **设置监控报警** ```bash # 添加cron定时检查 */30 * * * * df -h /usr | mail -s "磁盘报警" admin@example.com ``` 2. **优化软件管理** ```bash # 配置自动清理 sudo apt install apt-config-auto-removal # Debian自动清理 sudo dnf install dnf-automatic # RHEL自动更新 ``` --- ### 操作风险提示 1. **必须备份**:操作前执行`sudo tar czf /backup/usr_backup.tar.gz /usr` 2. **避免服务中断**:建议在维护窗口操作,使用`screen/tmux`保持会话 3. **文件系统验证**:扩容后执行`sudo fsck -f /dev/partition` --- 通过上述步骤,可系统化解决/usr目录空间不足问题。建议优先采用LVM方案,其灵活性最高。实际操作时请根据具体环境调整命令参数。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值