Festplattenbenennung in Linux?

1185
Billylegota

Versucht Linux, einem Laufwerk jedes Mal denselben Buchstaben zu geben?
Wenn Sie zum Beispiel zwei Laufwerke an meinen Computer anschließen und sie dann in umgekehrter Reihenfolge trennen und wieder anschließen, würden sdb und sdc denselben physischen Laufwerken entsprechen?

Das ist was ich will:

First:  Plug in HDD A, which becomes sdb. Plug in HDD B, which becomes sdc.   Then: Plug in HDD B, which becomes sdc. Plug in HDD A, which becomes sdb. 

Die Frage ist, macht Linux dies automatisch? Wenn nicht, wie würde ich so etwas tun? (Ich möchte drei Laufwerke haben, die in jeder Reihenfolge initialisiert werden können, aber immer noch am selben Punkt montiert sind).

5

1 Antwort auf die Frage

12
grawity

Nein, die sd*Namen werden nacheinander zugewiesen, je nachdem, welche Festplatte zuerst erkannt wurde.

Wenn Sie einen dauerhaften Namen benötigen, stellt udev diese bereits auf der Grundlage mehrerer Eigenschaften bereit, z. B. Dateisystembezeichnungen / UUIDs. Partitionsbezeichnungen / UUIDs (nur GPT); Disk-Attachment-Pfade; SCSI-WWNs; und so weiter.

Schauen Sie sich an /dev/disk:

┌ Regen ~  ┘ Baum / dev / disk / / dev / disk / ├── by-id (hardwarebasierte ID) Ata-SlimtypeDVD_A_DS8A5SH_012160166091 -> ../../sr0 Ata-ST9640320AS_5WX1ZH91 -> ../../sda Ata-ST9640320AS_5WX1ZH91-part7 -> ../../sda7 Mmc-SD4DE_0x0054b5cf -> ../../mmcblk0 Mmc-SD4DE_0x0054b5cf-part1 -> ../../mmcblk0p1 Wwn-0x5000c5002f0e9ce1 -> ../../sda Wwn-0x5000c5002f0e9ce1-part1 -> ../../sda1 │ └──… ├── by-label (Name im Header des Dateisystems codiert) ├── ├── keycard -> ../../mmcblk0p1 ├── ├── raindows -> ../../sda6 H ├── rainhome -> ../../sda5 │ └──… ├── by-partlabel (Name in GPT-Partitionstabelle codiert) ├── ├── Bogen -> ../../sda4 │ ├── EFI -> ../../sda1 ├── ├── home -> ../../sda5 ├── ├── Swap -> ../../sda8 │ └──… ├── by-partuuid (UUID in GPT-Partitionstabelle codiert) 14420948-2cea-4de7-b042-40f67c618660 -> ../../sda4 1c737f60-8667-4d1a-9c92-5f5caf69be60 -> ../../sda3 267bbb83-0bb5-48b8-aa4c-ffe328328f5b -> ../../sda5 │ └──… └── by-uuid (UUID im Dateisystemheader codiert) C 0C5C17E25C17C57C -> ../../sda7 413b42fe-77f7-41d0-8d40-a7578f70995d -> ../../sda4 4b30e8db-563e-4947-8d41-f242d94a6d3a -> ../../mmcblk0p1 8594cc4c-9c42-436a-8723-9a0611b1f97d -> ../../sda5 └──… 

Sie können sie als solche verwenden:

/dev/disk/by-label/arch_boot /boot ext4 rw,auto 0 1 

In fstab funktioniert eine alternative Syntax auch für labelund uuidFelder:

LABEL=arch_boot /boot ext4 rw,auto 0 1 

Hinweis: In einigen älteren Linux-Distributionen versuchen verschiedene udev-Regeln, die sd*Namen dauerhaft zu machen . Aber es kann nicht zuverlässig funktionieren. Oft schlägt die "Umbenennung" fehl, weil einer anderen Festplatte der gewünschte Name zugewiesen wurde. Diese Funktion wurde in späteren udev-Versionen entfernt. Verlassen Sie sich nicht darauf, dass die sd*Namen dauerhaft sind, auch wenn sie scheinbar sind.

Alle meine persistenten Festplatten werden von der UUID oder über LVM (die die UUID der darunter liegenden PV verwendet) eingehängt. Das beinhaltet / boot. Was passiert schließlich, wenn Sie eine andere Festplatte von einem anderen Linux-System aus anschließen (was Sie vielleicht auch tun werden)? In jedem Fall sollten Sie niemals mit der Konsistenz der `sd *` -Namen rechnen. Michael Hampton vor 9 Jahren 0
Ich könnte also einfach ein Shellskript verwenden, um die UUID einer Festplatte zu betrachten und sie basierend auf ihrer UUID an einen bestimmten Punkt zu mounten, oder? EX: wenn uuid == xxxxxxxxxx dann mount / dev / sdb / was auch immer / mein / mount / point / ist Billylegota vor 9 Jahren 0
@Billylegota: Nicht wahr? Nein. Sie können UUIDs direkt in / etc / fstab verwenden. Ich habe sogar zwei Beispiele dafür gegeben. Wofür benötigen Sie ein Shell-Skript? grawity vor 9 Jahren 0
@grawity: Sorry, habe diesen Teil nicht gesehen. Ich sah gerade den Baum von / dev / disk und sagte "sieht aus wie ein Job für bash"; D Billylegota vor 9 Jahren 0
Gibt es eine Möglichkeit, die Festplatte statt der Partition konsistent zu bekommen? / dev / sda statt / dev / sda1? sep332 vor 8 Jahren 0
@ sep332: Für beide gibt es By-Id- und By-Path-Namen. (Bei einigen udev-Regelanpassungen könnte es auch Bezeichnungen geben, die von diskuuid stammen.) grawity vor 8 Jahren 0