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


33

我做了一件愚蠢的事……我忘记了Ubuntu 10.04(Lucid Lynx)切换到GRUB  2,这将大量的* .mod文件(内核模块)放入/boot/grub。我以为它们是错误放置在其中的配乐文件,所以我将它们移动了。不用说,下次重新启动是很痛苦的。呈现给我的是我从未见过的东西……“ grub rescue>”提示。

借助Fixing GRUB错误:“错误:未知文件系统”,我得以恢复...

  • 我发现GRUB救援除了其自己的'ls'变体之外,没有'cd','cp'或任何其他文件系统命令。
  • 因此,首先我必须找到/boot包含vmlinuz文件和其他引导映像文件的目录的分区... (失败尝试的内存近似值,为清晰起见,还有空白行,由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 
    
  • 我在partition上找到了一个/boot包含vmlinuz文件的目录。vmlinuz-2.6.32-33-generic(hd0,2)

  • 然后,我从“ grub rescue>”提示符手动启动。以下命令将...

    • 将设置root为使用/bootpartition上的目录(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
    
  • 重新启动成功,但这需要大量工作。

有没有更简单的方法?


1
我认为引导修复会更容易。请查看有关引导修复的多个答案之一,以获取有关使用它的详细信息。
沙洛爵士(SirCharlo)

1
“最简单”的方法并不总是最好的方法。我强烈不同意使用Live CD提出的所有评论。在没有CD / DVD阅读器的系统上,从Live CD引导非常困难。
西蒙(Simón)2013年

我无法使用/ boot目录定位该分区。ls命令中的所有分区都会给出未知的文件系统输出。
Rafed Nole 2014年

1
您的帖子对手动引导内核和initrd很有帮助,但是我的系统找不到dev,sys或proc等,etc / fstab或sbin / init。这使我到另一个岗位,这表明加载内核并设置根作为在手动启动路线详细的grub文件如: grub> linux (hd0,X)/boot/vmlinuz-a.b.c-d-generic root=/dev/sdaX,其中X与分区/boota.b.c-d是内核版本。然后我的系统启动正常!谢谢!
Mark Mikofski 2014年

1
除了[修复GRUB错误:“错误:文件系统未知” [重复]](askubuntu.com/q/142300/36961),另一个涵盖这些步骤的重要链接是如何在Linux上救援非引导GRUB 2grub 2手册也非常有帮助
Mark Mikofski 2014年

Answers:


5

不。我认为您几乎已经找到了使用grub抢救从系统状态中恢复的最简单方法;这是非常有用的。它是一个非常简约的系统,仅具有足够的功能来引导系统。

顺便说一句,我相信您必须找到.mod文件并执行了,insmod linux否则linux命令将失败。

如上所述,唯一的其他方法是引导Live CD并在chroot到“损坏的”系统后重新安装grub2。


你是绝对正确的!我忘了我已经做到了。添加到我上面的原始帖子中,以供将来参考。在这些情况下,我需要更加纪律严明,记笔记。请告知是否需要进一步编辑。
DocSalvager,2012年

grub docs中 加载内核时,我还必须指定root,例如 grub> linux (hd0,2)/boot/vmlinuz-2.6.32-33-generic root=/dev/sda2
Mark Mikofski 2014年

另请注意,如果找到了.mod文件,则可以将“ grub rescue”恢复到功能齐全的GRUB: # Inspect the current prefix (and other preset variables): set # Find out which devices are available: ls # Set to the correct value, which might be something like this: set prefix=(hd0,1)/grub set root=(hd0,1) insmod normal normal 来源:gnu.org/software/grub/manual/html_node/…– MegaBrutal
2015年

7

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

  1. 使用LiveDVD(例如Ubuntu Desktop磁盘)启动。

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

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

哪里/dev/sdX是Ubuntu安装所在的磁盘,并且/dev/sdXY是Ubuntu安装在硬盘上的分区。换句话说,/dev/sdXY包含/boot等等。

使用fdisk -l验证Ubuntu的安装位置。


不工作。也许,如果说的方向更具体,那就行得通。
蒂姆·斯图尔特

当我在没有CD驱动器的计算机上遇到grub2问题时,可以使用Gparted Live USB记忆棒驱动器进行恢复。我启动了Gparted live。然后,我启动一个终端,并输入fdisk -l(这是字母ell,而不是数字1)。从该输出中,我可以识别出具有根分区的分区,并且从那里我按照上面的出色说明进行操作,很快我又很高兴再次进行双重引导。
2014年

4
  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

2
这是比sudo mount /dev/sda1 /mnt和更好的方法sudo grub-install --root-directory=/mnt/ /dev/sda && sudo update-grub吗?

4

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

我建议以下简单步骤:

  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


0

您可以引导实时CD,安装硬盘驱动器,以root用户身份打开nautilus并将这些文件复制到/ boot。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.