# Reihenfolge von /dev/sdx

## DSeichter

Hallo,

ich habe 2 SATA Festplatten und eine USB Festplatte:

SATA1: 160GB

SATA2: 250GB

USB1: 160GB

Nun habe ich leider das Problem, dass die Reihenfolge beim Erkennen folgendermaßen aussieht:

SATA1: /dev/sdb

SATA2: /dev/sdc

USB1: /dev/sda

Mit grub habe ich nun das Problem, dass innerhalb Linux die Festplatten anders aufgelistet werden, als vom BIOS, d.h. /dev/sda ist beim Start des Rechners (eigentlich) /dev/sdc und sdb=sda und sdc=sdb, aber im Linux selbst ist es so wie oben beschrieben.

Gibt es nun eine Möglichkeit, fest zu sagen, dass

SATA1: /dev/sda

SATA2: /dev/sdb

USB1: /dev/sdc

ist, damit ich mein gentoo auf /dev/sdb starten kann und mit grub auch Windows XP auf /dev/sda starten kann?!

Das dies möglich ist, habe ich durch eine Installation von Fedora Core 6 herausgefunden (nur nicht wo!), da ich ein Linux benötigte, um Grub richtig zu konfigurieren (habe ich mit gentoo auch, nur eben mit dem Problem der Festplattenvertauscherei).

Bin über jede Hilfe sehr dankbar, da ich sehr gerne gentoo verwenden möchte, aber es an grub bzw. mit den /dev scheitert.

Vielen Dank im Voraus

Daniel

----------

## .maverick

Grub kennt diesen ganzen /dev-Kram nicht, der existiert nur im Linux. Der Bootmanager hat seine eigene Syntax dafür (zB (hd0,0)).

Was meinst du also?

Innerhalb deines Gentoo ist es sicher, dass deine Festplatte, solange du sie nicht umstöpselst, immer denselben Namen bekommt.

----------

## DSeichter

Hallo,

dass in grub von hd0,0,... gesprochen wird ist mir klar. Das was ich meine ist, ob es eine Möglichkeit gibt, in einer config-File zu sagen, dass ich quasi meinem Linux-System sagen kann, wie die Festplatten verwendet werden sollen. Ich kann grub installieren auf hd0,0, aber dies ist USB-Festplatte aus gentoo-Sicht. Für grub scheint es wohl hd2 zu sein, aber ich kann grub nicht auf /dev/sdc installieren, da ich sonst bis auf das Wort "GRUB" beim Starten nichts bekomme.

Habe schon alle 3 Festplatten mit grub versehen, aber nichts lässt mich auch nur annähernd booten (es bleibt nur ein GRUB stehen und das wars).

Da ich in Fedora Cora die Reihenfolge "richtig" habe, also so, wie ich es auch unter Windows habe und so wie ich es auch logisch nachvollziehen kann, wäre die Frage, ob ich es irgendwie ändern kann, dass eben 

hd0 = /dev/sda = SATA1

hd1 = /dev/sdb = SATA2

hd2 = /dev/sdc = USB1

ist. 

Ich werde heute abend versuchen, den durch Fedora installierten grub so zu modifizieren, dass ich mein gentoo starten kann, aber da ich Fedora nicht haben möchte, dürfte ich wohl sobald ein Update von grub vorhanden ist (in gentoo), nichts updaten.

Grüße

----------

## .maverick

Ich glaube, deine Grub-Konfiguration ist einfach kaputt. Zeig mal die grub.conf und deine Partitionierungsdaten.

----------

## DSeichter

```
grub.conf:

default 0

timeout 10

title=Windows XP

rootnoverify (hd1,0)

makeactive

chainloader +1

title=Gentoo Linux 2.6.19-r5

root (hd2,0)

kernel /boot/kernel-2.6.19-gentoo-r5 root=/dev/sdc1
```

Partition:

SATA1:

/dev/sdb1 (ntfs, Windows XP)

SATA2:

/dev/sdc1 (ext3 "/")

/dev/sdc2 (swap)

/dev/sdc3 leer

USB1:

/dev/sda1 (ntfs, verwendet für Daten)

BIOS und Windows ordnen mir allerdings

SATA1 -> SATA2 -> USB1

gentoo ordnet

USB1 -> SATA1 -> SATA2

Grüße

----------

## firefly

hmm hast du usb_storage als modul oder fest im kernel? 

bzw. Ist die USB-Festplatte beim starten des Systems angeschlossen?

----------

## blubbi

Du kannst in der grub console folgendes festlegen z.B.:

device (hd0) /dev/sdc

Ich poste dir mal meine grub.conf

Ich habe nur 2 sata festplatten, also musst du dir das so anpassen das es passt.

Wenn du windows von ner anderen Platte als grub starten willst musst du etwas tricksen

(zumindest geht es bei mir so einwandfrei)

title  Gentoo-2.6

root (hd0,0)

kernel (hd0,0)/vmlinuz irqpoll root=/dev/sda3 video=vesafb:1280x1024-32@85,mtrr,ywrap

#initrd (hd0,0)/fbsplash-livecd-2006.0-1280x1024

title  Gentoo-2.6-old

root (hd0,0)

kernel (hd0,0)/vmlinuz.old irqpoll all-generic-ide root=/dev/sda3 vido=vesafb:ywrap,mtrr

#initrd (hd0,0)/splash-livecd-2005.0-1280x1024

title=Memtest86Plus

root (hd0,0)

kernel /boot/memtest86plus/memtest.bin

title=Windows XP Pro

map (hd0) (hd1)         # Tell the first hard drive to pretend to be the second

map (hd1) (hd0)         # Tell the second hard drive to pretend to be the first

root (hd1,0)            # Tell GRUB Windows is on /dev/hdb1 (No pretending here)

rootnoverify (hd1,0)    # GRUB won't attempt to mount the Windows drive

makeactive              # Sets the partition to active

chainloader +1          # Tells GRUB to load the Windows bootloader when done

----------

## DSeichter

vorerst gelöst!

Erstmal vielen Dank! Der device Befehl hat mir weitergeholfen, wenn auch nur kurzzeitig, da ich mich primär gefragt habe, warum will ich eigentlich die USB-Platte angeschlossen haben, wenn ich darauf sowieso nur von Windows aus zugreife. Habe die Platte nun abgezogen und siehe da, sda und sdb heissen meine Festplatten und grub-install /dev/sda macht dann auch das, was es soll und schon kann ich davon booten.

Was mir dennoch nicht gefällt:

Ich habe die USB Platte ausgesteckt, im Kernel ist das Modul usb_storage  fest compiliert. Wie kann ich nun sagen, dass er USB hinten anhängen soll, statt noch vorne zu stellen?

----------

## blubbi

Das hab ich mich auch schon gefragt....

Ich hab da auch schon boes in die k.... getreten indem ich ne USB-Platte während dem booten angesteckt hatte.

Danach habe ich alle platten via UUID gemounted.

Schoen ist das trozdem nicht.

Wenn du aber den USB-Treiber als Modul compilierst dann werden die USB-Platten NACH allen "internen" Platten erkannt (sofern der Treiber dafür im Kernel ist oder das Modul VOR dem USB treiber geladen wird)

Grüße

blubbi

----------

## Child_of_Sun_24

Hi,

würde auch sagen usb-storage als Modul beim Kernel einstellen und von der /etc/modules.autoload.d/kernel-2.6 datei beim Booten laden lassen.

Auf diese art und weise wird die USB-Festplatte beim Kernel-Booten nicht geladen und die Sata Platten bekommen ihre bezeichnungen vor der USB-Festplatte, diese wird dann beim initialisieren des Systems geladen und sollte sich dann mit /dev/sdc hinten anstellen.

Viel erfolg,

CoS24

*edit* P.S. Hatte das selbe Problem mal mit nem USB-Stick, war echt lustig  :Smile: 

----------

## DSeichter

Hallo,

dann werde ich die USB-Unterstützung mal als Modul compilieren und erneut versuchen, mit eingesteckter USB-Festplatte zu booten. Es muss ja schließlich eine Lösung dafür geben *G*

Mal schauen, ob ich heute noch dazu komme, um berichten zu können, ob alles geklappt hat oder nicht.

Grüße

Daniel

----------

## blubbi

Du kannst auch per UUID mounten.

Jede Partition bekommt beim erstellen eine eigene UUID. Damit ist es egal in welcher Reihenfolge die Plattern erkannt werden:

fstab sieht dann so aus:

 *Quote:*   

> 
> 
> UUID=.....      /mnt/?    ext3     rw,auto 1   2
> 
> 

 

Die UUID bekommst du mit 

```
dumpe2fs -f /dev/hda1 | grep UUID
```

In der console geht das dann mit 

```
mount -U ? /mnt/?
```

Ich bin mir nicht ganz sicher ob es bei grub mit dem Kernelparameter für root funktioniert "root=UUID=...." aber nen Versuch ist es wert und gedsehen hab ich es auch schon!

Grüße

blubbi

----------

