GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Wie tauscht man /dev/sda mit /dev/sdb aus?

Ich habe das gleiche Problem den sda auszutauschen und sdb Datenträgername. Ich habe versucht, einige ähnliche udev-Regeln mit dem obigen Beitrag auf meinen eigenen HP-Servern zu schreiben. Aber ich habe die Größe der Festplatte in /etc/udev/rules.d/00-corrections.rules verwendet

KERNEL=="sd?", ATTR{size}=="781357232", NAME="sda"
KERNEL=="sd??", ATTRS{size}=="781357232", NAME="sda%n"
KERNEL=="sda", ATTR{size}=="3125515952", NAME="sdb"
KERNEL=="sda?", ATTRS{size}=="3125515952", NAME="sdb%n"

Vor dieser Regel finde ich die Größe von Geräten durch cat /sys/block/sda/size und cat /sys/block/sdb/size die hier beschrieben wird:Informationen von sysfs finden.

Aber wenn ich versuche, die udev-Regel mit udevadm test /sys/block/sdb zu testen Ich sehe diese Zeile in der Ausgabe:

NAME="sda" wird ignoriert, Kernel-Geräteknoten können nicht umbenannt werden; bitte korrigieren Sie es in /etc/udev/rules.d/00-corrections.rules:1

Ich habe Ubuntu 18.04 und ich habe festgestellt, dass das unmöglich ist (zumindest in Ubuntu 18.04) basierend auf diesem Beitrag:Gibt es eine Möglichkeit, Gerätenamen im /dev-Verzeichnis zu ändern?


Heutzutage füllt der Linux-Kernel dynamisch /dev/ gemäß den UDEV-Regeln.

Lassen Sie mich zunächst erklären, wie Gerätedateien funktionieren. Jede Gerätedatei, typischerweise eine Blockgerätedatei, hat eine Haupt- und eine Nebennummer. Diese Zahlen beschreiben tatsächlich, auf welches Gerät die Datei verweist. Der Name spielt dabei keine Rolle. Werfen wir einen Blick auf unseren speziellen Fall von Festplatten:

# ls -l sd*
brw-rw---- 1 root disk 8, 0 Aug 22 15:45 sda
brw-rw---- 1 root disk 8, 1 Aug 22 15:45 sda1
brw-rw---- 1 root disk 8, 2 Aug 22 15:45 sda2
brw-rw---- 1 root disk 8, 3 Aug 22 15:45 sda3
brw-rw---- 1 root disk 8, 5 Aug 22 15:45 sda5
brw-rw---- 1 root disk 8, 6 Aug 22 15:45 sda6

Hier sehen Sie, dass meine erste Platte verschiedene Partitionen hat und dass ich am 22. August um 15 Uhr gebootet habe, als der Kernel die Dateien gemäß den Regeln erstellt hat. Sie können auch sehen, dass die Major-Nummer 8 ist und die Minor-Nummern für den Zugriff auf Partitionen verwendet werden (0 zeigt auf die gesamte Festplatte). Das 'b' am Anfang jeder Zeile weist darauf hin, dass es sich jeweils um eine spezielle "Block Device"-Datei handelt.

Wie gesagt, der Kernel erstellt die Dateien "heute" dynamisch. Das war nicht immer so und ist auf anderen Unix-Systemen nicht so. Dort würden Dateien statisch erstellt, und der Benutzer würde diese Dateien erstellen oder manipulieren.

Es ist durchaus möglich, eigene Gerätedateien mit eigenem Namen und Major/Minor-Nummern zu erstellen. Siehe mknod (man mknod ) dafür. Nach dem erneuten Booten werden Ihre benutzerdefinierten Dateien jedoch verschwinden.

Die zweite Möglichkeit besteht darin, die UDEV-Regeln zu ändern. Die Regeln werden beim Systemstart abgearbeitet und garantieren Ihnen ein dauerhaft konsistentes Verhalten. Eine gute Anleitung zu diesen Regeln finden Sie hier:http://www.reactivated.net/writing_udev_rules.html

Sie werden sehen, dass es möglich ist, eine Regel zu definieren, die "sda*" erstellt, wenn bestimmte Hardwareinformationen zu Ihrem Gerät passen. Sie müssen die ursprünglichen Regeln, die sda ​​erstellen würden, durch Ihre ersetzen. Wie das funktioniert, hängt von Ihrer Distribution ab.

Da ich denke, dass dies ein gefährliches Geschäft für den Anfänger ist, werde ich Ihnen keine spezifischen Schritte erklären; das Dokument, das ich oben verlinkt habe, wird Ihnen alle Informationen geben, die Sie brauchen, und Sie sollten es wirklich alle lesen.


Linux
  1. So ersetzen Sie eine ausgefallene Festplatte in einem Linux-Software-RAID

  2. So generieren Sie ein zufälliges Passwort unter Linux mit /dev/random

  3. Linux:Unterschied zwischen /dev/console , /dev/tty und /dev/tty0?

  4. Wann sollte /dev/random vs. /dev/urandom verwendet werden?

  5. Wie kann /dev/random oder /dev/urandom mit base64 codiert werden?

tty (/dev/tty ) vs. pts (/dev/pts) unter Linux

Wie behandelt Linux mehrere aufeinanderfolgende Pfadtrennzeichen (/home////username///file)?

Wie portabel sind /dev/stdin, /dev/stdout und /dev/stderr?

So ordnen Sie /dev/sdX- und /dev/mapper/mpathY-Geräte vom /dev/dm-Z-Gerät zu

Wann sollte ich /dev/shm/ verwenden und wann sollte ich /tmp/?

DD von /dev/zero nach /dev/null ... was eigentlich passiert