使用grubrescue恢复移动的.mod文件

我做了一件蠢事……我忘记了Ubuntu 10.04(Lucid Lynx)切换到GRUB 2,它在/boot/grub放了大量* .mod文件(内核模块)。 我以为它们是错误地放在那里的配乐文件,我移动了它们。 毋庸置疑,下一次重启是创伤性的。 我收到了一些我没有记忆的东西……一个’grub rescue>’提示。

在Fixing GRUB错误的帮助下:“错误:未知文件系统”然而,我能够恢复…

  • 我发现GRUB rescue没有’cd’,’cp’或任何其他文件系统命令,除了它自己的’ls’变种。
  • 所以首先我必须找到包含vmlinuz文件和其他启动映像文件的/boot目录的分区… (从失败尝试的内存中近似,以及为清晰起见的空行,由docsalvage添加2014-07-10)

     grub rescue> ls (hd0,4) (hd0,3) (hd0,2) (hd0,1) grub rescue> ls (hd0,4)/boot ... some kind of 'not found' message grub rescue> ls (hd0,3)/boot ... some kind of 'not found' message grub rescue> ls (hd0,2)/boot ... grub ... initrd.img-2.6.32-33-generic ... vmlinuz-2.6.32-33-generic 
  • 我在分区(hd0,2)上找到了一个包含vmlinuz文件vmlinuz-2.6.32-33-generic/boot目录。

  • 然后我从’grub rescue>’提示手动启动。 以下命令将…

    • 设置root以使用分区上的/boot目录(hd0,2)
    • 加载内核模块linux
    • 设置该模块使用内核映像vmlinuz-2.6.32-33-generic
    • 设置initrd(初始化RAM磁盘)以使用映像initrd.img-2.6.32-33-generic
    • 启动Linux。
  •  grub rescue> set root=(hd0,2)/boot grub rescue> insmod linux grub rescue> linux (hd0,2)/boot/vmlinuz-2.6.32-33-generic root=/dev/sda2 grub rescue> initrd (hd0,2)/boot/initrd.img-2.6.32-33-generic grub rescue> boot 
  • 这会引导并崩溃到BusyBox提示符,该提示符具有一些基本的文件系统命令。

  • 然后我将* .mod文件移回了/boot/grub目录……

     busybox> cd /boot busybox> mv mod/* grub busybox> reboot 
  • 重启是成功的,但这是很多工作。

有没有更简单的方法?

不,我认为您几乎找到了使用grub rescue从系统状态恢复的最简单方法; 它是一个非常简约的系统,提供足够的能力来启动系统。

顺便说一句,我相信你必须找到.mod文件并执行insmod linux或者linux命令会失败。

如上所述,唯一的另一种方法是启动Live CD并在chroot到“破损”系统后重新安装grub2。

以下是一些帮助解决引导错误的一般和基本说明,例如GRUB loading stage 1.5 error 15 (例如,在不同磁盘驱动器上安装Windows之后):

  1. 使用LiveDVD启动(例如,Ubuntu桌面磁盘)。

  2. 打开终端,使用以下命令重新编写grub配置:

    • sudo mount /dev/sdXY /mnt
    • sudo grub-install --root-directory=/mnt /dev/sdX

其中/dev/sdX /dev/sdXY是安装Ubuntu的磁盘, /dev/sdXY是安装Ubuntu的磁盘上的分区。 换句话说, /dev/sdXY包含/boot等。

使用fdisk -lvalidationUbuntu安装位置。

  1. 启动到Live CD

  2. 开放式终端(CTRL + ALT + T)

  3. 输入以下命令:

sudo fdisk -l

并找到你的Ubuntu分区(如果它是第一个分区,应该是/ dev / sda1)

 sudo mount /dev/sda1 /mnt sudo mount --bind /sys /mnt/sys sudo mount --bind /proc /mnt/proc sudo mount --bind /dev /mnt/dev sudo chroot /mnt 

现在重新安装Grub2

 sudo apt-get install --reinstall grub2 

我升级系统时遇到了同样的问题。

我建议采取以下简单步骤:

  1. 使用ubuntu live CD或live USB启动系统。
  2. 打开终端并运行命令sudo add-apt-repository ppa:yannubuntu / boot-repair && sudo apt-get update
  3. 然后通过运行命令sudo apt-get install -y boot-repair && boot-repair来安装启动修复

  4. 安装后启动引导修复。 例如,从菜单中,使用System->Administration->Boot-Repair (仅限Ubuntu 10.04)并按照说明操作。

    可能需要15-20分钟才能找出问题并进行修复。

如需更多帮助,请访问https://help.ubuntu.com/community/Boot-Repair链接

您可以启动Live CD,安装硬盘驱动器,以root身份打开nautilus并将这些文件复制到/ boot。