grub2的崩溃恢复方式
2010-12-30    刘世伟    原创
打印自: 安恒公司
地址: HTTP://pfr.anheng.com.cn/news/article.php?articleid=2233
grub2的崩溃恢复方式

debian6开始,启动程序grub升级到grub2,grub2功能强大, 但是需要熟悉新的恢复方法。

今天就被grub2摆了一道, 幸亏有android手机上网
搜索 google,总算把它搞定, 遂记下来成为此文,以供以后参考
大家在真正遇到 grub2崩溃,手忙脚乱之前, 最好先用kvm虚拟机演习一下,

在grub1的年代, 如果 /boot/grub这个目录不能访问, 基本上, 就需要用别的媒介的bootloader 来修复启动了,

在grub2下, 这种情况,是可以手动输入命令来启动linux的,

grub2在mbr下,向后占用了大约50个扇区, 实现了一个小的resume 命令行,

这个命令行, 可以列各分区的文件目录, 载入扩展命令模块,当grub2不能找到 /boot/grub/*的文件时, 就会进入这个
resume 命令行状态,

Booting from Hard Disk...
GRUB loading.
Welcome to GRUB!

error: no such device:47baf42a-ac4d-4e3b-ae9b-3cded30b729c
Entering rescue mode...
grub rescue>_

可以使用ls命令列出有哪些硬盘分区:
grub rescue>ls
(hd0) (hd0,msdos6) (hd0,msdos5) (hd0,msdos1)
grub rescue>ls (hd0,msdos1)/boot/
./ ../ grub/ vmlinuz-2.6.37 initrd.img-2.6.37

找到了我们需要的文件, 于是设置2个环境变量:

grub rescue>set root=(hd0,msdos1)

grub rescue>set prefix=/boot/grub

载入grub.cfg进入normal模式:

grub rescue>insmod normal

grub rescue >normal

如果载入grub.cfg 失败 可以试试直接载入vmlinz:

用insmod载入linux.mod,以便可以执行linux命令,(/boot/grub/很多的mod文件, 都可以载入, 载入后,就添加了相应的命令,有时间可以慢慢摸索一下)

grub rescue>insmod linux

现在可以执行 linux命令, 载入linux内核了, 后面的当然就是linux的命令行了。
grub rescue>linux /boot/vmlinuz-2.6.37 root=/dev/sda1
再载入initrd.img文件,
grub rescue>initrd /boot/initrd.img
一切就绪, 让我们boot 进入linux

grub rescue>boot

进入linux后, 修复一下grub2:

root:#>grub-install /dev/sda




下面列出来所有的mod命令文件,欣赏一下:
915resolution.mod  cmp.mod            functional_test.mod  gfxmenu.mod    lsmmap.mod        part_bsd.mod     reiserfs.mod         ufs2.mod
acpi.mod       configfile.mod        gcry_arcfour.mod     gfxterm.mod    ls.mod        part_gpt.mod     relocator.mod         uhci.mod
affs.mod       cpio.mod            gcry_blowfish.mod    gptsync.mod    lspci.mod        part_msdos.mod     scsi.mod         usb_keyboard.mod
afs_be.mod       cpuid.mod            gcry_camellia.mod    gzio.mod        lvm.mod        part_sun.mod     search_fs_file.mod  usb.mod
afs.mod           crc.mod            gcry_cast5.mod         halt.mod        mdraid.mod        part_sunpc.mod     search_fs_uuid.mod  usbms.mod
aout.mod       crypto.mod            gcry_crc.mod         hashsum.mod    memdisk.mod     parttool.mod     search_label.mod    usbtest.mod
ata.mod           cs5536.mod            gcry_des.mod         hdparm.mod     memrw.mod        password.mod     search.mod         vbeinfo.mod
ata_pthru.mod       datehook.mod            gcry_md4.mod         hello.mod        minicmd.mod     password_pbkdf2.mod  serial.mod         vbe.mod
at_keyboard.mod    date.mod            gcry_md5.mod         help.mod        minix.mod        pbkdf2.mod         setjmp.mod         vbetest.mod
befs_be.mod       datetime.mod            gcry_rfc2268.mod     hexdump.mod    mmap.mod        pci.mod         setpci.mod         vga.mod
befs.mod       dm_nv.mod            gcry_rijndael.mod    hfs.mod        msdospart.mod   play.mod         sfs.mod         vga_text.mod
biosdisk.mod       drivemap.mod            gcry_rmd160.mod      hfsplus.mod    multiboot2.mod  png.mod         sleep.mod         video_bochs.mod
bitmap.mod       echo.mod            gcry_seed.mod         iorw.mod        multiboot.mod   probe.mod         tar.mod         video_cirrus.mod
bitmap_scale.mod   efiemu.mod            gcry_serpent.mod     iso9660.mod    nilfs2.mod        pxecmd.mod         terminal.mod         video_fb.mod
blocklist.mod       elf.mod            gcry_sha1.mod         jfs.mod        normal.mod        pxe.mod         terminfo.mod         video.mod
boot.mod       example_functional_test.mod    gcry_sha256.mod      jpeg.mod        ntfscomp.mod    raid5rec.mod     test.mod         videotest.mod
bsd.mod           ext2.mod            gcry_sha512.mod      keystatus.mod  ntfs.mod        raid6rec.mod     tga.mod         xfs.mod
bufio.mod       extcmd.mod            gcry_tiger.mod         linux16.mod    ohci.mod        raid.mod         trig.mod         xnu.mod
cat.mod           fat.mod            gcry_twofish.mod     linux.mod        part_acorn.mod  read.mod         true.mod         xnu_uuid.mod
chain.mod       font.mod            gcry_whirlpool.mod   loadenv.mod    part_amiga.mod  reboot.mod         udf.mod         zfsinfo.mod
cmostest.mod       fshelp.mod            gettext.mod         loopback.mod   part_apple.mod  regexp.mod         ufs1.mod         zfs.mod

责任编辑: admin