Debian

Debian - 損壞的 GRUB

  • May 29, 2011

我按照 debian.org 的官方手冊在 Debian 上安裝了 Xen。之後我執行了 grub-update 並在一段時間後刪除了 Xen,包括 xen 核心。我又執行了一次 grub-update,它說

discarding improperly nested partition...

重新啟動後,系統不想啟動:

載入 linux 2.6.26-2-686。錯誤:無法讀取 linux 標頭。正在載入初始 ramdisk… 錯誤:您需要先載入核心。

initrd 和核心存在於 /boot 中。文件系統是 /dev/sda1 (ext2) 中的 /boot 和 /dev/sda2 (lvm2) 中的 /。

我的 grub.cfg:

### BEGIN /etc/grub.d/00_header ###
if [ -s $prefix/grubenv ]; then
 load_env
fi
set default="0"
if [ "${prev_saved_entry}" ]; then
 set saved_entry="${prev_saved_entry}"
 save_env saved_entry
 set prev_saved_entry=
 save_env prev_saved_entry
 set boot_once=true
fi

function savedefault {
 if [ -z "${boot_once}" ]; then
   saved_entry="${chosen}"
   save_env saved_entry
 fi
}

function load_video {
 insmod vbe
 insmod vga
 insmod video_bochs
 insmod video_cirrus
}

insmod lvm
insmod part_msdos
insmod ext2
set root='(stat.ax-host.ru-root)'
search --no-floppy --fs-uuid --set bf95a21c-f7b6-40dd-92c9-dbebff28250e
if loadfont /usr/share/grub/unicode.pf2 ; then
 set gfxmode=640x480
 load_video
 insmod gfxterm
fi
terminal_output gfxterm
insmod part_msdos
insmod ext2
set root='(hd0,msdos1)'
search --no-floppy --fs-uuid --set 8e5ebc99-a0c3-4f82-b7fe-4878273d709c
set locale_dir=($root)/grub/locale
set lang=en
insmod gettext
set timeout=5
### END /etc/grub.d/00_header ###

### BEGIN /etc/grub.d/05_debian_theme ###
set menu_color_normal=cyan/blue
set menu_color_highlight=white/blue
### END /etc/grub.d/05_debian_theme ###

### BEGIN /etc/grub.d/10_linux ###
menuentry 'Debian GNU/Linux, with Linux 2.6.26-2-686' --class debian --class gnu-linux --class gnu --class os {
   insmod part_msdos
   insmod ext2
   set root='(hd0,msdos1)'
   search --no-floppy --fs-uuid --set 8e5ebc99-a0c3-4f82-b7fe-4878273d709c
   echo    'Loading Linux 2.6.26-2-686 ...'
   linux   /vmlinuz-2.6.26-2-686 root=/dev/mapper/stat.ax--host.ru-root ro  quiet splash
   echo    'Loading initial ramdisk ...'
   initrd  /initrd.img-2.6.26-2-686
}
menuentry 'Debian GNU/Linux, with Linux 2.6.26-2-686 (recovery mode)' --class debian --class gnu-linux --class gnu --class os {
   insmod part_msdos
   insmod ext2
   set root='(hd0,msdos1)'
   search --no-floppy --fs-uuid --set 8e5ebc99-a0c3-4f82-b7fe-4878273d709c
   echo    'Loading Linux 2.6.26-2-686 ...'
   linux   /vmlinuz-2.6.26-2-686 root=/dev/mapper/stat.ax--host.ru-root ro single 
   echo    'Loading initial ramdisk ...'
   initrd  /initrd.img-2.6.26-2-686
}
### END /etc/grub.d/10_linux ###

### BEGIN /etc/grub.d/30_os-prober ###
### END /etc/grub.d/30_os-prober ###

### BEGIN /etc/grub.d/40_custom ###
# This file provides an easy way to add custom menu entries.  Simply type the
# menu entries you want to add after this comment.  Be careful not to change
# the 'exec tail' line above.
### END /etc/grub.d/40_custom ###

### BEGIN /etc/grub.d/41_custom ###
if [ -f  $prefix/custom.cfg ]; then
 source $prefix/custom.cfg;
fi
### END /etc/grub.d/41_custom ###

/etc/grub.d/ 00_header 05_debian_theme 10_linux 30_os-prober 40_custom 41_custom

當您安裝 Xen 時,它會更改您的引導配置以啟動 Xen 管理程序而不是 Linux 核心。你能引導到一張 live CD 並顯示 /boot 和 /boot/grub/grub.cfg(或 menu.lst,取決於你有哪個 grub)的內容嗎?

/etc/grub.d/ 的內容是什麼?

引用自:https://serverfault.com/questions/274978