ubuntuusers.de

GRUB 2 um Windows 7 ergänzen

Status: Gelöst | Ubuntu-Version: Ubuntu 10.04 (Lucid Lynx)
Antworten |

MatthiasGi

Anmeldungsdatum:
20. August 2009

Beiträge: 117

Liebe UBUNTU-Gemeinde!

Mich plagt seit längerer Zeit ein Problem mit GRUB 2. Mein Windows 7 wird in der Liste nicht aufgeführt. Meine Partitionierung ist hier einzusehen:

Platte /dev/sda: 250.1 GByte, 250059350016 Byte
255 Köpfe, 63 Sektoren/Spur, 30401 Zylinder
Einheiten = Zylinder von 16065 × 512 = 8225280 Bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x29133921

   Gerät  boot.     Anfang        Ende     Blöcke   Id  System
/dev/sda1   *           1       13055   104857600    7  HPFS/NTFS
/dev/sda2           13055       15013    15728640   1b  Verst. W95 FAT32
/dev/sda3           15013       30399   123589633    f  W95 Erw. (LBA)
/dev/sda4           30399       30402       20664   ef  EFI (FAT-12/16/32)
/dev/sda5           15013       22739    62058114    7  HPFS/NTFS
/dev/sda6           22739       30081    58974208   83  Linux
/dev/sda7           30081       30399     2555904   82  Linux Swap / Solaris

Es handelt sich bei meinem PC um einen ASUS EeePc 1015 PE. Darauf vorinstalliert war ein Windows 7 Starter, parallel ein Windows Vista für die Wiederherstellung. Ja - es handelt sich um ein Netbook (andernfalls wäre das Problem wahrscheinlich schon mit der Reperatur-CD ohne Systemwiederherstellung gelöst - die möchte ich aber nicht!).

Ich habe dazu ein UBUNTU 10.04 installiert - in der Netbook-Edition. Alles hat wunderbar funktioniert, nur einige Treiber wollten nicht. Nach langer Suche bin ich nicht fündig geworden - es ging konkret um Ton, es gab zumindest keine einfache Lösung - also hatte ich mir das "EasyPeasy" installiert. Nichts anderes als die Netbook-Version von UBUNTU mit proprietären Treibern und weiterer, ähnlicher Software. Bin zufrieden: Bis auf das Mikro funktioniert alles.

ABER; Auf einmal wird mein Windows 7 nicht mehr angezeigt. Mit der "normalen" Netbook-Edition war es so, dass Windows 7 als "Windows 7 (loader)" zusammen mit dem Vista für die Wiederherstellung normal erkannt wurde. Nun wird das 7er nicht mehr angezeigt. Das System scheint noch vorhanden zu sein. Dies schließe ich aus drei Dingen:

  • g-parted zeigt die Partition an

  • bei einer Neuinstallation von EasyPeasy wird Windows 7 (loader) angezeigt

  • der Befehl sudo grub-update zeigt ebenfalls Windows 7 (loader) an - leider nicht nach einem Reboot im Menü

Ich habe ebenfalls ein eigenes Skript in /etc/grub.d hinzugefügt (es nennt sich 50_windows, wird also folglich als letztes Skript ausgeführt). Den Inhalt hier:

#! /bin/sh -e
echo "Windows 7 wird hinzugefügt..." >&2
 cat << EOF
menuentry "Windows 7" {
        insmod chain
	insmod ntfs
	set root='(hd0,1)'
	search --no-floppy --fs-uuid --set eaf815c4f8159045
	drivemap -s (hd0) \${root}
	chainloader +1
}
EOF

So aus dem Wiki übernommen. Beim erstellen des neuen Menüs wird auch der Text "Windows 7 wird hinzugefügt..." angezeigt, beim Booten erscheint der Eintrag aber nicht.

Die grub.cfg darf natürlich auch fehlen:

#
# DO NOT EDIT THIS FILE
#
# It is automatically generated by /usr/sbin/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
  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
}
insmod ext2
set root='(hd0,6)'
search --no-floppy --fs-uuid --set 83928a4e-9465-4b3a-841a-45135ddb47f6
if loadfont /usr/share/grub/unicode.pf2 ; then
  set gfxmode=640x480
  insmod gfxterm
  insmod vbe
  if terminal_output gfxterm ; then true ; else
    # For backward compatibility with versions of terminal.mod that don't
    # understand terminal_output
    terminal gfxterm
  fi
fi
insmod ext2
set root='(hd0,6)'
search --no-floppy --fs-uuid --set 83928a4e-9465-4b3a-841a-45135ddb47f6
set locale_dir=($root)/boot/grub/locale
set lang=de
insmod gettext
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
### END /etc/grub.d/05_debian_theme ###

### BEGIN /etc/grub.d/10_linux ###
menuentry 'Ubuntu, mit Linux 2.6.32-21-generic' --class ubuntu --class gnu-linux --class gnu --class os {
	recordfail
	insmod ext2
	set root='(hd0,6)'
	search --no-floppy --fs-uuid --set 83928a4e-9465-4b3a-841a-45135ddb47f6
	linux	/boot/vmlinuz-2.6.32-21-generic root=UUID=83928a4e-9465-4b3a-841a-45135ddb47f6 ro   quiet splash
	initrd	/boot/initrd.img-2.6.32-21-generic
}
menuentry 'Ubuntu, mit Linux 2.6.32-21-generic (Wiederherstellungsmodus)' --class ubuntu --class gnu-linux --class gnu --class os {
	recordfail
	insmod ext2
	set root='(hd0,6)'
	search --no-floppy --fs-uuid --set 83928a4e-9465-4b3a-841a-45135ddb47f6
	echo	'Linux 2.6.32-21-generic wird geladen …'
	linux	/boot/vmlinuz-2.6.32-21-generic root=UUID=83928a4e-9465-4b3a-841a-45135ddb47f6 ro single 
	echo	'Initiale Ramdisk wird geladen …'
	initrd	/boot/initrd.img-2.6.32-21-generic
}
### END /etc/grub.d/10_linux ###

### BEGIN /etc/grub.d/20_memtest86+ ###
menuentry "Memory test (memtest86+)" {
	insmod ext2
	set root='(hd0,6)'
	search --no-floppy --fs-uuid --set 83928a4e-9465-4b3a-841a-45135ddb47f6
	linux16	/boot/memtest86+.bin
}
menuentry "Memory test (memtest86+, serial console 115200)" {
	insmod ext2
	set root='(hd0,6)'
	search --no-floppy --fs-uuid --set 83928a4e-9465-4b3a-841a-45135ddb47f6
	linux16	/boot/memtest86+.bin console=ttyS0,115200n8
}
### END /etc/grub.d/20_memtest86+ ###

### BEGIN /etc/grub.d/30_os-prober ###
menuentry "Windows Vista (loader) (on /dev/sda2)" {
	insmod fat
	set root='(hd0,2)'
	search --no-floppy --fs-uuid --set 86f4-d40a
	chainloader +1
}
### 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 ###

Beim Einsehen der Datei wird ersichtlich - warum Windows 7 nicht aufgeführt wird. Aber warum fehlt es in der Datei?

Vielen Dank bereits im Voaus für eine Beantwortung.

Viele Grüße aus dem Pott, Matthias

syscon-hh

Anmeldungsdatum:
8. Oktober 2005

Beiträge: 10220

Die relevante Datei

  • /etc/grub.d/50_windows

wurde nicht lauffähig gemacht oder liegt nicht im genannten Verzeichnis. Lauffähig machen mit

  • sudo chmod +x /etc/grub.d/50_windows

  • sudo update-grub

Und nun versuche es noch einmal. Falls die Anzeige von der grub.cfg einerseits und dem Bootloader-Menü andererseits immer noch abweichen, dann solltest Du bitte den MBR ggf. auch noch mal neu installieren (von Ubuntu aus) im Terminal:

  • sudo grub-install /dev/sda

gruß syscon-hh

MatthiasGi

(Themenstarter)

Anmeldungsdatum:
20. August 2009

Beiträge: 117

Hallo syscon-hh!

Es ist mir wirklich furchtbar peinlich: Nach einem Update war das Ganze vorhanden - mein Skript inbegriffen.

Ich danke dir vielmals für die Umstände die du dir - und sich andere - bereitet haben.

Es tut mir nochmals Leid, dass ich mich so dämlich angestellt habe.

Viele Grüße, Matthias

Antworten |