|
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
找到了我们需要的文件, 于是设置1个环境变量: grub rescue>set root=(hd0,msdos1) 用insmod载入linux.mod,以便可以执行linux命令,(/boot/grub/很多的mod文件, 都可以载入, 载入后,就添加了相应的命令,有时间可以慢慢摸索一下) grub rescue>insmod /boot/grub/linux.mod 现在可以执行 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:#>dpkg-reconfig grub-pc
下面列出来所有的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
|