Warum verwendet fstab UUID anstelle des tatsächlichen Dateisystemnamens?

Warum verwendet fstab UUID anstelle des tatsächlichen Dateisystemnamens?

Dies ist beispielsweise die erste Zeile meines /etc/fstab:

UUID=050e1e34-39e6-4072-a03e-ae0bf90ba13a    /    ext4    errors=remount-ro    0    1

Und hier ist die Ausgabe des df -hBefehls (mit Meldung des freien Speicherplatzes):

honey@bunny:~$ df -T

Filesystem     Type     1K-blocks    Used Available Use% Mounted on
/dev/vda       ext4      30832636 4884200  24359188  17% /
none           tmpfs            4       0         4   0% /sys/fs/cgroup
udev           devtmpfs    498172      12    498160   1% /dev
tmpfs          tmpfs       101796     320    101476   1% /run
none           tmpfs         5120       0      5120   0% /run/lock
none           tmpfs       508972       0    508972   0% /run/shm
none           tmpfs       102400       0    102400   0% /run/user
  1. Kann man aus den beiden schließen, dass UUID=050e1e34-39e6-4072-a03e-ae0bf90ba13adarstellt /dev/vda, wenn die erste Spalte in fstabist <file system>?

  2. Wäre es also okay, wenn ich /etc/fstabdas ändern würde?

    /dev/vda    /    ext4    errors=remount-ro    0    1
    
  3. BEARBEITEN:Wenn ja (zur obigen Frage), warum sudo blkidzeigt der Befehl eine andere UUID für an /dev/vda?

    $ sudo blkid
    
    /dev/vda: LABEL="DOROOT" UUID="6f469437-4935-44c5-8ac6-53eb54a9af26" TYPE="ext4"
    

    Was übersehe ich hier?

    Antwort:Ich würde zu dem Schluss kommen, dass (3) ein Fehler in der Cloud meines Hosts ist. Also ja, die von blkid(oder ls -l /dev/disk/by-uuid) gemeldete UUID sollte dieselbe sein wie die in verwendete /etc/fstab.

Antwort1

Der Vorteil der Verwendung der UUID besteht darin, dass sie unabhängig von der tatsächlichen Gerätenummer ist, die das Betriebssystem Ihrer Festplatte zuweist.

Stellen Sie sich vor, Sie fügen dem System eine weitere Festplatte hinzu und aus irgendeinem Grund entscheidet das Betriebssystem, dass Ihre alte Festplatte jetzt sdbanstelle von ist sda.

Ihr Bootvorgang würde durcheinander geraten, wenn fstabauf den Gerätenamen verwiesen würde. Aber im Fall der UUIDs ist es in Ordnung.

Ausführlichere Informationen zu UUIDs finden Sie auch im Blogbeitrag„UUIDs und Linux: Alles, was Sie jemals wissen müssen“

Antwort2

Kann ich in diesem Fall /etc/fstab entsprechend ändern?

Dudürfenund es wirdwahrscheinlichwäre ok, aber höchstwahrscheinlich wäre es besser, die UUID zu belassen.

UUIDssind beliebige Zeichenfolgen, die in diesem Fall zur Identifizierung einer Partition auf einem Blockgerät verwendet werden. Sie werden mit der Partition selbst gespeichert und können bei Bedarf einer anderen zugewiesen werden (ähnlich wie MAC-Adressen).

Der Vorteil der Verwendung der UUID ist, dass sie eindeutig ist, während /dev/vdadies nicht der Fall ist.könntepassieren, dass es beim Booten ein anderes Laufwerk ist, obwohl dies rein theoretischer Natur sein kann (z. B. weil Sie nur ein Laufwerk eines bestimmten Typs haben).

Ein weiteres, subtileres Beispiel dafür, dass die Verwendung des Gerätenamens ein Problem darstellen kann, ist die kürzlich erfolgte Umstellung einiger Systeme auf die Verwendungkonsistente Netzwerkgerätenamen. Wenn dies als Upgrade passiert und Sie irgendwo in einem Netzwerkskript einen fest codierten Gerätenamen verwendet haben, würde es abstürzen. Ein paralleles Beispiel für Blockgeräte könnte ein Kernel- oder Udev-Upgrade sein, das das Benennungsschema ändert.

Ein Zweck von UUIDs ist es, solche Dinge möglich und schmerzlos zu machen. Während Sie alsodürfenden Gerätenamen verwenden, es gibt keinen Vorteil, dies zu tunes sei denn(zB) Sie haben ein System, in dem Sie verschiedene Laufwerke austauschen. Mit anderen Worten, wenn Sie keinen guten Grund dafür haben,Bleiben Sie bei der UUID.

Antwort3

Sie können man fstabsich einen recht kompakten Überblick über den Inhalt und die Semantik der /etc/fstabDatei verschaffen. Auf meinem x86, einem recht aktuellen Arch-Linux-Server, man fstaberhalte ich Folgendes:

The second field ... describes  the mount point for the filesystem.

Also, ja, /dev/vdaes handelt sich offensichtlich um einen von vielen Namen für ein bestimmtes Gerät, ebenso wie UUID=050e1e34-39e6-4072-a03e-ae0bf90ba13a, da beide Namen auf "/" gemountet zu sein scheinen.

Wenn Sie im Verzeichnis nachsehen, /dev/disk/by-uuid/können Sie symbolische Links sehen, die auf Dinge wie /dev/sda1, /dev/sdb1auf meinem Server verweisen. Dies könnte eine weitere Möglichkeit sein, Ihre Hypothese zu überprüfen. /dev/diskhat Unterverzeichnisse by-id, by-path, by-uuiddie alle alternative Namen für dasselbe Gerät zu sein scheinen.

verwandte Informationen