我在双启动 Windows 7 和 Ubuntu 12.04 LTS 时遇到了问题。我解决了 Windows 问题,但无法从硬盘启动 Ubuntu。当我从 Super GRUB2 运行并使用恢复的 GRUB cfg 文件选项时,启动不起作用,只有当我选择第一个选项时才起作用:找到任何操作系统。
我的 Ubuntu 安装 grub 文件在双启动(两个操作系统)时有什么问题吗?在运行“grub-install /dev/hda”之前,我想听听您的专家意见
========= 这是我的分区的图像(我只有 1 个硬盘)
tomas@tomas-HP-Compaq-CQ5000:~$ sudo fdisk -l
[sudo] password for tomas:
Disco /dev/sda: 640.1 GB, 640135028736 bytes
255 cabezas, 63 sectores/pista, 77825 cilindros, 1250263728 sectores en total
Unidades = sectores de 1 * 512 = 512 bytes
Tamaño de sector (lógico / físico): 512 bytes / 512 bytes
Tamaño E/S (mínimo/óptimo): 512 bytes / 512 bytes
Identificador del disco: 0x7fff8ad0
Dispositivo Inicio Comienzo Fin Bloques Id Sistema
/dev/sda1 * 2048 206847 102400 7 HPFS/NTFS/exFAT
/dev/sda2 206848 568414207 284103680 7 HPFS/NTFS/exFAT
/dev/sda3 568416254 1227589631 329586689 f W95 Ext'd (LBA)
/dev/sda4 1227589632 1250260991 11335680 7 HPFS/NTFS/exFAT
/dev/sda5 568416256 1164101631 297842688 7 HPFS/NTFS/exFAT
/dev/sda6 1164103680 1223911423 29903872 83 Linux
/dev/sda7 1223921664 1227589631 1833984 82 Linux swap / Solaris
========
这是 grub.cfg:
#
# DO NOT EDIT THIS FILE
#
# It is automatically generated by grub-mkconfig using templates
# from /etc/grub.d and settings from /etc/default/grub
#
### BEGIN /etc/grub.d/00_header ###
if [ -s $prefix/grubenv ]; then
set have_grubenv=true
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 recordfail {
set recordfail=1
if [ -n "${have_grubenv}" ]; then if [ -z "${boot_once}" ]; then save_env recordfail; fi; fi
}
function load_video {
insmod vbe
insmod vga
insmod video_bochs
insmod video_cirrus
}
insmod part_msdos
insmod ext2
set root='(hd0,msdos6)'
search --no-floppy --fs-uuid --set=root 21745c1b-4a7d-4a6b-afd3-3a956f32f007
if loadfont /usr/share/grub/unicode.pf2 ; then
set gfxmode=auto
load_video
insmod gfxterm
insmod part_msdos
insmod ext2
set root='(hd0,msdos6)'
search --no-floppy --fs-uuid --set=root 21745c1b-4a7d-4a6b-afd3-3a956f32f007
set locale_dir=($root)/boot/grub/locale
set lang=es_CO
insmod gettext
fi
terminal_output gfxterm
if [ "${recordfail}" = 1 ] ; then
set timeout=-1
else
set timeout=10
fi
### END /etc/grub.d/00_header ###
### BEGIN /etc/grub.d/05_debian_theme ###
set menu_color_normal=white/black
set menu_color_highlight=black/light-gray
if background_color 44,0,30; then
clear
fi
### END /etc/grub.d/05_debian_theme ###
### BEGIN /etc/grub.d/10_linux ###
function gfxmode {
set gfxpayload="${1}"
if [ "${1}" = "keep" ]; then
set vt_handoff=vt.handoff=7
else
set vt_handoff=
fi
}
if [ "${recordfail}" != 1 ]; then
if [ -e ${prefix}/gfxblacklist.txt ]; then
if hwmatch ${prefix}/gfxblacklist.txt 3; then
if [ ${match} = 0 ]; then
set linux_gfx_mode=keep
else
set linux_gfx_mode=text
fi
else
set linux_gfx_mode=text
fi
else
set linux_gfx_mode=keep
fi
else
set linux_gfx_mode=text
fi
export linux_gfx_mode
if [ "${linux_gfx_mode}" != "text" ]; then load_video; fi
menuentry 'Ubuntu, con Linux 3.11.0-17-generic' --class ubuntu --class gnu-linux --class gnu --class os {
recordfail
gfxmode $linux_gfx_mode
insmod gzio
insmod part_msdos
insmod ext2
set root='(hd0,msdos6)'
search --no-floppy --fs-uuid --set=root 21745c1b-4a7d-4a6b-afd3-3a956f32f007
linux /boot/vmlinuz-3.11.0-17-generic root=UUID=21745c1b-4a7d-4a6b-afd3-3a956f32f007 ro quiet splash $vt_handoff
initrd /boot/initrd.img-3.11.0-17-generic
}
menuentry 'Ubuntu, with Linux 3.11.0-17-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os {
recordfail
insmod gzio
insmod part_msdos
insmod ext2
set root='(hd0,msdos6)'
search --no-floppy --fs-uuid --set=root 21745c1b-4a7d-4a6b-afd3-3a956f32f007
echo 'Cargando Linux 3.11.0-17-generic ...'
linux /boot/vmlinuz-3.11.0-17-generic root=UUID=21745c1b-4a7d-4a6b-afd3-3a956f32f007 ro recovery nomodeset
echo 'Cargando el disco RAM inicial...'
initrd /boot/initrd.img-3.11.0-17-generic
}
### END /etc/grub.d/10_linux ###
### BEGIN /etc/grub.d/20_linux_xen ###
### END /etc/grub.d/20_linux_xen ###
### BEGIN /etc/grub.d/20_memtest86+ ###
menuentry "Memory test (memtest86+)" {
insmod part_msdos
insmod ext2
set root='(hd0,msdos6)'
search --no-floppy --fs-uuid --set=root 21745c1b-4a7d-4a6b-afd3-3a956f32f007
linux16 /boot/memtest86+.bin
}
menuentry "Memory test (memtest86+, serial console 115200)" {
insmod part_msdos
insmod ext2
set root='(hd0,msdos6)'
search --no-floppy --fs-uuid --set=root 21745c1b-4a7d-4a6b-afd3-3a956f32f007
linux16 /boot/memtest86+.bin console=ttyS0,115200n8
}
### END /etc/grub.d/20_memtest86+ ###
### BEGIN /etc/grub.d/30_os-prober ###
menuentry "Windows 7 (loader) (on /dev/sda1)" --class windows --class os {
insmod part_msdos
insmod ntfs
set root='(hd0,msdos1)'
search --no-floppy --fs-uuid --set=root 089C91B49C919D2E
chainloader +1
}
menuentry "Windows Recovery Environment (loader) (on /dev/sda4)" --class windows --class os {
insmod part_msdos
insmod ntfs
set root='(hd0,msdos4)'
search --no-floppy --fs-uuid --set=root 9074E29174E278FC
drivemap -s (hd0) ${root}
chainloader +1
}
set timeout_style=menu
if [ "${timeout}" = 0 ]; then
set timeout=10
fi
### END /etc/grub.d/30_os-prober ###
### BEGIN /etc/grub.d/30_uefi-firmware ###
### END /etc/grub.d/30_uefi-firmware ###
### 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 ###
答案1
简单快速的修复:下载 Boot Repair ISO,将其刻录到 CD,运行自动 Boot Repair 程序。它会处理其他所有事情-
Download link:
https://help.ubuntu.com/community/Boot-Repair