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

Linux von 2. Festplatte booten; alter PC -->Grub Error 18

thio

Hacker
Hallo bin neu hier im Forum und eher Linux-Neuling.
Hab schon fleißig im Forum gesucht aber irgendwie nichts zu meinem Problem gefunden.
Hab für meinen Zweit-PC (Compaq mit Pentium III 600 MHz) eine Festplatte gekauft (80 GB) da die alte 6 GB für Suse und Win XP zu klein war.
Als ich XP installiert habe hat alles funktioniert, wie ich aber Suse 10 dazu installiert hab kam bloß noch Grub Error 18 ( Maximum Bios exceeds.. oder so ähnlich) und der PC konnte nix mehr booten. Vermute das das alte Bios damit nicht zurecht kommt (es gibt aber glaub ich kein aktuelleres)
Hab dann als Trick die alte 6 GB-Platte als Master (davor) geschalten und kann so jetzt mein SuperSuse 10 auf der 6 GB booten; nach längerem Tricksen kann ich auch wieder Win XP auf der 80 GB (Slave-)Festplatte starten.
Das immer noch installierte Suse 10 auf der "großen" 80 GB kann ich aber nicht booten. Gibts irgend einen Trick vom Bootloader auf der 6 Gb Festplatte aus zu booten?

Was für Infos sind notwendig?

Hier meine device.map

(hd1) /dev/hdb
(fd0) /dev/fd0
(hd0) /dev/hda

Und die menu.lst


###Don't change this comment - YaST2 identifier: Original name: linux###
title superSUSE 10
root (hd0,1)
kernel /boot/vmlinuz root=/dev/hda2 vga=0x31a selinux=0 resume=/dev/hda1 splash=silent showopts
initrd /boot/initrd

###Don't change this comment - YaST2 identifier: Original name: SUSE LINUX 10.0 (/dev/hdb2)###

title SUSE LINUX 10.0 (/dev/hdb2)
kernel (hd1,1)/boot/vmlinuz root=/dev/hdb2 vga=0x31a selinux=0 resume=/dev/hda1 splash=silent showopts
chainloader (hd1,1)+1

###Don't change this comment - YaST2 identifier: Original name: windows###
title Windows
map (hd0) (hd1)
map (hd1) (hd0)
rootnoverify (hd1,0)
chainloader +1

###Don't change this comment - YaST2 identifier: Original name: floppy###
title Floppy
chainloader (fd0)+1

###Don't change this comment - YaST2 identifier: Original name: failsafe###
title Failsafe -- SUSE LINUX 10.0
root (hd0,1)
kernel /boot/vmlinuz root=/dev/hda2 vga=normal showopts ide=nodma apm=off acpi=off noresume selinux=0 nosmp noapic maxcpus=0 edd=off 3
initrd /boot/initrd


Sind noch weitere Infos relevant?

Vielen Dank im voraus

thio
 

Taesi

Member
Was in solchen Fällen immer gern gemacht wird: auf der kleinen Platte, die ja wohl korrekt vom BIOS erkannt wird, eine /boot-Partition anlegen, dort Bootlader, Kernel und ggf. INITRD ablegen. Damit ist das Bootproblem erledigt, den Rest auf die große Platte. Evtl. ist ein bißchen "Handarbeit" nötig, ich weiß nicht, ob das automatische Installationen so hin bekommen.
 

admine

Ultimate Guru
Die Installation bekommt das schon hin, wenn man denn die Partitionen bei der Installation gleich so einrichtet.
Ansonsten bleibt der Weg der "Handarbeit" eine zusätzlich /boot-Partition einzurichten und alles aus dem "alten" /boot dahin kopieren.
Entsprechend danach die Konfigs anpassen - menu.lst und und fstab
 

datten

Member
Hallo thio,
um den Grub neu zu installieren, schau mal hier: http://www.linux-club.de/viewtopic.php?t=43199 .
Da Du die "alte" Platte wieder eingebaut hast, vermute ich, dass in /etc/fstab die Partitionen nicht mehr stimmen, die menu.lst musst Du dann eventuell auch noch anpassen.

Schau mal mit " ls -l " welche Partitionen Du hast.

Viel Glück. :)
 
OP
T

thio

Hacker
Vielen Dank - für den Trick mit der /boot-Partition - funktioniert jetzt einwandfrei!

Hab einfach neu von CD installiert ( das System war ja eh noch unbenutzt).
Zuerst auf der kleinen Festplatte die Linuxpartition verkleinert um dann eine ~ 8 MB "große" Partition Namens /boot erstellen zu können. Danach einfach Suse 10 einfach installiert und es funktioniert einwandfrei!

Nur Win XP lies sich nicht mehr booten (Grub Error 12, glaub ich) - musste aber nur in der menu.lst beim Windows -Eintrag:

map (hd0) (hd1)
map (hd1) (hd0)
rootnoverify (hd1,0)
makeactive
chainloader +1

ergänzen bzw. abändern


Nochmals vielen Dank für die schnelle Hilfe !
thio
 
OP
T

thio

Hacker
Ham meine PC wieder zerschossen..
Jetzt kann ich Linux von der zweiten Festplatte (= OpenSuse 10.2) nicht mehr booten (siehe oben).
Windows funktioniert (schon wieder)

Meine menu.lst
# Modified by YaST2. Last modification on Di Mär 6 07:32:28 CET 2007
default 1
timeout 8
gfxmenu (hd0,2)/message
##YaST - activate

###Don't change this comment - YaST2 identifier: Original name: linux###
title superSUSE 10
kernel (hd0,1)/boot/vmlinuz root=/dev/hda2 vga=0x31a selinux=0 resume=/dev/hda1 splash=silent showopts
initrd (hd0,1)/boot/initrd

###Don't change this comment - YaST2 identifier: Original name: openSUSE 10.2 (/dev/hdb2)###
title openSUSE 10.2 (/dev/hdb2)
kernel (hd1,1)/boot/vmlinuz root=/dev/hdb2 vga=0x31a selinux=0 resume=/dev/hda1 splash=silent showopts
chainloader (hd1,1)+1

###Don't change this comment - YaST2 identifier: Original name: windows###
title Windows
rootnoverify (hd0,0)
map (hd0) (hd1)
map (hd1) (hd0)
chainloader (hd1,0)+1

###Don't change this comment - YaST2 identifier: Original name: floppy###
title Floppy
rootnoverify (hd0,0)
chainloader (fd0)+1

###Don't change this comment - YaST2 identifier: Original name: failsafe###
title Failsafe -- SUSE LINUX 10.0 (/dev/hda2)
kernel (hd0,1)/boot/vmlinuz root=/dev/hda2 vga=normal showopts ide=nodma apm=off acpi=off noresume selinux=0 nosmp noapic maxcpus=0 edd=off 3
initrd (hd0,1)/boot/initrd
Ich tippe darauf das beim Eintag was faul ist..

###Don't change this comment - YaST2 identifier: Original name: openSUSE 10.2 (/dev/hdb2)###
title openSUSE 10.2 (/dev/hdb2)
kernel (hd1,1)/boot/vmlinuz root=/dev/hdb2 vga=0x31a selinux=0 resume=/dev/hda1 splash=silent showopts
chainloader (hd1,1)+1

Die device.map müsste passen oder?
(hd1) /dev/hdb
(fd0) /dev/fd0
(hd0) /dev/hda

Kann mir jemand helfen?

Vielen Dank im Voraus!
thio
 

towo

Moderator
Teammitglied
wenn Du das 2. Linux per chainload booten willst, ist die Angabe der Kernel Zeile falsch!
 
OP
T

thio

Hacker
Danke, aber leider weis ich noch nicht genau was ich dort (wo genau?) richtigerweise eintragen soll? Bräuchte noch einmal nen Tipp..

Meine Festplatten sehen so aus:

Die Boot Partition ist hda 3 (also: hd0,2 ???)
superSuse (wird nicht mehr verwendet) auf hda2 (--> hd0,1)
das Opensuse 10.2 das ich verwenden mag: hdb4 (--> hd1,3)
windows Datenpartition fat 32: hdb5 (-->hd1,4)
windows XP (ntfs): hdb6 (--> hd1,5)

Muss ich bei bei dem enstpechenden menu.lst eintrag: das :
durch ein
ersetzen?? (was ja hdb4 wäre, oder!? )

Aber wieso soll mein opensuse 10.2 auf hdb2 liegen? (laut menu.lst)
 

towo

Moderator
Teammitglied
Nein!

Wo hast Du denn Grub der 2. Install hin installiert?
Ein chainload will einen weiteren Bootloader aufrufen, da is nix mit Kernel!
 

pft

Advanced Hacker
so wie Du es bisher beschrieben hast, ist das mit dem chainloader doch mumpitz.

Du hast du nur eine bootloader, nämlich die boot-partition auf der 6er platte von der Du direkt den kernel booten willst.
Folglich kannst Du den chainloader eintrag knicken und durch initrd-eintrag ersetzen

Und wenn es dann läuft bitte ganz schnell sichern, sonst drehen wir uns hier noch länger im Kreis :wink:
Das ist neben anständigen Notizen was man ändert übrigens generell ein guter Rat, v.a. bei solchen Sachen
 
OP
T

thio

Hacker
Sorry - aber ich checks einfach nicht..

Hab jetzt in der menu.lst
die Zeile mit chainloader..

durch

initrd (hd1,3)/boot/initrd
ersetzt.

Resultat wie immer:

Anbei noch einmal die ganze, aktuelle menu.lst
Modified by YaST2. Last modification on Di Mär 6 11:05:57 CET 2007
default 1
timeout 8
gfxmenu (hd0,2)/message
##YaST - activate

###Don't change this comment - YaST2 identifier: Original name: linux###
title superSUSE 10
kernel (hd0,1)/boot/vmlinuz root=/dev/hda2 vga=0x31a selinux=0
resume=/dev/hda1 splash=silent showopts
initrd (hd0,1)/boot/initrd

###Don't change this comment - YaST2 identifier: Original name: openSUSE
10.2 (/dev/hdb2)###
title openSUSE 10.2 (/dev/hdb2)
rootnoverify (hd0,0)
kernel (hd1,3)/boot/vmlinuz root=/dev/hdb2 vga=0x31a selinux=0
resume=/dev/hda1 splash=silent showopts
initrd (hd1,3)/boot/initrd

###Don't change this comment - YaST2 identifier: Original name: windows###
title Windows
rootnoverify (hd0,0)
map (hd0) (hd1)
map (hd1) (hd0)
chainloader (hd1,0)+1

###Don't change this comment - YaST2 identifier: Original name: floppy###
title Floppy
rootnoverify (hd0,0)
chainloader (fd0)+1

###Don't change this comment - YaST2 identifier: Original name: failsafe###
title Failsafe -- SUSE LINUX 10.0 (/dev/hda2)
kernel (hd0,1)/boot/vmlinuz root=/dev/hda2 vga=normal showopts
ide=nodma apm=off acpi=off noresume selinux=0 nosmp noapic maxcpus=0
edd=off 3
initrd (hd0,1)/boot/initrd
 

towo

Moderator
Teammitglied
Wie wäre es mit
Code:
###Don't change this comment - YaST2 identifier: Original name: openSUSE
10.2 (/dev/hdb2)###
title openSUSE 10.2 (/dev/hdb2)
kernel (hd1,1)/boot/vmlinuz root=/dev/hdb2 vga=0x31a selinux=0 resume=/dev/hda1 splash=silent showopts
initrd (hd1,1)/boot/initrd
???
 

pft

Advanced Hacker
wir können gerne noch jeder 3 mal raten :D

aber wie wäre es wenn Du uns mal einen aktuellen, widerspruchsfreien Überblick über deine platten, Partiotionen und deren Inhalt geben würdest.
Nach Durchssicht des Thread muss ich sagen dass wir das bisher noch gar nicht hatten, dafür aber schon so manche Änderung :cry:
 
OP
T

thio

Hacker
Ok,

KDiskFree gibt folgende IInformationen aus:

Dateisystem Typ Größe Mount-Punkt Beschreibung
/dev/hda2 auto N/A /data1 Linuxpartition der 6 GB-Platte?
/dev/hda3 ext2 98MB /boot Bootpartition
/dev/hdb1 ntfs 30GB /windows/C Win XP auf der 80GB-Platte
/dev/hdb4 reiserfs 19GB / OpenSuse 10.2
/dev/hdb5 vfat 28GB /windows/D Datenpartition für Win XP

Geht es mit einem anderen Programm besser?
hab ich kein /hdb2 ??

Wie gesagt, der Bootloader sitz in hda3 der erten Platte und soll dann auf das Opensuse 10.2 in hdb4 "verweisen"..
WIndows in hbd4 startet problemlos..

Sind sonst noch irgendwelche Infos relevant?
 
OP
T

thio

Hacker
fdisk -l liefert:
Platte /dev/hda: 6448 MByte, 6448619520 Byte
15 heads, 63 sectors/track, 13328 cylinders
Einheiten = Zylinder von 945 × 512 = 483840 Bytes

Gerät boot. Anfang Ende Blöcke Id System
/dev/hda1 1 1088 514048+ 82 Linux Swap / Solaris
Partition 1 endet nicht an einer Zylindergrenze.
/dev/hda2 1089 13108 5678978 83 Linux
Partition 2 endet nicht an einer Zylindergrenze.
/dev/hda3 * 13108 13328 104422 83 Linux
Partition 3 endet nicht an einer Zylindergrenze.

Platte /dev/hdb: 82.3 GByte, 82348277760 Byte
255 heads, 63 sectors/track, 10011 cylinders
Einheiten = Zylinder von 16065 × 512 = 8225280 Bytes

__Gerät_____boot____Anfang____Ende____Blöcke_______Id___System
/dev/hdb1_____*_______1_______3838____30828703+___7___HPFS/NTFS
/dev/hdb2____________3839_____3902____514080______82__Linux Swap
/dev/hdb3____________6374____10011____29222235____f___W95 Erw. (LBA)
/dev/hdb4____________3903_____6373____19848307+__83___Linux
/dev/hdb5____________6374____10011____29222203+___b___W95 FAT32

sry, ich konnts nicht besser formatieren..
 

towo

Moderator
Teammitglied
Code:
###Don't change this comment - YaST2 identifier: Original name: openSUSE
10.2 (/dev/hdb2)###
title openSUSE 10.2 (/dev/hdb2)
kernel (hd1,3)/boot/vmlinuz root=/dev/hdb4 vga=0x31a selinux=0 resume=/dev/hda1 splash=silent showopts
initrd (hd1,3)/boot/initrd

Und Deine Partitionierung ist Schrott!
 
OP
T

thio

Hacker
Danke für den Tipp towo, habs so eingegeben - aber es funktioniert einfach nicht --> Error 18
bin ratlos

Die Partitionierung ist hald so "gewachsen"
 

towo

Moderator
Teammitglied
18 : Selected cylinder exceeds maximum supported by BIOS
This error is returned when a read is attempted at a linear block address beyond the end of the BIOS translated area. This generally happens if your disk is larger than the BIOS can handle (512MB for (E)IDE disks on older machines or larger than 8GB in general).

Die Partitionierung ist hald so "gewachsen"

Platte /dev/hda: 6448 MByte, 6448619520 Byte
15 heads, 63 sectors/track, 13328 cylinders
Einheiten = Zylinder von 945 × 512 = 483840 Bytes

Gerät boot. Anfang Ende Blöcke Id System
/dev/hda1 1 1088 514048+ 82 Linux Swap / Solaris
Partition 1 endet nicht an einer Zylindergrenze.
/dev/hda2 1089 13108 5678978 83 Linux
Partition 2 endet nicht an einer Zylindergrenze.
/dev/hda3 * 13108 13328 104422 83 Linux
Partition 3 endet nicht an einer Zylindergrenze.
Sowas nenne ich nicht gewachsen, sondern einfach nur Schrott!
 
OP
T

thio

Hacker
@towo: Sorry, ich versteh nur noch Bahnhof...
Aber se geht jetzt wieder !!
(Wieso ist mir leider auch noch schleierhaft, aber ist zunächst egal.)

meine menu.lst:
# Modified by YaST2. Last modification on Mi Mär 7 14:05:42 CET 2007
default 2
timeout 8
gfxmenu (hd0,2)/message
##YaST - activate

###Don't change this comment - YaST2 identifier: Original name: linux###
title openSUSE 10.2
root (hd0,2)
kernel /vmlinuz-2.6.18.2-34-default root=/dev/hdb4 vga=0x31a selinux=0 resume=/dev/hda1 splash=silent showopts acpi=force
initrd /initrd-2.6.18.2-34-default

title superSUSE 10 (/dev/hda2)
kernel (hd0,1)/boot/vmlinuz root=/dev/hda2 vga=0x31a selinux=0 resume=/dev/hda1 splash=silent showopts
initrd (hd0,1)/boot/initrd

###Don't change this comment - YaST2 identifier: Original name: windows###
title Windows
rootnoverify (hd0,0)
map (hd0) (hd1)
map (hd1) (hd0)
chainloader (hd1,0)+1

###Don't change this comment - YaST2 identifier: Original name: floppy###
title Diskette
rootnoverify (hd0,0)
chainloader (fd0)+1

###Don't change this comment - YaST2 identifier: Original name: failsafe###
title Failsafe -- openSUSE 10.2

title 2.6.18.6-jen44-desktop
initrd (hd0,2)/initrd-2.6.18.6-jen44-desktop

title 2.6.18.2-34-default
initrd (hd0,2)/initrd-2.6.18.2-34-default

Jetzt bloß nichts mehr ändern...

Trotzdem danke an alle die sich bemüht haben!
thio
 
Oben