像我之前许多人遇到过以下问题一样,在安装 Ubuntu(已安装 Windows 7)后,grub 引导加载程序不会将 Windows 7 显示为引导选项,但如果我在 x220 上使用“选择引导设备”选项,我可以正常引导。不同之处在于我尝试仅使用 UEFI,因此许多答案并不真正适合我的问题,尽管我尝试了几种方法:
- 运行启动修复后,它破坏了 ubuntu 启动加载程序
- /etc/grub.d/40_custom 中不显示的 Windows 自定义条目
- 多次更新 grub 并重启
- 尝试 Windows 修复恢复
- 在那里我还执行了 bootrec.exe /FixBoot
- 然后更新 grub 并再次重启
- 最后,因为它太有趣了,我重新安装了 Linux,同时格式化并删除了之前与 Linux 相关的所有内容。
现在我想起来了,Ubuntu 在安装过程中也没有注意到 Windows 的存在,而且根据启动修复中的启动信息,它仍然没有注意到。
Boot Info Script 0.61-git-patched [23 April 2012]
============================= Boot Info Summary: ===============================
=> No boot loader is installed in the MBR of /dev/sda.
sda1: __________________________________________________________________________
File system: vfat
Boot sector type: Windows 7: FAT32
Boot sector info: No errors found in the Boot Parameter Block.
Operating System:
Boot files: /efi/Boot/bootx64.efi /efi/ubuntu/grubx64.efi
sda2: __________________________________________________________________________
File system:
Boot sector type: -
Boot sector info:
Mounting failed: mount: unknown filesystem type ''
sda3: __________________________________________________________________________
File system: ntfs
Boot sector type: Windows Vista/7: NTFS
Boot sector info: No errors found in the Boot Parameter Block.
Operating System: Windows 7
Boot files: /Windows/System32/winload.exe
sda4: __________________________________________________________________________
File system: ext4
Boot sector type: -
Boot sector info:
Operating System: Ubuntu precise (development
branch)
Boot files: /boot/grub/grub.cfg /etc/fstab
sda5: __________________________________________________________________________
File system: ext4
Boot sector type: -
Boot sector info:
Operating System:
Boot files:
sda6: __________________________________________________________________________
File system: swap
Boot sector type: -
Boot sector info:
============================ Drive/Partition Info: =============================
Drive: sda _____________________________________________________________________
Disk /dev/sda: 320.1 GB, 320072933376 bytes
255 heads, 63 sectors/track, 38913 cylinders, total 625142448 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
Partition Boot Start Sector End Sector # of Sectors Id System
/dev/sda1 1 625,142,447 625,142,447 ee GPT
GUID Partition Table detected.
Partition Start Sector End Sector # of Sectors System
/dev/sda1 2,048 206,847 204,800 EFI System partition
/dev/sda2 206,848 468,991 262,144 Microsoft Reserved Partition (Windows)
/dev/sda3 468,992 170,338,303 169,869,312 Data partition (Windows/Linux)
/dev/sda4 170,338,304 330,338,304 160,000,001 Data partition (Windows/Linux)
/dev/sda5 330,338,305 617,141,039 286,802,735 Data partition (Windows/Linux)
/dev/sda6 617,141,040 625,141,040 8,000,001 Swap partition (Linux)
"blkid" output: ________________________________________________________________
Device UUID TYPE LABEL
/dev/sda1 885C-ED1B vfat
/dev/sda3 EE06CC0506CBCCB1 ntfs
/dev/sda4 604dd3b2-64ca-4200-b8fb-820e8d0ca899 ext4
/dev/sda5 d62515fd-8120-4a74-b17b-0bdf244124a3 ext4
/dev/sda6 7078b649-fb2a-4c59-bd03-fd31ef440d37 swap
================================ Mount points: =================================
Device Mount_Point Type Options
/dev/sda1 /boot/efi vfat (rw)
/dev/sda4 / ext4 (rw,errors=remount-ro)
/dev/sda5 /home ext4 (rw)
=========================== sda4/boot/grub/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 efi_gop
insmod efi_uga
insmod video_bochs
insmod video_cirrus
}
insmod part_gpt
insmod ext2
set root='(hd0,gpt4)'
search --no-floppy --fs-uuid --set=root 604dd3b2-64ca-4200-b8fb-820e8d0ca899
if loadfont /usr/share/grub/unicode.pf2 ; then
set gfxmode=auto
load_video
insmod gfxterm
insmod part_gpt
insmod ext2
set root='(hd0,gpt4)'
search --no-floppy --fs-uuid --set=root 604dd3b2-64ca-4200-b8fb-820e8d0ca899
set locale_dir=($root)/boot/grub/locale
set lang=en_US
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, with Linux 3.2.0-20-generic' --class ubuntu --class gnu-linux --class gnu --class os {
recordfail
gfxmode $linux_gfx_mode
insmod gzio
insmod part_gpt
insmod ext2
set root='(hd0,gpt4)'
search --no-floppy --fs-uuid --set=root 604dd3b2-64ca-4200-b8fb-820e8d0ca899
linux /boot/vmlinuz-3.2.0-20-generic root=UUID=604dd3b2-64ca-4200-b8fb-820e8d0ca899 ro quiet splash $vt_handoff
initrd /boot/initrd.img-3.2.0-20-generic
}
menuentry 'Ubuntu, with Linux 3.2.0-20-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os {
recordfail
insmod gzio
insmod part_gpt
insmod ext2
set root='(hd0,gpt4)'
search --no-floppy --fs-uuid --set=root 604dd3b2-64ca-4200-b8fb-820e8d0ca899
echo 'Loading Linux 3.2.0-20-generic ...'
linux /boot/vmlinuz-3.2.0-20-generic root=UUID=604dd3b2-64ca-4200-b8fb-820e8d0ca899 ro recovery nomodeset
echo 'Loading initial ramdisk ...'
initrd /boot/initrd.img-3.2.0-20-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_gpt
insmod ext2
set root='(hd0,gpt4)'
search --no-floppy --fs-uuid --set=root 604dd3b2-64ca-4200-b8fb-820e8d0ca899
linux16 /boot/memtest86+.bin
}
menuentry "Memory test (memtest86+, serial console 115200)" {
insmod part_gpt
insmod ext2
set root='(hd0,gpt4)'
search --no-floppy --fs-uuid --set=root 604dd3b2-64ca-4200-b8fb-820e8d0ca899
linux16 /boot/memtest86+.bin console=ttyS0,115200n8
}
### END /etc/grub.d/20_memtest86+ ###
### 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 ###
--------------------------------------------------------------------------------
=============================== sda4/etc/fstab: ================================
--------------------------------------------------------------------------------
# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point> <type> <options> <dump> <pass>
proc /proc proc nodev,noexec,nosuid 0 0
# / was on /dev/sda4 during installation
UUID=604dd3b2-64ca-4200-b8fb-820e8d0ca899 / ext4 errors=remount-ro 0 1
# /boot/efi was on /dev/sda1 during installation
UUID=885C-ED1B /boot/efi vfat defaults 0 1
# /home was on /dev/sda5 during installation
UUID=d62515fd-8120-4a74-b17b-0bdf244124a3 /home ext4 defaults 0 2
# swap was on /dev/sda6 during installation
UUID=7078b649-fb2a-4c59-bd03-fd31ef440d37 none swap sw 0 0
--------------------------------------------------------------------------------
=================== sda4: Location of files loaded by Grub: ====================
GiB - GB File Fragment(s)
129.422874451 = 138.966753280 boot/grub/grub.cfg 1
83.059570312 = 89.184534528 boot/initrd.img-3.2.0-20-generic 2
101.393131256 = 108.870045696 boot/vmlinuz-3.2.0-20-generic 1
83.059570312 = 89.184534528 initrd.img 2
101.393131256 = 108.870045696 vmlinuz 1
ADDITIONAL INFORMATION :
=================== log of boot-repair 2012-04-25__23h40 ===================
boot-repair version : 3.18-0ppa3~precise
boot-sav version : 3.18-0ppa4~precise
glade2script version : 0.3.2.1-0ppa7~precise
internet: connected
python-software-properties version : 0.82.7
0 upgraded, 0 newly installed, 1 reinstalled, 0 to remove and 591 not upgraded.
dpkg-preconfigure: unable to re-open stdin: No such file or directory
boot-repair is executed in installed-session (Ubuntu precise (development branch) , precise , Ubuntu , x86_64)
WARNING: GPT (GUID Partition Table) detected on '/dev/sda'! The util fdisk doesn't support GPT. Use GNU Parted.
=================== OSPROBER:
/dev/sda4:The OS now in use - Ubuntu precise (development branch) CurrentSession:linux
=================== BLKID:
/dev/sda3: UUID="EE06CC0506CBCCB1" TYPE="ntfs"
/dev/sda1: UUID="885C-ED1B" TYPE="vfat"
/dev/sda4: UUID="604dd3b2-64ca-4200-b8fb-820e8d0ca899" TYPE="ext4"
/dev/sda5: UUID="d62515fd-8120-4a74-b17b-0bdf244124a3" TYPE="ext4"
/dev/sda6: UUID="7078b649-fb2a-4c59-bd03-fd31ef440d37" TYPE="swap"
1 disks with OS, 1 OS : 1 Linux, 0 MacOS, 0 Windows, 0 unknown type OS.
WARNING: GPT (GUID Partition Table) detected on '/dev/sda'! The util sfdisk doesn't support GPT. Use GNU Parted.
=================== /etc/default/grub :
# If you change this file, run 'update-grub' afterwards to update
# /boot/grub/grub.cfg.
# For full documentation of the options in this file, see:
# info -f grub -n 'Simple configuration'
GRUB_DEFAULT=0
#GRUB_HIDDEN_TIMEOUT=0
#GRUB_HIDDEN_TIMEOUT_QUIET=true
GRUB_TIMEOUT=10
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_CMDLINE_LINUX=""
# Uncomment to enable BadRAM filtering, modify to suit your needs
# This works with Linux (no patch required) and with any kernel that obtains
# the memory map information from GRUB (GNU Mach, kernel of FreeBSD ...)
#GRUB_BADRAM="0x01234567,0xfefefefe,0x89abcdef,0xefefefef"
# Uncomment to disable graphical terminal (grub-pc only)
#GRUB_TERMINAL=console
# The resolution used on graphical terminal
# note that you can use only modes which your graphic card supports via VBE
# you can see them in real GRUB with the command `vbeinfo'
#GRUB_GFXMODE=640x480
# Uncomment if you don't want GRUB to pass "root=UUID=xxx" parameter to Linux
#GRUB_DISABLE_LINUX_UUID=true
# Uncomment to disable generation of recovery mode menu entries
#GRUB_DISABLE_RECOVERY="true"
# Uncomment to get a beep at grub start
#GRUB_INIT_TUNE="480 440 1"
EFI_OF_PART[1] (, )
=================== dmesg | grep EFI :
[ 0.000000] EFI v2.00 by Lenovo
[ 0.000000] Kernel-defined memdesc doesn't match the one from EFI!
[ 0.000000] EFI: mem00: type=3, attr=0xf, range=[0x0000000000000000-0x0000000000001000) (0MB)
[ 0.000000] EFI: mem01: type=7, attr=0xf, range=[0x0000000000001000-0x000000000004e000) (0MB)
[ 0.000000] EFI: mem02: type=3, attr=0xf, range=[0x000000000004e000-0x0000000000058000) (0MB)
[ 0.000000] EFI: mem03: type=10, attr=0xf, range=[0x0000000000058000-0x0000000000059000) (0MB)
[ 0.000000] EFI: mem04: type=7, attr=0xf, range=[0x0000000000059000-0x000000000005e000) (0MB)
[ 0.000000] EFI: mem05: type=4, attr=0xf, range=[0x000000000005e000-0x000000000005f000) (0MB)
[ 0.000000] EFI: mem06: type=3, attr=0xf, range=[0x000000000005f000-0x00000000000a0000) (0MB)
[ 0.000000] EFI: mem07: type=2, attr=0xf, range=[0x0000000000100000-0x00000000005b9000) (4MB)
[ 0.000000] EFI: mem08: type=7, attr=0xf, range=[0x00000000005b9000-0x0000000020000000) (506MB)
[ 0.000000] EFI: mem09: type=0, attr=0xf, range=[0x0000000020000000-0x0000000020200000) (2MB)
[ 0.000000] EFI: mem10: type=7, attr=0xf, range=[0x0000000020200000-0x00000000364e4000) (354MB)
[ 0.000000] EFI: mem11: type=2, attr=0xf, range=[0x00000000364e4000-0x000000003726a000) (13MB)
[ 0.000000] EFI: mem12: type=7, attr=0xf, range=[0x000000003726a000-0x0000000040000000) (141MB)
[ 0.000000] EFI: mem13: type=0, attr=0xf, range=[0x0000000040000000-0x0000000040200000) (2MB)
[ 0.000000] EFI: mem14: type=7, attr=0xf, range=[0x0000000040200000-0x000000009df35000) (1501MB)
[ 0.000000] EFI: mem15: type=2, attr=0xf, range=[0x000000009df35000-0x00000000d39a0000) (858MB)
[ 0.000000] EFI: mem16: type=4, attr=0xf, range=[0x00000000d39a0000-0x00000000d39c0000) (0MB)
[ 0.000000] EFI: mem17: type=7, attr=0xf, range=[0x00000000d39c0000-0x00000000d5df5000) (36MB)
[ 0.000000] EFI: mem18: type=4, attr=0xf, range=[0x00000000d5df5000-0x00000000d6990000) (11MB)
[ 0.000000] EFI: mem19: type=7, attr=0xf, range=[0x00000000d6990000-0x00000000d6b82000) (1MB)
[ 0.000000] EFI: mem20: type=1, attr=0xf, range=[0x00000000d6b82000-0x00000000d6b9f000) (0MB)
[ 0.000000] EFI: mem21: type=7, attr=0xf, range=[0x00000000d6b9f000-0x00000000d77b0000) (12MB)
[ 0.000000] EFI: mem22: type=4, attr=0xf, range=[0x00000000d77b0000-0x00000000d780a000) (0MB)
[ 0.000000] EFI: mem23: type=7, attr=0xf, range=[0x00000000d780a000-0x00000000d7826000) (0MB)
[ 0.000000] EFI: mem24: type=4, attr=0xf, range=[0x00000000d7826000-0x00000000d7868000) (0MB)
[ 0.000000] EFI: mem25: type=7, attr=0xf, range=[0x00000000d7868000-0x00000000d7869000) (0MB)
[ 0.000000] EFI: mem26: type=4, attr=0xf, range=[0x00000000d7869000-0x00000000d786a000) (0MB)
[ 0.000000] EFI: mem27: type=7, attr=0xf, range=[0x00000000d786a000-0x00000000d786b000) (0MB)
[ 0.000000] EFI: mem28: type=4, attr=0xf, range=[0x00000000d786b000-0x00000000d786c000) (0MB)
[ 0.000000] EFI: mem29: type=7, attr=0xf, range=[0x00000000d786c000-0x00000000d786d000) (0MB)
[ 0.000000] EFI: mem30: type=4, attr=0xf, range=[0x00000000d786d000-0x00000000d825f000) (9MB)
[ 0.000000] EFI: mem31: type=7, attr=0xf, range=[0x00000000d825f000-0x00000000d8261000) (0MB)
[ 0.000000] EFI: mem32: type=4, attr=0xf, range=[0x00000000d8261000-0x00000000d82f7000) (0MB)
[ 0.000000] EFI: mem33: type=7, attr=0xf, range=[0x00000000d82f7000-0x00000000d82f8000) (0MB)
[ 0.000000] EFI: mem34: type=4, attr=0xf, range=[0x00000000d82f8000-0x00000000d8705000) (4MB)
[ 0.000000] EFI: mem35: type=7, attr=0xf, range=[0x00000000d8705000-0x00000000d8706000) (0MB)
[ 0.000000] EFI: mem36: type=4, attr=0xf, range=[0x00000000d8706000-0x00000000d8761000) (0MB)
[ 0.000000] EFI: mem37: type=7, attr=0xf, range=[0x00000000d8761000-0x00000000d8768000) (0MB)
[ 0.000000] EFI: mem38: type=4, attr=0xf, range=[0x00000000d8768000-0x00000000d9b9f000) (20MB)
[ 0.000000] EFI: mem39: type=7, attr=0xf, range=[0x00000000d9b9f000-0x00000000d9e4c000) (2MB)
[ 0.000000] EFI: mem40: type=2, attr=0xf, range=[0x00000000d9e4c000-0x00000000d9e52000) (0MB)
[ 0.000000] EFI: mem41: type=3, attr=0xf, range=[0x00000000d9e52000-0x00000000da59f000) (7MB)
[ 0.000000] EFI: mem42: type=5, attr=0x800000000000000f, range=[0x00000000da59f000-0x00000000da6c3000) (1MB)
[ 0.000000] EFI: mem43: type=5, attr=0x800000000000000f, range=[0x00000000da6c3000-0x00000000da79f000) (0MB)
[ 0.000000] EFI: mem44: type=6, attr=0x800000000000000f, range=[0x00000000da79f000-0x00000000da8b1000) (1MB)
[ 0.000000] EFI: mem45: type=6, attr=0x800000000000000f, range=[0x00000000da8b1000-0x00000000da99f000) (0MB)
[ 0.000000] EFI: mem46: type=0, attr=0xf, range=[0x00000000da99f000-0x00000000daa22000) (0MB)
[ 0.000000] EFI: mem47: type=0, attr=0xf, range=[0x00000000daa22000-0x00000000daa9b000) (0MB)
[ 0.000000] EFI: mem48: type=0, attr=0xf, range=[0x00000000daa9b000-0x00000000daa9c000) (0MB)
[ 0.000000] EFI: mem49: type=0, attr=0xf, range=[0x00000000daa9c000-0x00000000daa9f000) (0MB)
[ 0.000000] EFI: mem50: type=10, attr=0xf, range=[0x00000000daa9f000-0x00000000daadd000) (0MB)
[ 0.000000] EFI: mem51: type=10, attr=0xf, range=[0x00000000daadd000-0x00000000dab9f000) (0MB)
[ 0.000000] EFI: mem52: type=9, attr=0xf, range=[0x00000000dab9f000-0x00000000dabdc000) (0MB)
[ 0.000000] EFI: mem53: type=9, attr=0xf, range=[0x00000000dabdc000-0x00000000dabff000) (0MB)
[ 0.000000] EFI: mem54: type=4, attr=0xf, range=[0x00000000dabff000-0x00000000dac00000) (0MB)
[ 0.000000] EFI: mem55: type=7, attr=0xf, range=[0x0000000100000000-0x000000021e600000) (4582MB)
[ 0.000000] EFI: mem56: type=11, attr=0x8000000000000001, range=[0x00000000f80f8000-0x00000000f80f9000) (0MB)
[ 0.000000] EFI: mem57: type=11, attr=0x8000000000000001, range=[0x00000000fed1c000-0x00000000fed20000) (0MB)
[ 0.000000] ACPI: UEFI 00000000dabde000 0003E (v01 LENOVO TP-8D 00001280 PTL 00000002)
[ 0.000000] ACPI: UEFI 00000000dabdd000 00042 (v01 PTL COMBUF 00000001 PTL 00000001)
[ 0.000000] ACPI: UEFI 00000000dabdc000 00292 (v01 LENOVO TP-8D 00001280 PTL 00000002)
[ 0.795807] fb0: EFI VGA frame buffer device
[ 1.057243] EFI Variables Facility v0.08 2004-May-17
[ 9.122104] fb: conflicting fb hw usage inteldrmfb vs EFI VGA - removing generic driver
ReadEFI: /dev/sda , N 128 , 0 , , PRStart 1024 , PRSize 128
WARNING: GPT (GUID Partition Table) detected on '/dev/sda'! The util fdisk doesn't support GPT. Use GNU Parted.
=================== PARTITIONS & DISKS:
sda4 : sda, not-sepboot, grubenv-ok grub2, grub-efi, update-grub, 64, with-boot, is-os, gpt-but-not-EFI, fstab-has-bad-efi, no-nt, no-winload, no-recov-nor-hid, no-bmgr, no-grldr, no-b-bcd, apt-get, grub-install, .
sda3 : sda, maybesepboot, no-grubenv nogrub, no-docgrub, no-update-grub, 32, no-boot, no-os, gpt-but-not-EFI, part-has-no-fstab, no-nt, haswinload, no-recov-nor-hid, no-bmgr, no-grldr, no-b-bcd, nopakmgr, nogrubinstall, /mnt/boot-sav/sda3.
sda1 : sda, maybesepboot, no-grubenv nogrub, no-docgrub, no-update-grub, 32, no-boot, no-os, is-correct-EFI, part-has-no-fstab, no-nt, no-winload, no-recov-nor-hid, no-bmgr, no-grldr, no-b-bcd, nopakmgr, nogrubinstall, /boot/efi.
sda5 : sda, maybesepboot, no-grubenv nogrub, no-docgrub, no-update-grub, 32, no-boot, no-os, gpt-but-not-EFI, part-has-no-fstab, no-nt, no-winload, no-recov-nor-hid, no-bmgr, no-grldr, no-b-bcd, nopakmgr, nogrubinstall, /home.
sda : GPT-BIS, GPT, no-BIOS_boot, has-correctEFI, 2048 sectors * 512 bytes
=================== PARTED:
Model: ATA HITACHI HTS72323 (scsi)
Disk /dev/sda: 320GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Number Start End Size File system Name Flags
1 1049kB 106MB 105MB fat32 EFI system partition boot
2 106MB 240MB 134MB Microsoft reserved partition msftres
3 240MB 87.2GB 87.0GB ntfs Basic data partition
4 87.2GB 169GB 81.9GB ext4
5 169GB 316GB 147GB ext4
6 316GB 320GB 4096MB linux-swap(v1)
=================== MOUNT:
/dev/sda4 on / type ext4 (rw,errors=remount-ro)
proc on /proc type proc (rw,noexec,nosuid,nodev)
sysfs on /sys type sysfs (rw,noexec,nosuid,nodev)
none on /sys/fs/fuse/connections type fusectl (rw)
none on /sys/kernel/debug type debugfs (rw)
none on /sys/kernel/security type securityfs (rw)
udev on /dev type devtmpfs (rw,mode=0755)
devpts on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=0620)
tmpfs on /run type tmpfs (rw,noexec,nosuid,size=10%,mode=0755)
none on /run/lock type tmpfs (rw,noexec,nosuid,nodev,size=5242880)
none on /run/shm type tmpfs (rw,nosuid,nodev)
/dev/sda1 on /boot/efi type vfat (rw)
/dev/sda5 on /home type ext4 (rw)
gvfs-fuse-daemon on /home/vierlex/.gvfs type fuse.gvfs-fuse-daemon (rw,nosuid,nodev,user=vierlex)
/dev/sda3 on /mnt/boot-sav/sda3 type fuseblk (rw,nosuid,nodev,allow_other,blksize=4096)
/sys/block/sda: alignment_offset bdi capability dev device discard_alignment events events_async events_poll_msecs ext_range holders inflight power queue range removable ro sda1 sda2 sda3 sda4 sda5 sda6 size slaves stat subsystem trace uevent
/dev: agpgart autofs block bsg btrfs-control bus char console core cpu cpu_dma_latency disk dri ecryptfs fb0 fd full fuse hpet input kmsg log mapper mcelog mei mem net network_latency network_throughput null oldmem port ppp psaux ptmx pts random rfkill rtc rtc0 sda sda1 sda2 sda3 sda4 sda5 sda6 sg0 shm snapshot snd stderr stdin stdout tpm0 uinput urandom usbmon0 usbmon1 usbmon2 v4l vga_arbiter video0 watchdog zero
/dev/mapper: control
/boot/efi: EFI
/boot/efi/EFI: Boot Microsoft ubuntu
/boot/efi/efi: Boot Microsoft ubuntu
/boot/efi/efi/Boot: bootx64.efi
/boot/efi/efi/ubuntu: grubx64.efi
WARNING: GPT (GUID Partition Table) detected on '/dev/sda'! The util fdisk doesn't support GPT. Use GNU Parted.
=================== DF:
Filesystem Type Size Used Avail Use% Mounted on
/dev/sda4 ext4 77G 4.1G 69G 6% /
udev devtmpfs 3.9G 12K 3.9G 1% /dev
tmpfs tmpfs 1.6G 864K 1.6G 1% /run
none tmpfs 5.0M 0 5.0M 0% /run/lock
none tmpfs 3.9G 152K 3.9G 1% /run/shm
/dev/sda1 vfat 96M 18M 79M 19% /boot/efi
/dev/sda5 ext4 137G 2.2G 128G 2% /home
/dev/sda3 fuseblk 81G 30G 52G 37% /mnt/boot-sav/sda3
=================== FDISK:
Disk /dev/sda: 320.1 GB, 320072933376 bytes
255 heads, 63 sectors/track, 38913 cylinders, total 625142448 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0xf34fe538
Device Boot Start End Blocks Id System
/dev/sda1 1 625142447 312571223+ ee GPT
=================== Before mainwindow
FSCK no PASTEBIN yes WUBI no WINBOOT yes
recommendedrepair, purge, QTY_OF_PART_FOR_REINSTAL 1 no-kernel-purge
UNHIDEBOOT_ACTION yes (10s), noflag ()
PART_TO_REINSTALL_GRUB sda4, FORCE_GRUB no (sda) REMOVABLEDISK no
USE_SEPARATEBOOTPART no (sda3) grub2 ()
UNCOMMENT_GFXMODE no ATA ADD_KERNEL_OPTION no (acpi=off)
MBR_TO_RESTORE ( )
EFI detected. Please check the options.
=================== Actions
FSCK no PASTEBIN yes WUBI no WINBOOT no
bootinfo, nombraction, QTY_OF_PART_FOR_REINSTAL 1 no-kernel-purge
UNHIDEBOOT_ACTION no (10s), noflag ()
PART_TO_REINSTALL_GRUB sda4, FORCE_GRUB no (sda) REMOVABLEDISK no
USE_SEPARATEBOOTPART no (sda3) grub2 ()
UNCOMMENT_GFXMODE no ATA ADD_KERNEL_OPTION no (acpi=off)
MBR_TO_RESTORE ( )
No change has been performed on your computer. See you soon!
internet: connected
感谢您的时间和关注。
编辑:附加信息请求
=>/dev/sda 的 MBR 中没有安装引导加载程序。
但也许这就是它应该如何运作?
是的,没问题。启动项似乎位于单独的分区上,在我的情况下是 sda1。我对这个 UEFI 东西也很陌生。
缺少 bootmgr 等文件
我真的不知道 :D 但是是的,也许这就是它应该的样子?相反,出于某种原因,日志中没有显示什么:在 /efi/microsoft/ 下的 sda1 上还有其他微软启动文件 [很多东西]
我记得还做过某种破解工作来制作 UEFI Windows 7 USB 记忆棒。 http://jake.io/b/2011/installing-windows-7-with-uefi-boot-on-an-x220-from-usb/ 简而言之:创建并将 bootx64.efi 放置在棒上,以便它可以在 UEFI 模式下启动。
引导顺序
我决定在我的 BIOS 中。我读到某处,thinkpad x220(序列号的重要部分:4921http://www.lenovo.com/shop/americas/content/user_guides/x220_x220i_x220tablet_x220itablet_ug_en.pdf) 实际上没有 UEFI 接口之类的东西,但这两个选项与所有其他可以优先启动的常用设备一起列出。现在它看起来像这样:
Boot Priority Order
1. ubuntu
2. Windows Boot Manager
3. USB FDD
4. USB HDD
5. ATA HDD0 HITACHI [random string]
答案1
我的第二次尝试
现在回想起来,我认为我之前的评论没有任何价值,所以我删除了它们。
您的主要问题似乎是它update-grub
没有(自动)在grub.cfg
它生成的“菜单”中找到并包含您的 Windows 安装,对吗?
- 一个建议。考虑将问题的标题改为类似这样的东西
为什么 UEFI Thinkpad 笔记本电脑上的 update-grub 没有将 Windows 添加到 GRUB 菜单?
这可能会引起某些人的注意,他们与我不同,实际上知道update-grub
探测操作系统时发生了什么。:-)
我将解释我对您的问题的理解,以便您能够纠正我的错误。
我认为您有一台使用 UEFI BIOS 的联想 ThinkPad X220 (4291)。
- 笔记:4291 是我的猜测。我想指的是dddd-xxx位于 X220 笔记本电脑/平板电脑底部的此贴纸上的
Type
和之间的代码。S/N
您的笔记本电脑已安装并运行 Windows 7。然后您安装了 Ubuntu 12.04(Beta 2?)。但是安装后,GRUB 菜单不包含用于启动 Windows 7 的条目,对吗?
您仍然可以通过进入 BIOS 配置、选择菜单Startup
,然后将 Windows 条目设为Boot
子菜单中的第一个条目来启动 Windows 7。但显然这是一个 PITA,您希望在 GRUB 菜单中有一个可用于启动 Windows 的条目。
我假设您安装了 Ubuntu 12.04 的 Beta 2 版本。(64 位?)如果是这样,现在 12.04 已经发布,您是否习惯update-manager
应用所有更新和修复?(只是检查。)
您尝试过的方法之一是添加自定义的 windows 条目,/etc/grub.d/40_custom
但它没有显示出来。我假设您是基于非 Mac x86_64 UEFI 特定信息Ubuntu 社区文档中是否有此部分?
我所能想到的只是建议再试一次。
- 启动 Ubuntu,打开终端窗口,并运行
ls -l /etc/grub.d/40_custom
以验证 root 是否拥有此文件以及该文件是否可执行。
-rwxr-xr-x 1 root root 356 Apr 26 14:15 /etc/grub.d/40_custom
- 用于
sudo gedit /etc/grub.d/40_custom
编辑文件。我认为您希望它包含的内容是:
/bin/sh #!/bin/sh 复制代码 执行 tail -n +3 $0 # 此文件提供了一种添加自定义菜单项的简单方法。只需输入 # 个要在此注释后添加的菜单项。请注意不要更改 # 上面的‘exec tail’行。 菜单项“Windows x86_64 UEFI-GPT”{ 搜索--fs-uuid--no-floppy--set = root 885C-ED1B chainloader (${root})/efi/Boot/bootx64.efi }
保存文件并运行sudo update-grub
。上面的编辑应该添加到/boot/grub/grub.cfg
行### BEGIN /etc/grub.d/40_custom ###
和行之间### END /etc/grub.d/40_custom ###
如果上述步骤有效,请尝试重新启动并查看现在是否有一个允许您启动 Windows 的 GRUB 菜单项。(心里祈祷着。)
答案2
首先,您应该检查 ESP 上是否存在 Windows 引导加载程序。在 Linux 下,此文件通常以 的形式存在/boot/efi/EFI/Microsoft/Boot/bootmgfw.efi
。如果不存在,请检查是否只有那个文件消失了,或者是否所有文件都/boot/efi/EFI/Microsoft
消失了。不幸的是,Ubuntu 12.04 之前的版本会清除 ESP,包括任何预先存在的 Windows 引导加载程序及其整个目录树。如果此文件丢失,唯一的修复方法是从备份中恢复它或使用 Windows 恢复光盘进行修复。完成后,您可能需要再次重新调整以使 GRUB(或其他引导管理器)默认启动。
假设 Windows 引导加载程序存在,有几种方法可以解决这个问题。
一个是安装改装或者重新索引。我从 rEFIt 中分叉出 rEFInd,因为 rEFIt 似乎已被废弃;因此,在我看来 rEFInd 是更好的解决方案。这两个程序都是启动管理器,如果安装正确,它们会在 GRUB 之前运行。它们都可以自动检测 GRUB 和 Windows 启动加载程序,让您可以选择启动其中任何一个。因此,如果 GRUB 无法检测到 Windows 或无法启动它,那也没关系。
第二种方法是添加一个条目到/etc/grub.d/40_custom
类似于无理约翰所建议的条目;然而,你必须将序列号从 更改885C-ED1B
为系统上的任何序列号,或者以其他方式指定 ESP。此外,您应将行指向chainloader
Windows 引导加载程序,即/EFI/Microsoft/Boot/bootmgfw.efi
。(它可能在 处重复/EFI/Boot/bootx64.efi
,但不能保证)。例如,这应该有效:
menuentry "Windows" {
set root=(hd0,gpt1)
chainloader /EFI/Microsoft/Boot/bootmgfw.efi
}
不过,这只是我的记忆,也可能是我忘记了什么或输入了错别字。此外,以这种方式完成时,您必须在该set root=
行中正确指定 ESP;如果 ESP 不是第一个物理磁盘上的第一个分区,则必须适当调整数字。