2

Like many before me had the following problem that after installing Ubuntu (with windows 7 already installed), the grub boot loader wouldnt show windows 7 as a boot option, though i can boot fine if I use the "Choose Boot Device" options on the x220. The difference is that I try using UEFI only so many answers didn't really fit my problem, though i tried several stuffs:

  • after running boot repair it destroyed the ubuntu boot loader
  • custom entry in /etc/grub.d/40_custom for windows which doesnt show up
  • many update-grub and reboots
  • trying windows repair recovery thing
  • while being there i also did bootrec.exe /FixBoot
  • and update-grub and reboot again
  • and finaly because it was so much fun, i installed linux all over again, while formatting and deleting everything linux related before that.

Now that i think of it, Ubuntu also didn't notice Windows being there during the Setup and it still doesnt according to the Boot Info from Boot Repair.

            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

Thanks for your time and attention.

EDIT: additional Info Request

=>No boot loader is installed in the MBR of /dev/sda.

But maybe this is how it is supposed to work?

yea this is ok. boot stuff seems to be on a seperate partition, in my case sda1. I'm very new to this UEFI thing too.

missing files like bootmgr

i don't really have a clue :D but yea, maybe thats how it suppose to be? Instead and whats not shown in the log for some reason: There is additional microsoft bootfiles on sda1 under /efi/microsoft/ [much stuff]

I remember also doing some kind of hack to make a UEFI windows 7 usb stick. http://jake.io/b/2011/installing-windows-7-with-uefi-boot-on-an-x220-from-usb/ In short: creating and placing bootx64.efi on the stick so it can be booted in UEFI mode.

boot order

i decide that in my BIOS. i read somwhere that the thinkpad x220 (essential part of the serial number: 4921 http://www.lenovo.com/shop/americas/content/user_guides/x220_x220i_x220tablet_x220itablet_ug_en.pdf) doesnt really have UEFI interface or something, still, these 2 options are listed with all the other usual devices you can give a boot priority to. Right now it looks like this:

Boot Priority Order
 1. ubuntu
 2. Windows Boot Manager
 3. USB FDD
 4. USB HDD
 5. ATA HDD0 HITACHI [random string]

2 Answers 2

0

My Second Attempt

In hindsight I think my previous comments had no value so I removed them.

Your main problem seems to be that update-grub does not (automatically) find and include your Windows install in the grub.cfg "menu" it generates, correct?

  • A suggestion. Consider changing the title of your question to something along the lines of
    Why does update-grub on UEFI Thinkpad laptop not add Windows to GRUB menu?
    This might attract the attention of someone who, unlike me, actually knows what is going on when update-grub probes for operating systems. :-)

I'll paraphrase my understanding of your question so that you can correct me where I am wrong.

I think you have a Lenovo ThinkPad X220 (4291) which uses a UEFI BIOS.

  • Note: 4291 is a guess on my part. What I am trying to refer to is the dddd-xxx code between Type and S/N on this sticker on the bottom of your X220 laptop/tablet.
    Lenovo Machine Type and Model sticker

Your laptop already had Windows 7 installed and working on it. You then installed Ubuntu 12.04 (Beta 2?). However after the install the GRUB menu did not contain an entry to boot Windows 7, correct?

You are still able to boot Windows 7 by entering the BIOS configuration, selecting the Startup menu and then making the Windows entry the first in the Boot sub-menu. But obviously this is a PITA and you would like to have an entry in the GRUB menu you can use to boot Windows.

I am assuming you installed the Beta 2 copy of Ubuntu 12.04. (64-bit?) If so, now that 12.04 has been released have you used update-manager to apply all updates & fixes? (Just checking.)

One of the things you have tried was to add a custom entry for windows to /etc/grub.d/40_custom but it didn't show up. I assume you based this on the Non-Mac x86_64 UEFI specific info section in the Ubuntu Community Documentation?

All I can think of is to suggest trying this once again.

  1. Boot Ubuntu, open a terminal window, and run ls -l /etc/grub.d/40_custom to verify that root owns this file and it is executable.
      -rwxr-xr-x 1 root root 356 Apr 26 14:15 /etc/grub.d/40_custom
  2. Use sudo gedit /etc/grub.d/40_custom to edit the file. I think the content you want it to have is:
    #!/bin/sh
    exec tail -n +3 $0
    # 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.

    menuentry "Windows x86_64 UEFI-GPT" {
        search --fs-uuid --no-floppy --set=root 885C-ED1B
        chainloader (${root})/efi/Boot/bootx64.efi
    }

Save the file and run sudo update-grub. The edit above should be added to /boot/grub/grub.cfg between the lines ### BEGIN /etc/grub.d/40_custom ### and ### END /etc/grub.d/40_custom ###

If the above steps worked, then try rebooting and see if you now have a GRUB menu entry which lets you boot Windows. (Mentally crossing fingers here.)

0

First, you should check for the presence of the Windows boot loader on your ESP. Under Linux, this file will normally be present as /boot/efi/EFI/Microsoft/Boot/bootmgfw.efi. If it's not present, check to see if just that one file is gone, or if all of /boot/efi/EFI/Microsoft is gone. Unfortunately, Ubuntu versions prior to 12.04 would wipe out the ESP, including any pre-existing Windows boot loader and its whole directory tree. If this file is missing, the only way to fix it is to restore it from a backup or use a Windows recovery disc to do the repair. Once that's done, you may need to rejigger things again to get GRUB (or some other boot manager) to launch by default.

Assuming the Windows boot loader program is present, there are several ways to fix this problem.

One is to install rEFIt or rEFInd. I forked rEFInd from rEFIt because rEFIt seems to have been abandoned; thus, IMHO rEFInd is the better solution. These programs are both boot managers that, when properly installed, run before GRUB. They can both auto-detect GRUB and the Windows boot loader, giving you the option to boot either one. Thus, it won't matter if GRUB can't detect Windows or fails to launch it.

The second approach is to add an entry to /etc/grub.d/40_custom similar to what irrational John suggests; however, you must change the serial number from 885C-ED1B to whatever it is on your system, or specify the ESP in some other way. Furthermore, you should point the chainloader line at the Windows boot loader, which is /EFI/Microsoft/Boot/bootmgfw.efi. (It might be duplicated at /EFI/Boot/bootx64.efi, but this isn't guaranteed). For instance, this ought to work:

menuentry "Windows" {
    set root=(hd0,gpt1)
    chainloader /EFI/Microsoft/Boot/bootmgfw.efi
}

That's from memory, though; it could be I've forgotten something or entered a typo. Also, done in this way, you must specify the ESP correctly on the set root= line; if the ESP isn't the first partition on the first physical disk, you must adjust the numbers appropriately.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .