• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

[gelöst] 11.2 von USB-Platte booten

RR_aus_H

Member
Hallo zusammen,
ich habe openSuSE11.2 auf einer USB-Platte für meinen Firmen-Laptop installiert.
Leider bootet er das Beriebssystem mit Grub nicht weil im Bootprozess die USB-Platte hd(0.0) ist,
während im Betrieb von 11.2 die USB Platte für den Grub-Installer hd(1.0) ist.

Da ich 11.2 nur für mich privat nutze, brauche ich eigentlich keinen Bootmanager.
Ich möchte nur wenn die USB-Platte angeschlossen ist, dass Linux von dieser startet.
Wenn keine externe Platte dran ist soll ganz normal Win.. gestartet werden.

Gibt es dafür eine einfachere Lösung als Grub (direkt auf der ext. Platte installierbar)?

Gruß
RR_aus_H
 

josef-wien

Ultimate Guru
Linux braucht einen Boot-Manager. Wenn Du nicht vor der Installation die USB-Platte als erste Bootplatte im BIOS eingestellt hast, dann ist Handarbeit angesagt: http://www.linux-club.de/viewtopic.php?f=4&t=107220&p=663087&#p663066
 
OP
RR_aus_H

RR_aus_H

Member
Hallo,
leider war ich längere Zeit verhindert,so dass ich nicht antworten konnte.
Ich habe den vorgeschlagenen Thread gelesen, aber konnte darin keine Lösung für mein Problem erkennen.
Eigentlich suche ich nur eine Möglichkeit (z.B. mit einem Hexeditor o. ä.) den Eintrag in Grub von hd(1,0) auf hd(0,0) umzuschreiben.
Dies mache ich zur Zeit bei jedem Bootvorgang manuell (mit der Minimal-Bash von Grub) nach der Fehlermeldung.
Ich meine dabei aber nicht die Dateieinträge in /etc/boot wie z. B. in der Datei menu.lst.

Gruß
Roland
 

Tooltime

Advanced Hacker
Kontrolliere mal die Dateien /boot/grub/device.map und /etc/grub.conf. Und um eventuelle Änderungen zu aktivieren, grub --batch < /etc/grub.conf. Die Theorie dazu findest du im Handbuch:
  • /usr/share/doc/manual/opensuse-manuals_de/manual/cha.grub.html
 

josef-wien

Ultimate Guru
RR_aus_H schrieb:
den Eintrag in Grub von hd(1,0) auf hd(0,0) umzuschreiben. Dies mache ich zur Zeit bei jedem Bootvorgang manuell
Was genau machst Du hier?

Welche Ergebnisse geben die als root ausgeführten Befehle
Code:
fdisk -l
hwinfo --disk | egrep "Device Files:|BIOS id:"
aus?

Wenn Du ein Boot-Menü bekommst, was gibt der Befehl
Code:
cat /boot/grub/menu.lst
aus?
 
OP
RR_aus_H

RR_aus_H

Member
Nach dem booten USB erscheint:
Error 17 Cannot mount selectet partition

Danach editiere ich im Textmode der Grub-Shell folgende Zeilen:
kernel (hd1,0) /boot/vmlinuz root= /dev/disk/by-id/usb-Storejet_Transcend..........
und
initrd (hd1,0) /initrd

bei beiden Zeilen muss (hd1,0) durch (hd0,0) ersetzt werden.
Wenn ich nach dem editieren b drücke startet das System wie gewünscht.

fdisk -l und hwinfo --disk ergeben folgendes:
Code:
linux-jaox:~ # fdisk -l

Disk
 /dev/sda: 160.0 GB, 160041885696 bytes
255 heads, 63 sectors/track, 19457 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x67f567f5

   
Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           2        7650    61440592+   7  HPFS/NTFS
/dev/sda2            7651       19457    94839727+   5  Extended
/dev/sda5            7651       15299    61440561    7  HPFS/NTFS
/dev/sda6           15300       19457    33399103+   7  HPFS/NTFS


Disk 
/dev/sdb: 500.1 GB, 500107837440 bytes
255 heads, 63 sectors/track, 60801 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x000e3aa6

   
Device Boot      Start         End      Blocks   Id  System
/dev/sdb1   *           1       13055   104864256   83  Linux
/dev/sdb2           13056       60801   383519745    f  W95 Ext'd (LBA)
/dev/sdb5           13056       26109   104856223+  83  Linux
/dev/sdb6           26110       58744   262140606    c  W95 FAT32 (LBA)
/dev/sdb7           58745       60801    16522821   82  Linux swap / Solaris

Code:
linux-jaox:~ # hwinfo --disk |egrep "Device Files: | Bios id:"

  Device Files: 
/dev/sda, /dev/block/8:0, /dev/disk/by-id/ata-FUJITSU_MHZ2160BH_G2_K62KT9A2EPHF, 
/dev/disk/by-id/scsi-SATA_FUJITSU_MHZ2160_K62KT9A2EPHF, 
/dev/disk/by-path/pci-0000:00:1f.2-scsi-0:0:0:0, 
/dev/disk/by-id/edd-int13_dev81
  Device Files: 
/dev/sdb, /dev/block/8:16, /dev/disk/by-id/usb-StoreJet_Transcend_24D0C08582FF-0:0, 
/dev/disk/by-path/pci-0000:00:1a.7-usb-0:2:1.0-scsi-0:0:0:0, 
/dev/disk/by-id/edd-int13_dev80

Die Ausgabe von cat /boot/grub/menu.lst bringt:
Code:
#
linux-jaox:~ # cat /boot/grub/menu.lst
# Modified by YaST2. Last modification on Di Jan 26 12:17:03 CET 2010# 
THIS FILE WILL BE PARTIALLY OVERWRITTEN by perl-Bootloader
# Configure custom boot parameters for updated kernels in /etc/sysconfig/bootloader default 2 timeout 8 gfxmenu (hd0,0)/boot/message#
###Don't change this comment - YaST2 identifier: Original name: linux###
title SUSE LINUX
    kernel (hd1,0)/boot/vmlinuz root=/dev/disk/by-id/usb-StoreJet_Transcend_24D0C08582FF-0:0-part1 resume=/dev/disk/by-id/usb-StoreJet_Transcend_24D0C08582FF-0:0-part7 splash=silent quiet showopts
    initrd (hd1,0)/boot/initrd

###Don't change this comment - YaST2 identifier: Original name: failsafe###

title Failsafe -- SUSE LINUX
    kernel (hd1,0)/boot/vmlinuz root=/dev/disk/by-id/usb-StoreJet_Transcend_24D0C08582FF-0:0-part1 showopts apm=off noresume nosmp maxcpus=0 edd=off powersaved=off nohz=off highres=off processor.max_cstate=1 x11failsafe

    initrd (hd1,0)/boot/initrd

###Don't change this comment - YaST2 identifier: Original name: other###

title Windows
    rootnoverify (hd1,0)
  makeactive
    chainloader +1

linux-jaox:~ #
Die Ausgabe von cat /boot/grub/device.map bringt:
Code:
linux-jaox:~ # cat /boot/grub/device.map
(hd0) 
/dev/disk/by-id/usb-StoreJet_Transcend_24D0C08582FF-0:0
(hd1) 
/dev/disk/by-id/ata-FUJITSU_MHZ2160BH_G2_K62KT9A2EPHF

linux-jaox:~ #

Ich suche also nur eine Möglichkeit die Einträge (hd1,0) in (hd0,0) zu ändern, ohne dass ich yast dazu benutze.
Das heisst: Ich möchte die menu.lst editieren und dann übertragen ohne dass sich etwas an den anderen Parametern ändert.
Am liebsten wäre mir ein Diskeditor bei welchem ich nur die 1 direkt in eine 0 umschreiben könnte.
 

josef-wien

Ultimate Guru
Deine USB-Platte ist die Boot-Platte, das paßt. Du bekommst das Boot-Menü angezeigt, das paßt auch. Aber die im Boot-Menü hinterlegten Eintragungen passen nicht.

Öffne als root mit einem Texteditor wie Kate oder Kwrite die Datei /boot/grub/menu.lst und nimm die Änderungen vor (sowohl beim normalen Eintrag als auch beim Failsafe-Eintrag). Um Windows aus dem Boot-Menü zu starten, mußt Du den entsprechenden Eintrag ergänzen: http://de.opensuse.org/SDB:Windows_von_der_zweiten_Festplatte_booten
 

PowerPaul

Hacker
Du kannst es dir auch "einfach" machen und den "Plop Bootmanager" nutzen!
Mein oller Rechenknecht kann nicht vom USB-Stick booten, mit dem
Plop Bootmanger kann ich jedoch von USB booten, auch wenn das
Bios das nicht unterstütze, einfach auf ne CD gebrannt, von CD
gebootet und dann USB gewählt....

http://www.plop.at/de/bootmanager.html
 
OP
RR_aus_H

RR_aus_H

Member
Hallo zusammen,
vielen Dank für die wertvollen Hinweise.
Leider funktioniert es jetzt, wobei ich nur die menu.lst editiert habe, aber kein grub install oder grub update durchgeführt habe.
Zumindest nicht bewusst.
Ich werde den Thread jetzt als gelöst markieren, obwohl mir der Lösungsweg eigentlich schleierhaft ist

Nochmal Danke für die Hilfe
Roland
 

josef-wien

Ultimate Guru
RR_aus_H schrieb:
Leider funktioniert es jetzt
Welche Vorstellungen hast Du von GRUB? GRUB ist ein boot loader, also ein "Mini-Betriebssystem", mit dessen Hilfe Du ein Betriebssystem laden kannst. GRUB war und ist bei Dir korrekt installiert, hier bestand und besteht kein Handlungsbedarf.

Damit nicht jedesmal die notwendigen Befehle zum Laden des Betriebssystems manuell eingegeben werden müssen, gibt es die Datei menu.lst, in der der Inhalt des Boot-Menüs und die für jeden Eintrag durchzuführenden Befehle definiert sind. Dein Problem war:
josef-wien schrieb:
Aber die im Boot-Menü hinterlegten Eintragungen passen nicht.
Du hast die falschen Eintragungen korrigiert, und damit paßt alles.

---

http://www.gnu.org/software/grub/manual/grub.html
 
OP
RR_aus_H

RR_aus_H

Member
Hallo Josef-wien,
ich war bisher der Ansicht dass man Änderungen in der Datei menu.lst sozusagen mit einem Befehl "grub --install" oder ähnlich in den Bootloader "kopieren" muss.
Dass ein einfaches Ändern der Datei reicht war mir nicht bewusst und geht meiner Ansicht nach nicht aus der Doku hervor.

Trotzdem Danke für die investierte Zeit
Roland
 
Oben