Das Festplattengerät ändert sich nach jedem Neustart

3059
ZelluX

Ich habe eine SATA-Festplatte und eine IDE-Festplatte auf meinem Desktop-Computer. Ich habe Windows 7 auf der SATA-Festplatte installiert, während ArchLinux in der IDE auf der IDE-Festplatte installiert ist.

In ArchLinux / etc / fstab habe ich das Root-Mount-Gerät als / dev / sda2 anstelle von / dev / sdb2 festgelegt, wie im ArchLinux-Setup-Programm erkannt.

Bei jedem Booten von grub in ArchLinux besteht jedoch die Möglichkeit, dass initrd nicht aus / dev / sda2 lesen kann, da / dev / sda anscheinend die Windows 7-Platte anstelle der ArchLinux-Platte ist. Aber manchmal funktioniert es, da / dev / sda das ArchLinux-System wird. Mit anderen Worten, ob die ArchLinux-Diskette / dev / sda oder / dev / sdb ist, unterscheidet sich nach dem Neustart.

Ich frage mich, ob es hilfreich ist, die UUID zu verwenden, um die Partition anstelle des Gerätepfads auszuwählen. Und gibt es eine andere Lösung für dieses Problem?

3

3 Antworten auf die Frage

2
Crankyadmin

Die Verwendung der UUID ist immer die bessere Option. Aber das gesagt wird, dein Problem kommt von dir uDev. Einige ältere Sata-Controller brauchen etwas Zeit, um hochgefahren zu werden. Zu diesem Zeitpunkt hat udev das IDE-Laufwerk bereits gefunden und als erstes Laufwerk verwendet. Obwohl ich glaube, dass dies nur von Cold-Boot ist.

Bei der Arbeit mit Coreboot bin ich oft auf dieses Problem gestoßen und die einzige wirkliche Lösung, die ich gefunden habe, war, das System für einige Sekunden anzuhalten (Mein 1 TB hat alles in den 20 Sekunden benötigt), damit die Laufwerke hochfahren konnten.

Hoffe es hilft irgendwie!

1
quack quixote

In den Antwortzuständen von Crankyadmin ist die Identifizierung einer Partition anhand der UUID der Verwendung von Gerätepfaden vorzuziehen.

Eine andere Alternative besteht darin, anhand der Partitionsbezeichnung zu identifizieren. Ich ziehe dies der UUID vor, da sie viel lesbarer ist. Sie müssen jedoch sicherstellen, dass Ihre Partitionen eindeutige Bezeichnungen verwenden. Einige Zeichen, die ansonsten für Partitionsbezeichnungen zulässig sind, können für diese Verwendung problematisch sein (insbesondere Leerzeichen funktionieren möglicherweise nicht) Gut).

Sie können Ihren ext (2,3,4) -Partitionen Beschriftungen hinzufügen tune2fs -L <new-label> <device>oder zur Formatierungszeit, indem Sie die -L <new-label>Option mit verwenden mkfs.ext(2,3). Verwenden Sie Labels wie UUIDs in beiden /etc/fstabund /boot/grub/menu.lst:

# fstab w/ UUID UUID=3a9a1209-47de-4959-8ba6-9724e4c3eb37 / ext3 defaults,errors=remount-ro 0 1  # fstab w/ label LABEL=arch-root / ext3 defaults,errors=remount-ro 0 1   # GRUB config w/ UUID kernel /boot/vmlinuz-2.6.20-15-generic root=UUID=3a9a1209-47de-4959-8ba6-9724e4c3eb37 ro quiet splash  # GRUB config w/ label kernel /boot/vmlinuz-2.6.20-15-generic root=LABEL=arch-root ro quiet splash 
0
JJC

Ich stimme den vorherigen Kommentaren zur Verwendung von UUIDs anstelle von / dev / sdX in Ihren Konfigurationen zu (z. B. in / etc / fstab). Obwohl dies eine alte Frage ist, dachte ich, ich würde diese Seite mit Ihnen teilen, wenn ich heute mit einem ähnlichen Problem zu tun habe. Es scheint eine gute Referenz für die Verwendung von UUIDs (oder Labels zu sein, falls Sie diese bevorzugen).