Centos系统误删/boot恢复方法

本次文档操作,以VMware虚拟机做实验,模拟删除linux-centos系统删除boot文件后如何恢复的过程。

准备工具:

作Linux live 盘,使用软碟通,或者Rufus将u盘制作成启动盘。

  1. 制作启动盘的系统,应和修复的系统版本一致,或者内核一致。因需要复制内核文件。(Debian,ubuntu,等系统和此文件修复命令些许不一致,修复原理一致。)

  2. VMware环境,本次选用VMware进行模拟,加载系统时进入u盘启动。

修复思路:

1、使用linux Live USB进入临时系统,进入救援模式。

2、挂载原系统分区。

一般进入救援模式后,故障系统会自动挂在/mnt文件下,没有,则需要重新挂载故障系统。启动盘为救援系统,故障系统可以理解为一个硬盘,将故障系统挂载至救援系统上操作。

3、重新安装内核和引导加载器。

误删boot,仅仅是boot内的文件缺失,如果是相同的系统和内核引导恢复,直接复制boot下的内核文件即可。

4、修复 GRUB 配置。

模拟环境:

boot内有三种文件,

grub2(GRand Unified Bootloader version 2)是 Linux 系统中最常用的引导加载程序。它负责在计算机启动时加载操作系统内核(如 vmlinuz 文件)和初始内存盘 (initramfs),并将控制权交给内核,从而启动操作系统。

Vmlinuz它是 Linux 操作系统的核心内核的压缩可执行文件。误删后,系统无法启动。

initramfs为(Initial RAM File System)种是一临时的根文件系统,在Linux系统启动过程中,用于在系统初始化期间挂载根文件系统之前进行各种初始化操作。initramfs可以包含必需的驱动程序、二进制文件和脚本等,以便在系统引导期间使用。

在Linux系统引导时,initramfs模块会被加载到内存中,其中包含了必要的文件和驱动程序,用于在启动阶段执行各种任务,例如检查文件系统、加载模块、识别和挂载根文件系统等。此外,initramfs模块还可以用于进行故障排除和修复系统错误,例如恢复损坏的文件系统等。

如下图1:在系统内创建guzhang.txt用来验证。

图1

系统内核,如下图2:

图2

:rm -rf  */boot   #此命令删除boot文件,慎用。

误删除boot ,系统是可以正常使用的,这时候将boot内文件恢复,设备也可以正常使用。为防止出现此故障,尽量将boot内的文件进行备份。

只有重启后,才开始出现故障,如下图3删除boot操作,图4重启系统进入grub模式:

图3

图4

恢复boot操作

1、将u盘启动盘与故障系统连接,只有虚拟机系统启动后,才会显示此页面,未启动虚拟机u盘将与电脑连接。如图5:

                                                  图5

2、将故障系统进行扩盘,选择scsic(s), 使用物理磁盘(需要管理员权限)完成即可

2、再次启动系统,选择打开电源时进入BIOS固件如图6,不确定u盘是哪个选项,可以未插启动盘时,先查看一下,如图7将启动盘调至最先启动。

   

                                          图6          

           

                                            图7

4、启动后如下图8图9进入救援模式,图10为译文。

 

                                             图8            

       

                                            图9             

 

                                          图10

5、如图11,输入数字1,进入救援模式,如图13已经进入救援模式。

  

                                            图11

                    

                                         图12

                                         图13

6、检查故障系统是否挂载至救援模式系统内,

:ls /mnt   #检查mnt文件夹下的每一个文件。

如图14:可以发现guzhang.txt验证文件也在,boot内没有任何内容。

                                                          图14

注意:若未发现救援模式内mnt文件没有挂在故障系统。若如上图已挂载,不需要下面操作。

LVM系统特殊处理:

:vgscan

:vgchange -ay  # 激活卷组

:lvs             # 查看逻辑卷

操作如下:

:mount  /dev/mapper/centos-root   /mnt/root

将故障系统挂在至救援模式系统内需要先检查各个分区。

:fdisk -l | less #分段查看各个分区  | less表示分段查看。

首先需要知道故障系统硬盘多大,本次故障系统20G,根据系统换算显示18.2G,如图15:

                                                            图15

:mkdir /mnt/root

:mount /dev/mapper/centos-root  /mnt/root #将故障系统挂载至/mnt/root文件内。

7、挂载关键目录,注意,遇到权限不足时,在前面添加sudo提权,具体操作如图16:

:mount --bind /dev  /mnt/sysimage/dev

:mount --bind /proc  /mnt/sysimage/proc

:mount --bind /sys  /mnt/sysimage/sys

:mount --bind /run  /mnt/sysimage/run

                                                    图16

8、将救援系统内的/boot/vmlinuz-3.10.0-957.e17.x86_64 文件拷贝/mnt/sysimage/boot 文件内,因救援系统和故障系统是一样的镜像和内核,vmlinuz一样的。如图17:

:cp /boot/vmlinuz-3.10.0-957.e17.x86_64   /mnt/sysimage/boot  #拷贝文件

                                                      图17

9、需要进入chroot环境内操作:

:chroot /mnt/sysimage        #进入chroot环境

:dracut -f --regenerate-all  # 强制重建initramfs,加载时间较长1-3分钟左右。注意必须复制内核文件后在进行重建。

:grub2-install /dev/sda      # 安装引导加载程序

:grub2-mkconfig -o /boot/grub2/grub.cfg  # 生成配置

具体操作如图18:

                                                      图18

:exit #退出chroot模式,

:umount  /mnt/sysimage       #将挂载文件卸载。不卸载也不是太影响。

: exit  #重启设备

10、可以拔掉启动盘,重新启动,也可以,或者进入bios中,将启动项更改启动。

启动后故障系统如下图19已经能够进入系统,第一进入可能因为生成启动文件进不去系统,重启第二次可以正常进入:

                                                         图19

故障系统已正常进入系统,如图20 :

                                                      图20

以上为恢复/boot文件误删过程。

如有需要尽量将boot文件进行备份。备份后,直接进入救援模式,将备分boot文件复制到boot即可。

参考:如果故障系统yum或者dnf,源正常,可以直接安装或者更新kernel文件刷新内核文件,不需要靠拷贝vmlinuz文件,直接更新grub文件。

操作

Debian/Ubuntu 命令

CentOS/RHEL 命令

挂载原系统根分区

mount /dev/sda1 /mnt/root

同左(LVM需先vgchange -ay)

重建 initramfs

update-initramfs -u -k all

dracut -f --regenerate-all   #可操作

重新安装内核

apt install --reinstall linux-image-*

rpm -ivh --force kernel-*.rpm

修复 GRUB

grub-install /dev/sda && update-grub

grub2-install /dev/sda && grub2-mkconfig

<think>好的,我需要帮助用户解决如何删除CentOS 7中的/boot目录或相关内容的问题。首先,我得确认用户的需求。删除/boot目录可能会影响系统的启动,所以必须非常谨慎。接下来,我需要考虑用户可能的操作步骤,以及相关的注意事项。 首先,我应该解释/boot目录的作用,里面包含内核、initramfs和Grub配置文件,这些都是系统启动所必需的。用户可能不了解这些,所以需要明确说明删除的后果,比如系统无法启动。 然后,用户可能确实需要清理旧的kernel文件来释放空间。这时候,正确的做法不是直接删除整个/boot目录,而是使用package manager来移除旧的内核包。例如,使用yum或dnf命令来列出已安装的内核,然后删除不需要的版本。同时,需要保留至少两个内核版本,以防万一当前内核有问题时可以回退。 另外,用户可能遇到/boot分区空间不足的问题,这时候需要指导如何安全地清理。可能需要检查当前使用的内核版本,然后删除旧的内核包,并更新Grub配置。还要提醒用户不要手动删除文件,而是通过包管理器,避免依赖问题。 注意事项方面,需要强调不要删除当前正在使用的内核,否则重启后系统无法启动。另外,使用rm命令时要特别小心,尤其是带有-rf参数时,避免误删其他重要文件。在操作前备份重要数据也是必要的。 可能还需要提到,如果用户误删了/boot目录,如何恢复。可能需要使用Live CD进入救援模式,重新安装内核和Grub。这部分比较复杂,用户可能需要进一步指导,但至少应该提到有这种恢复方法,并建议谨慎操作。 最后,生成相关问题,比如如何清理旧内核、如何恢复误删的/boot目录、如何调整分区大小等,帮助用户进一步解决问题。同时,确保回答中引用了相关的资料,比如引用[1]关于CentOS版本的信息,虽然用户的问题更多涉及系统维护,但适当引用已有的资料可以增加可信度。</think>### 如何安全处理CentOS 7中的/boot目录 #### 1. **/boot目录的作用与风险** - **作用**:`/boot`目录存储了Linux内核(`vmlinuz-*`)、初始化内存盘(`initramfs-*`)以及引导加载程序(如Grub)的配置文件[^1]。这些文件是系统启动的核心组件。 - **风险**:直接删除`/boot`目录会导致系统无法启动,必须通过救援模式修复。 #### 2. **常见需求与正确操作** **场景1:清理旧内核文件** - **步骤**: 1. 查看已安装内核: ```bash rpm -q kernel ``` 输出示例: ``` kernel-3.10.0-1160.el7.x86_64 kernel-3.10.0-1160.99.1.el7.x86_64 ``` 2. 删除旧内核(保留最新2个版本): ```bash yum remove kernel-3.10.0-1160.el7.x86_64 ``` 3. 更新Grub配置: ```bash grub2-mkconfig -o /boot/grub2/grub.cfg ``` - **注意事项**: - 不要删除当前运行的内核(通过`uname -r`查看)。 - 使用`yum`或`dnf`而非`rm`命令,避免依赖问题[^1]。 **场景2:修复/boot分区空间不足** - **步骤**: 1. 检查磁盘空间: ```bash df -h /boot ``` 2. 若空间不足,通过`yum autoremove`清理旧内核。 3. 若需手动调整分区,建议使用`gparted`工具扩展分区[^4]。 #### 3. **绝对禁止的操作** - **禁止直接删除/boot目录**: ```bash rm -rf /boot # 将导致系统崩溃 ``` - **禁止删除以下关键文件**: - `vmlinuz-*`(内核) - `initramfs-*`(初始化内存镜像) - `grub2/`目录(引导配置) #### 4. **误删后的紧急恢复** - **方法**:使用CentOS安装介质进入**救援模式**: 1. 挂载根分区: ```bash chroot /mnt/sysimage ``` 2. 重新安装内核: ```bash yum reinstall kernel ``` 3. 重建Grub: ```bash grub2-install /dev/sda ``` #### 5. **最佳实践** - 定期清理旧内核:通过`yum-utils`工具: ```bash package-cleanup --oldkernels --count=2 ``` - 备份配置文件: ```bash cp /boot/grub2/grub.cfg /boot/grub2/grub.c
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值