ubuntuusers.de

Grub2 Skript

Status: Gelöst | Ubuntu-Version: Ubuntu 11.04 (Natty Narwhal)
Antworten |

pirad

Anmeldungsdatum:
13. März 2009

Beiträge: 165

Hallo. Ich habe nach der Anleitung hier: http://thinkpad-wiki.org/BIOS-Update_ohne_optisches_Laufwerk_unter_Linux mein BIOS updaten wollen. Allerdings erkennt die Umgebung die Befehle linux16 und initrd16, die im Grub2-Skript eingetragen wurden nicht. Im wiki GRUB 2/Skripte standen die sachen ohne die 16.

Ist es sicher, die 16 einfach weg zu lassen, oder kann ich mir da etwas kaputt machen?

edit: mutig, wie ich bin, habe ich die 16 einfach herausgenommen und bin nur auf einen anderen Fehler gekommen. Also so funktioniert das irgendwie nicht.

linrunner

Avatar von linrunner

Anmeldungsdatum:
7. August 2007

Beiträge: 3272

Kaputt machen kannst Du nichts; ich bezweifle aber das es was bringt. "erkennt ... nicht" ist keine Fehlermeldung. Wie lautet die und wo genau tritt sie auf? Hast Du memdisk nach /boot/ kopiert?

Zeig mal bitte deine /boot/grub/grub.cfg

ps. welches ThinkPad-Modell hast Du?

pirad

(Themenstarter)

Anmeldungsdatum:
13. März 2009

Beiträge: 165

Habe inzwischen ein bisschen herumprobiert. memdisk liegt in /boot/ und mit meiner grub.cfg startet immerhin etwas - der Bildschirm bleibt aber ewig schwarz und es tut sich nichts.

Ich habe ein recht neues ThinkPad E325 mit einer SSD.

Eine Fehlermeldung tritt ja inzwischen nicht mehr auf. Kann ich bei Bedarf aber noch mal suchen. Sie trat auf nachdem ich im Grub den Eintrag ausgewählt hatte und hat einen dann aufgefordert eine Taste zu drücken, womit man wieder ins Grub kam.

(Grub 2, Ubuntu 11.04 64-bit)

$ cat /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='(/dev/sda,gpt2)'
search --no-floppy --fs-uuid --set=root 2bcd2924-b1ca-4b5f-8237-ba4a27e93111
if loadfont /usr/share/grub/unicode.pf2 ; then
  set gfxmode=auto
  load_video
  insmod gfxterm
fi
terminal_output gfxterm
insmod part_gpt
insmod ext2
set root='(/dev/sda,gpt2)'
search --no-floppy --fs-uuid --set=root 2bcd2924-b1ca-4b5f-8237-ba4a27e93111
set locale_dir=($root)/boot/grub/locale
set lang=de_DE
insmod gettext
if [ "${recordfail}" = 1 ]; then
  set timeout=-1
else
  set timeout=2
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 ###
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, mit Linux 2.6.38-11-generic' --class ubuntu --class gnu-linux --class gnu --class os {
	recordfail
	set gfxpayload=$linux_gfx_mode
	insmod part_gpt
	insmod ext2
	set root='(/dev/sda,gpt2)'
	search --no-floppy --fs-uuid --set=root 2bcd2924-b1ca-4b5f-8237-ba4a27e93111
	linux	/boot/vmlinuz-2.6.38-11-generic root=UUID=2bcd2924-b1ca-4b5f-8237-ba4a27e93111 ro elevator=deadline  nosplash
	initrd	/boot/initrd.img-2.6.38-11-generic
}
menuentry 'Ubuntu, mit Linux 2.6.38-11-generic (Wiederherstellungsmodus)' --class ubuntu --class gnu-linux --class gnu --class os {
	recordfail
	set gfxpayload=$linux_gfx_mode
	insmod part_gpt
	insmod ext2
	set root='(/dev/sda,gpt2)'
	search --no-floppy --fs-uuid --set=root 2bcd2924-b1ca-4b5f-8237-ba4a27e93111
	echo	'Loading Linux 2.6.38-11-generic ...'
	linux	/boot/vmlinuz-2.6.38-11-generic root=UUID=2bcd2924-b1ca-4b5f-8237-ba4a27e93111 ro single elevator=deadline
	echo	'Loading initial ramdisk ...'
	initrd	/boot/initrd.img-2.6.38-11-generic
}
submenu "Previous Linux versions" {
menuentry 'Ubuntu, mit Linux 2.6.38-8-generic' --class ubuntu --class gnu-linux --class gnu --class os {
	recordfail
	set gfxpayload=$linux_gfx_mode
	insmod part_gpt
	insmod ext2
	set root='(/dev/sda,gpt2)'
	search --no-floppy --fs-uuid --set=root 2bcd2924-b1ca-4b5f-8237-ba4a27e93111
	linux	/boot/vmlinuz-2.6.38-8-generic root=UUID=2bcd2924-b1ca-4b5f-8237-ba4a27e93111 ro elevator=deadline  nosplash
	initrd	/boot/initrd.img-2.6.38-8-generic
}
menuentry 'Ubuntu, mit Linux 2.6.38-8-generic (Wiederherstellungsmodus)' --class ubuntu --class gnu-linux --class gnu --class os {
	recordfail
	set gfxpayload=$linux_gfx_mode
	insmod part_gpt
	insmod ext2
	set root='(/dev/sda,gpt2)'
	search --no-floppy --fs-uuid --set=root 2bcd2924-b1ca-4b5f-8237-ba4a27e93111
	echo	'Loading Linux 2.6.38-8-generic ...'
	linux	/boot/vmlinuz-2.6.38-8-generic root=UUID=2bcd2924-b1ca-4b5f-8237-ba4a27e93111 ro single elevator=deadline
	echo	'Loading initial ramdisk ...'
	initrd	/boot/initrd.img-2.6.38-8-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='(/dev/sda,gpt2)'
	search --no-floppy --fs-uuid --set=root 2bcd2924-b1ca-4b5f-8237-ba4a27e93111
	linux16	/boot/memtest86+.bin
}
menuentry "Memory test (memtest86+, serial console 115200)" {
	insmod part_gpt
	insmod ext2
	set root='(/dev/sda,gpt2)'
	search --no-floppy --fs-uuid --set=root 2bcd2924-b1ca-4b5f-8237-ba4a27e93111
	linux16	/boot/memtest86+.bin console=ttyS0,115200n8
}
### END /etc/grub.d/20_memtest86+ ###

### BEGIN /etc/grub.d/30_os-prober ###
if [ "x${timeout}" != "x-1" ]; then
  if keystatus; then
    if keystatus --shift; then
      set timeout=-1
    else
      set timeout=0
    fi
  else
    if sleep --interruptible 3 ; then
      set timeout=0
    fi
  fi
fi
### 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.

menuentry "ThinkPad BIOS Update" {
	insmod part_gpt
	insmod ext2      
	set root='(/dev/sda,gpt2)' # diese Zeile analog den vorhandenen Einträgen in /boot/grub/grub.cfg anpassen!
	search --no-floppy --fs-uuid --set=root 2bcd2924-b1ca-4b5f-8237-ba4a27e93111
	
      linux /boot/memdisk iso
      initrd /boot/biosupdate.iso
}


### 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 ###

linrunner

Avatar von linrunner

Anmeldungsdatum:
7. August 2007

Beiträge: 3272

In deiner grub.cfg verwendet der Eintrag für Memtest linux16.

Die verlinkte Anleitung funktioniert übrigens definitiv nicht mit allen ThinkPads, aber wenn, dann mit linux16 bzw. initrd16.

pirad

(Themenstarter)

Anmeldungsdatum:
13. März 2009

Beiträge: 165

Wenn ich den memtest starte komme folgende Fehlermeldung:

Fehler: unknown command 'linux16'.

Beliebige Taste drücken, um fortzusetzen ...

Und so lange ich linux16 und initrd16 in der Datei stehen hatte, kam halt diese Fehlermeldung und dazu noch noch das gleiche mit initrd16. Mit Tastendruck bin ich dann wieder im Grub-menu.

linrunner

Avatar von linrunner

Anmeldungsdatum:
7. August 2007

Beiträge: 3272

Bau mal folgendes in den Menüeintrag ein

menuentry "ThinkPad BIOS Update" {
      insmod linux16

pirad

(Themenstarter)

Anmeldungsdatum:
13. März 2009

Beiträge: 165

Dann kommt ein

Fehler: File not found.

vor den anderen Fehlerangaben.

linrunner

Avatar von linrunner

Anmeldungsdatum:
7. August 2007

Beiträge: 3272

Dann ist deine Grub-Installation defekt oder unvollständig.

pirad

(Themenstarter)

Anmeldungsdatum:
13. März 2009

Beiträge: 165

Ich habe halt die Pakete grub-efi, grub-efi-amd-64, grub-common und memtester86+ installiert, bei den meisten anderen Paketen die so mit Namen grub zur Installation bereit stehen gibt es Konflikte mit diesen Paketen.

linrunner

Avatar von linrunner

Anmeldungsdatum:
7. August 2007

Beiträge: 3272

Dann liegt es vielleicht daran, daß Du EFI verwendest. Womöglich wird linux16 dort nicht unterstützt. Da die EFI-Unterstützung von Linux nicht viel taugt, stellt sich die Frage wozu Du es brauchst, da ja eh kein Windows auf der Maschine ist?

EDITH meint: grub-efi-amd64 enthält kein linux16.mod. Das dürfte der Grund sein.

pirad

(Themenstarter)

Anmeldungsdatum:
13. März 2009

Beiträge: 165

Ich vermute dass dies automatisch installiert wurde, weil ich eine UEFI-Bios habe und für meine SSD-Platte die GPT empfohlen wurde - ohne hat es auch nicht so recht funktionieren wollen bei der Installation. Ich habe das Paket jedenfalls nie ausgesucht, es wurde automatisch installiert.

linrunner

Avatar von linrunner

Anmeldungsdatum:
7. August 2007

Beiträge: 3272

Bei ThinkPads läßt sich m.W. im BIOS EFI abschalten per "Legacy only" (oder so ähnlich). Eventuell ist es einfacher sich fürs BIOS-Update ein USB-CD-Laufwerk zu besorgen/leihen statt einer Neuinstallation.

EDITH meint, daß sie in die Anleitung einen Hinweis aufgenommen hat, daß es mit EFI nicht funktioniert.

pirad

(Themenstarter)

Anmeldungsdatum:
13. März 2009

Beiträge: 165

Nach einigen Scherereien mit nicht lesbaren RW-CDs und brennen an einem anderen Computer und so hat es so funktioniert. Der eindeutig einfachere Weg. Danke für deine Hilfe.

Antworten |