Linux系统因GRUB损坏无法启动时,需用Live USB进入救援模式,依次挂载分区、chroot后重装GRUB(BIOS用grub-install /dev/sda,UEFI用grub-install --target=x86_64-efi)、更新配置、重建/boot内核文件、修复文件系统及校验fstab。

如果Linux系统因GRUB引导损坏导致无法正常启动,屏幕可能停留在黑屏、grub rescue提示符或“error: unknown filesystem”等错误信息,则说明GRUB引导加载程序已丢失、配置错误或底层文件系统异常。以下是修复GRUB启动引导并重建挂载环境的具体操作方法:
一、使用Live CD/USB进入救援模式
需借助外部可启动的Linux环境(如Ubuntu或CentOS Live镜像)加载临时系统,从而访问原硬盘分区并执行修复操作。该方式绕过损坏的GRUB,提供完整的命令行工具支持。
1、将制作好的Linux Live USB插入目标主机,重启后通过BIOS/UEFI设置从USB设备启动。
2、选择“Try Ubuntu without installing”或类似选项,进入桌面或终端环境。
3、打开终端,执行sudo fdisk -l识别原Linux系统所在磁盘及分区,例如确认/dev/sda2为根分区、/dev/sda1为/boot分区(若独立存在)。
4、依次挂载分区:sudo mount /dev/sda2 /mnt;若存在独立/boot分区,再执行sudo mount /dev/sda1 /mnt/boot;若使用EFI系统,还需挂载EFI系统分区:sudo mount /dev/sdaX /mnt/boot/efi(X为实际EFI分区编号)。
二、重装GRUB到主引导记录(MBR)或EFI分区
根据系统启动模式(传统BIOS或UEFI)选择对应安装路径,确保GRUB核心映像和配置文件被正确写入引导介质,恢复对内核与initramfs的加载能力。
1、执行chroot切换至原系统环境:sudo mount --bind /dev /mnt/dev && sudo mount --bind /proc /mnt/proc && sudo mount --bind /sys /mnt/sys && sudo chroot /mnt。
2、对于BIOS+MBR系统:运行grub-install /dev/sda(注意指定磁盘设备而非分区,如/dev/sda而非/dev/sda1)。
3、对于UEFI系统:先确认/boot/efi已挂载,再执行grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=ubuntu(bootloader-id可按发行版调整,如centos、fedora)。
4、更新GRUB配置文件:update-grub(Debian/Ubuntu系)或grub2-mkconfig -o /boot/grub2/grub.cfg(RHEL/CentOS/Fedora系)。
三、手动重建/boot目录内容
当/boot分区损坏、误删或文件系统不一致时,内核vmlinuz与initrd镜像缺失将导致GRUB虽能启动但无法加载系统。此步骤通过复制内核文件与生成初始内存盘完成关键组件补全。
1、在chroot环境中执行ls /lib/modules查看已安装内核版本,例如输出包含5.15.0-91-generic。
2、确认/boot下是否存在对应内核文件:ls /boot/vmlinuz-*;若缺失,执行apt install --reinstall linux-image-$(uname -r)(Ubuntu)或yum reinstall kernel-$(uname -r)(CentOS 7)。
3、重新生成initramfs:update-initramfs -u -k all(Debian/Ubuntu)或dracut -f(RHEL/CentOS/Fedora)。
4、验证/boot目录完整性:必须同时存在vmlinuz-xxx、initrd.img-xxx、System.map-xxx及grub/目录。
四、修复ext4/xfs文件系统错误
若系统在启动早期报错“mount: wrong fs type”或dmesg显示I/O错误,表明根文件系统存在未修复的结构损坏,需在只读挂载后执行强制检查。
1、退出chroot环境,返回Live系统终端。
2、卸载所有已挂载的目标分区:sudo umount -R /mnt。
3、对根分区执行文件系统检查:sudo e2fsck -f -y /dev/sda2(ext4/ext3);若为xfs格式,使用sudo xfs_repair /dev/sda2(注意xfs_repair要求分区未挂载且无活跃进程访问)。
4、检查完成后重新挂载并chroot,再次执行GRUB重装与配置更新步骤。
五、重建fstab并校验挂载点
/etc/fstab文件错误会导致系统启动时挂载失败并中断初始化流程,常见于UUID变更、分区结构调整或手动编辑失误。需比对当前分区标识与配置项是否匹配。
1、在chroot环境中运行blkid,记录各分区的UUID值,例如/dev/sda2: UUID="a1b2c3d4-..." TYPE="ext4"。
2、打开/etc/fstab:nano /etc/fstab,逐行核对每项的UUID、挂载点、文件系统类型及参数。
3、若发现UUID不匹配,用blkid输出的新值替换fstab中旧UUID;若/boot为独立分区,确保其挂载行未被注释且类型正确(如ext4或vfat)。
4、执行mount -a测试fstab语法与挂载可行性:无任何输出表示校验通过,若报错则需根据提示修正对应行。








