温馨提示×

Ubuntu分区后系统无法启动怎么办

小樊
41
2025-11-16 14:39:05
栏目: 智能运维

Ubuntu分区后无法启动的修复指南

一 快速判断与定位

  • 出现 GRUB rescue>:多为分区调整后 GRUB 找不到配置或模块,需先定位系统分区并临时引导,再重装/更新 GRUB。
  • 直接进 BIOS/UEFI 找不到启动项:检查 启动顺序 是否把装有系统的磁盘(如 /dev/sda)置顶,并确认是 UEFI 还是 Legacy 模式与安装时一致。
  • 能看到 GRUB 菜单 但启动失败(如 “file not found”):常因 /boot 分区变化或内核/initramfs 不匹配,需在 GRUB 命令行手动指定内核启动,再修复配置。
  • 黑屏或提示找不到磁盘:可能是 分区表/文件系统损坏,需先检查磁盘健康与分区结构。

二 现场应急 进入系统再修复

  • 使用 Ubuntu 安装U盘/LiveCD 启动,选择 Try Ubuntu
  • 识别系统分区:执行 sudo fdisk -l,确认 根分区(如 /dev/sdaX) 与(如有)/boot 分区(如 /dev/sdaY)
  • 挂载并进入系统环境:
    sudo mount /dev/sdaX /mnt
    sudo mount --bind /dev  /mnt/dev
    sudo mount --bind /proc /mnt/proc
    sudo mount --bind /sys  /mnt/sys
    sudo chroot /mnt
    
  • 重新安装与更新引导:
    grub-install /dev/sda
    update-grub
    
  • 如单独挂载了 /boot,请先 sudo mount /dev/sdaY /mnt/boot 再执行上面两条命令。完成后重启。

三 卡在 GRUB rescue> 的临时引导与修复

  • 列出设备并定位系统分区:
    grub rescue> ls
    grub rescue> ls (hd0,msdos1)/
    grub rescue> ls (hd0,msdos2)/
    
    找到能显示 /boot/grub/ 下常见目录 的分区(如 (hd0,msdos7))。
  • 设置启动分区与模块路径并进入正常模式:
    grub rescue> set root=(hd0,msdos7)
    grub rescue> set prefix=(hd0,msdos7)/boot/grub
    grub rescue> insmod normal
    grub rescue> normal
    
  • 进入系统后执行一次完整修复:
    sudo update-grub
    sudo grub-install /dev/sda
    
  • 若仍无法进入 normal,可在 GRUB 命令行临时手动引导(在 grub> 提示符下):
    set root=(hd0,msdos7)
    linux /vmlinuz-<Tab> root=/dev/sdaX ro quiet splash
    initrd /initrd.img-<Tab>
    boot
    
    注:<Tab> 自动补全内核版本;root=/dev/sdaX 请替换为你的实际根分区。

四 常见原因与预防要点

  • 分区调整后 UUID 变更/boot 分区被移动/合并,导致 GRUB 配置失效;修复后务必执行 update-grubgrub-install
  • 启动模式不一致(UEFI/Legacy)或 启动顺序错误;在固件设置中校正并优先选择系统盘。
  • 文件系统错误;必要时在 Live 环境下对分区执行 fsck 检查修复。
  • 重要数据请先备份;不熟悉分区操作建议用 GParted LiveTestDisk 先做只读分析与镜像再动手。

0