- Linux Verwenden Sie UUIDs, um Partitionen unabhängig vom Gerätenamen /dev zuverlässig zu identifizieren.
- Tools wie blkid, /dev/disk/by-uuid, lsblk oder GParted ermöglichen das einfache Nachschlagen von UUIDs.
- Das Ändern von UUIDs erfordert die Verwendung von Hilfsprogrammen wie uuidgen und tune2fs sowie die Aktualisierung von /etc/fstab und anderen Dateien.
- Beim Klonen von Systemen empfiehlt es sich, die UUIDs neu zu generieren und fstab, crypttab und GRUB zu überprüfen, um Konflikte zu vermeiden.
Wenn unter Linux seltsame Probleme auftreten, wie etwa Bootprobleme, endlose Wartezeiten oder Festplatten, die zuvor problemlos eingebunden wurden und nun nicht mehr erkannt werden, ist die Ursache oft dieselbe: ein UUID geändert oder falsch konfiguriertZu wissen, wie man diese Kennungen findet, versteht und ändert, ist fast schon ein Initiationsritus für jeden, der ein GNU/Linux-System mit mehreren Festplatten oder Partitionen verwaltet.
In diesem Artikel werden wir uns das genauer ansehen. Wie Sie die UUID Ihrer Laufwerke überprüfen und wie Sie sie sicher ändern können Und welche Systemdateien Sie überprüfen sollten, um sicherzustellen, dass alles weiterhin ordnungsgemäß startet. Sie werden sehen. Befehle als blkid, ls -l /dev/disk/by-uuid, uuidgen, tune2fswie sie sich auf /etc/fstabWas geschieht mit der Swap-Partition und was ist zu beachten, wenn man ein komplettes System mit Tools wie Clonezilla klont?
Was ist eine UUID und wozu wird sie in Linux verwendet?
Der Begriff UUID (Universally Unique IDentifier) Es handelt sich um einen universell eindeutigen 128-Bit-Identifikator (16 Byte). In seinem gebräuchlichsten Format wird er als Zeichenkette angezeigt. 32 Hexadezimalziffern unterteilt in fünf durch Bindestriche getrennte Gruppen, gemäß folgendem Muster 8-4-4-4-12Das ergibt insgesamt 36 Zeichen inklusive Bindestrichen. Ein typisches Beispiel wäre etwa so: 123e4567-e89b-12d3-a456-426614174000.
In GNU/Linux-Systemen ist diese Kennung jedem System zugeordnet. Gerät Lagerung oder Partition (ext4, XFS, Swap-Partitionen usw.) und dient dazu, unabhängig vom klassischen Gerätenamen auf diese zu verweisen (/dev/sda1, /dev/nvme0n1p2usw.), was sich ändern kann, wenn Sie Festplatten anschließen oder trennen. Auf diese Weise kann das System immer dieselben Partitionen einbinden wobei die Reihenfolge, in der die Scheiben erkannt werden, variieren kann.
Nicht alle Partitionen haben exakt dasselbe UUID-Format: zum Beispiel in Partitionen mit dem Format NTFS Es ist üblich, 16 Hexadezimalziffern ohne Bindestriche (64 Bit), während in Partitionen FAT32 Der Bezeichner kann haben 8 HexadezimalziffernDennoch werden sie in der Praxis unter Linux weiterhin als eindeutige Kennungen für jedes Volume behandelt.
Eine der wichtigsten Anwendungen dieser Codes ist die Datei /etc/fstab, wo sie definiert sind Befestigungspunkte und Montageoptionen in jeder Partition. Dort finden Sie üblicherweise eine Spalte mit Einträgen des Typs UUID=xxxx-xxxx... statt /dev/sdXgenau um Stabilität zu erreichen und Überraschungen bei Änderungen zu vermeiden Hardware.
Methoden zum Anzeigen der UUID Ihrer Festplatten unter Linux
Bevor Sie irgendetwas ändern, sollten Sie genau wissen, welche Partitionen Sie haben und welche UUIDs diese besitzen. Linux bietet hierfür verschiedene Tools an, wie zum Beispiel … geteiltzu Überprüfen Sie die UUIDs aller Datenträger. Die Verbindung erfolgt sowohl über die Kommandozeile als auch über grafische Hilfsprogramme.
UUID mit dem Befehl blkid abfragen
Eine der direktesten Möglichkeiten, Kennungen anzuzeigen, ist die Verwendung von schwarzDieser Befehl erfordert Administratorrechte, daher müssen Sie ihn mit sudo oder als Benutzer WurzelWenn Sie es ohne Parameter starten, listar Sie können alle erkannten Geräte verwenden:
sudo blkid
La Ausgang Es werden üblicherweise Zeilen wie diese angezeigt:
/dev/sda1: UUID="8aa6c0d2-c18e-4606-b1da-f5f1f7617f00" TYPE="xfs" PARTUUID="..."
Jede Zeile ist mit einem verknüpft Gerät /dev mit UUID, die Art des Dateisystems (ext4, xfs, vfatusw.) und andere Metadaten wie z. B. PARTUUIDWenn Sie nur nach einem bestimmten Gerät filtern möchten, können Sie dies als Parameter angeben:
sudo blkid /dev/sda1
Wenn Sie die UUID der gewünschten Partition ermitteln möchten, ohne alle Zeilen überprüfen zu müssen, können Sie Folgendes verwenden: grepUm beispielsweise die Kennung von /dev/sdd4:
sudo blkid | grep sdd4
Dieselbe UUID Es ist dasjenige, das Sie später sehen werden in /etc/fstab wenn diese Partition so konfiguriert ist, dass sie automatisch eingebunden wird StartenDeshalb ist es wichtig, dies ganz klar zu formulieren. welche Linie jedem Montagepunkt entspricht.
Verwenden Sie das Verzeichnis /dev/disk/by-uuid, um Links anzuzeigen.
Eine weitere sehr praktische Möglichkeit, die UUID jeder Partition zu ermitteln, besteht darin, den Inhalt des Verzeichnisses aufzulisten. /dev/disk/by-uuid/In diesem Verzeichnis erstellt das System symbolische Links wobei jeder Dateiname die UUID eines Geräts ist und der Link auf das tatsächliche Gerät verweist. /dev/.
Zu sehen die gesamte Liste einfach ausführen:
sudo ls -l /dev/disk/by-uuid/
Der Ausgang wird Ihnen zeigen Etwas wie:
lrwxrwxrwx 1 root root 10 ... 8aa6c0d2-c18e-4606-b1da-f5f1f7617f00 -> ../../sda1
So können Sie auf einen Blick sehen, was Die UUID entspricht jedem /dev-Gerät. und vergleichen Sie diese Informationen mit den Angaben in /etc/fstab oder mit dem, was andere Tools anzeigen, wie zum Beispiel lsblk o gpartedEs ist besonders nützlich, wenn Sie Probleme in der Assemblierung beheben oder Fehler in Konfigurationsdateien korrigieren.
UUIDs und Mountpunkte mit lsblk anzeigen
Der Befehl lsblk Es ist ein sehr praktisches Werkzeug zur Anzeige der Beziehungen zwischen Festplatten, Partitionen, logischen Volumes und deren Mount-PunkteObwohl es in erster Linie nicht zur Anzeige von UUIDs dient, kann es mit einigen Optionen kombiniert werden, um einen recht vollständigen Überblick über das Speichersystem zu erhalten.
Ein typischer Aufruf sähe so aus:
lsblk -o NAME,MOUNTPOINT,TYPE
In der Spalte EINHÄNGEPUNKT Sie werden Routen wie diese sehen /, /home, /boot, /mnt/datosusw. Von dort aus können Sie herausfinden Welches Gerät möchten Sie überprüfen? und dann verwenden blkid oder überprüfen /dev/disk/by-uuid um dessen Kennung anzuzeigen. Dies ist besonders nützlich, wenn das System Laufwerke in ungünstigen Pfaden einbindet (z. B. einige NAS-Geräte oder Tools wie OpenMediaVault, die in … einbinden). /srv/ mit langen Namen wie dev-disk-by-uuid-XXXX).
UUID über /etc/fstab abfragen
Eine weitere Möglichkeit, schnell herauszufinden, welche UUIDs auf Ihrem System verwendet werden, besteht darin, die Datei zu überprüfen. /etc/fstab, die definiert welche Partitionen eingebunden sind und wo während des Startvorgangs. Sie können dies mit folgendem Befehl überprüfen:
cat /etc/fstab
Darin finden Sie Zeilen wie die folgenden:
UUID=8aa6c0d2-c18e-4606-b1da-f5f1f7617f00 /backups xfs rw,noquota,nofail 0 1
Die erste Spalte verwendet die UUID als Partitionskennung, gefolgt von der Einhängepunktist die Dateisystemtyp (in diesem Beispiel, xfs) und der Befestigungsmöglichkeiten (rw,noquota,nofailusw.). Prüfen /etc/fstab Es ist ratsam, gelegentlich nachzuprüfen, insbesondere nach dem Austausch von Festplatten, dem Neupartitionieren oder der Neuinstallation von Systemen, um sicherzustellen, dass die UUIDs noch mit den tatsächlichen übereinstimmen.
Außerdem ein einfaches:
cat /etc/fstab | grep UUID
wird Ihnen ermöglichen, zu finden Finden Sie schnell alle Einträge, die durch die UUID identifiziert werden. Dies ist besonders nützlich, wenn Sie vermuten, dass ein Bezeichner veraltet ist und Startprobleme verursacht.
Typische UUID-Probleme: lange Bootzeiten und gemeinsam genutzter Swap-Speicher
Eines der häufigsten Symptome einer falsch konfigurierten UUID ist, dass Das System hängt sich beim Start auf. Für eine gewisse Zeit, meist etwa anderthalb Minuten, werden Meldungen angezeigt, die darauf hinweisen, dass eine bestimmte Partition nicht gefunden werden kann. Nach dieser Wartezeit wird der Bootvorgang fortgesetzt, die problematische Partition wird jedoch nicht eingebunden.
Dies geschieht normalerweise, wenn in /etc/fstab Es gibt einen Eintrag mit einem UUID, die nicht mehr existiertMöglicherweise liegt es daran, dass Sie eine Festplatte ausgetauscht, eine Partition formatiert oder eine andere Distribution auf derselben Festplatte neu installiert haben, wodurch eine neue Kennung generiert wurde. Das System versucht, diese Partition mit einer UUID einzubinden, die niemandem zugeordnet ist, und wartet, bis diese abläuft. die zeit.
Ein recht häufiger Fall tritt auf, wenn man ein/e duales System (zum Beispiel Ubuntu und Debian) teilen sich dieselbe Partition linux-swapStellen Sie sich eine Festplatte mit drei Partitionen vor: sdc1 wie Tauschen, und sdc2 y sdc3 als Root-Partitionen in ext4 für Ubuntu bzw. Debian. Wenn Sie Ubuntu zuerst installieren in sdc3 und dann Debian in sdc2Es ist üblich, dass der Debian-Installer Formatieren Sie den Swap-Speicher neu und ändern Sie dessen UUID..
Das Ergebnis ist, dass das zuerst installierte System (in diesem Beispiel Ubuntu) in seiner /etc/fstab un Alte UUID für SwapBeim Hochfahren sucht der Computer nach der Partition mit der nicht mehr existierenden Kennung, wartet die maximale Zeit ab, betrachtet sie als verloren und fährt mit dem Hochfahren fort, ohne den Auslagerungsspeicher einzubinden. Das ist zwar nicht tragisch, führt aber zu Leistungseinbußen und unnötigem RAM-Verbrauch.
Zur Diagnose solcher Fälle können Sie grafische Hilfsmittel wie beispielsweise verwenden GPartedFalls es nicht installiert ist, können Sie es auf Debian-basierten Distributionen wie folgt installieren:
sudo apt install gparted
Sobald Sie GParted gestartet haben, wählen Sie die Festplatte aus und klicken Sie mit der rechten Maustaste auf die Swap-Partition, um die entsprechende Option auszuwählen. InformationenDort finden Sie Informationen wie den Gerätenamen (sdc1), der Typ ( )linux-swap) Und der aktuelle UUIDDas ist die Kennung, die auch in der /etc/fstab jedes Systems, das diesen Tausch verwendet.
Die Lösung besteht in der Bearbeitung der /etc/fstab des Systems, das eine veraltete UUID hat (zum Beispiel Ubuntu) und Ersetzen Sie die alte UUID durch die neue. die Sie in GParted oder mit blkidSie können dies beispielsweise mit Ihrem bevorzugten Editor tun:
sudo nano /etc/fstab
Nach dem Speichern der Änderungen findet das System beim nächsten Start die korrekte Swap-Partition und der Startvorgang verläuft wieder reibungslos. Dasselbe Verfahren gilt für jede andere Partition deren UUID sich aufgrund einer Neuinstallation, Formatierung oder eines fehlerhaft ausgeführten Klonvorgangs geändert hat.
UUIDs in Linux generieren und ändern
Es kommt der Zeitpunkt, an dem das Lesen von UUIDs nicht mehr ausreicht: Sie brauchen Neue Kennungen generieren oder bestehende ändernDies kann beim Klonen von Festplatten, zur Vermeidung von Systemkonflikten oder einfach aus organisatorischen Gründen erforderlich sein. Linux bietet verschiedene Tools für diese Aufgaben, einige davon allgemein (uuidgen) und andere, die für bestimmte Dateisysteme spezifisch sind (tune2fs für ext2/3/4).
Generieren Sie neue UUIDs mit uuidgen
Dienstprogramm uuitgen Es ist für die Erstellung und Anzeige neuer UUIDs mithilfe der Bibliothek zuständig. flüssigDie generierten Kennungen sind in der Praxis sowohl im lokalen System als auch in jedem anderen System, ob vergangen, gegenwärtig oder zukünftig, eindeutig, da sie Standards folgen, die Kollisionen auf statistisch sehr unwahrscheinliche Weise vermeiden sollen.
Es unterstützt im Wesentlichen zwei Generationsmodi. uuidgen: zeitbasierte UUIDs y zufällige UUIDsDie ersten verwenden den Systemtakt und die Systemadresse MAC der Netzwerkkarte (sofern verfügbar), während letztere auf einer Zufallszahlengenerator hohe Qualität, in der Regel /dev/random o /dev/urandom.
In einigen Verteilungen, wie zum Beispiel Debian 9 Stretchdas Werkzeug uuidgen Es ist nicht standardmäßig installiert. In diesem Fall können Sie es durch die Installation des entsprechenden Pakets hinzufügen. uuid-runtime:
sudo apt update
sudo apt install uuid-runtime
Nach der Installation ist die allgemeine Syntax sehr einfach:
uuidgen
Die gängigsten Optionen sind:
- -r, –random: generiert eine UUID basierend auf Zufälligkeitunter Verwendung des Zufallszahlengenerators des Systems.
- -t, –Zeit: generiert eine UUID basierend auf der Zeit und MAC-Adresse der Maschine.
- -h, -hilfe: Zeigt Hilfe an und beendet das Programm.
- -V, –version: zeigt die Version an und beendet sich.
Wenn du läufst uuidgen Ohne Parameter erhalten Sie direkt eine neue UUID in Ihrem Terminal Sie können diese Datei kopieren und überall dort verwenden, wo Sie sie benötigen, beispielsweise in Skripten oder benutzerdefinierten Konfigurationsdateien.
Ändern der UUID einer ext2/3/4-Partition mit tune2fs
Wenn Sie möchten, dass eine bestehende Partition eine neue UUIDIn den Dateisystemen ext2, ext3 oder ext4 ist das Referenztool tune2fsMit diesem Befehl können Sie interne Parameter des Dateisystems, einschließlich seiner Kennung, ändern.
Bevor Sie irgendetwas ändern, ist Folgendes unerlässlich: Unmounten Sie die Partition um Datenbeschädigung zu vermeiden. Nehmen wir an, Sie möchten die UUID von /dev/sdd4Der grundlegende Ablauf wäre:
sudo umount /dev/sdd4
Nach der Demontage können Sie fragen tune2fs das direkt eine neue zufällige UUID generiert:
sudo tune2fs /dev/sdd4 -U random
Wenn Sie die spezifische Kennung lieber selbst festlegen möchten (z. B. um eine zuvor generierte Kennung zu verwenden), uuidgenSie können den Wert auch explizit übergeben:
sudo tune2fs /dev/sdd4 -U 123e4567-e89b-12d3-a456-426614174000
Nach der Änderung ist es ratsam, das Ergebnis zu überprüfen mit blkid oder Überprüfung /dev/disk/by-uuid Um zu bestätigen, dass die Kennung aktualisiert wurde:
sudo blkid /dev/sdd4
Denken Sie daran, dass, wenn diese Partition erscheint in /etc/fstab oder andere Konfigurationsdateien müssen Sie Aktualisieren Sie die neue UUID manuell. um zu verhindern, dass das System beim Start weiterhin nach der alten Kennung sucht.
Bearbeiten Sie die Datei /etc/fstab, um UUIDs in Mounts zu verwenden.
Die empfohlene Methode zum Definieren persistenter Mounts in Linux ist die Verwendung von UUID in /etc/fstabDie allgemeine Syntax für einen UUID-basierten Eintrag sieht etwa so aus:
UUID={TU-UUID} /ruta/de/montaje tipo_fs opciones 0 1
Bei einer XFS-Festplatte, die für Backups vorgesehen ist, könnte beispielsweise folgende Zeile stehen:
UUID=8aa6c0d2-c18e-4606-b1da-f5f1f7617f00 /backups xfs rw,noquota,nofail 0 1
In diesem Beispiel die Option nofail Dadurch wird die Festplatte vom System nicht als kritisch eingestuft, wenn sie beim Start nicht vorhanden ist. Dies ist besonders nützlich für externe Festplatten oder Backup-Festplatten, die nicht ständig angeschlossen sind. Weitere Optionen sind: keine Quote o Fehler=remount-ro Sie hängen vom Dateisystemtyp und dessen Verwendungszweck ab.
Sobald Sie die folgenden Änderungen vorgenommen haben: /etc/fstab Um einen Eintrag hinzuzufügen oder zu aktualisieren, wird empfohlen, die Konfiguration ohne Neustart zu testen, indem Sie Folgendes verwenden:
sudo mount -a
Wenn keine Fehler vorliegen, können Sie das Ergebnis mit folgendem Befehl anzeigen:
df -h | grep backups
oder ähnliches, anstelle backups Überprüfen Sie anhand des Mountpunkts, der Ihrem Fall entspricht, ob die UUID korrekt ist und ob das angegebene Dateisystem mit dem tatsächlichen übereinstimmt.
Systemklonierung und UUID-Konflikte
Ein Szenario, das viele Fragen aufwirft, ist das Klonen ganzer Systeme, beispielsweise mit Werkzeugen wie … ClonezillaBeim Klonen einer Festplatte auf eine andere werden die Daten kopiert. genau wie die Partitionen, ihre Dateisysteme und ihre UUIDsDas bedeutet, dass Sie für eine gewisse Zeit zwei verschiedene Festplatten mit Partitionen haben werden, die dieselbe Kennung verwenden.
Diese Überschneidung stellt möglicherweise kein Problem dar, wenn Sie abwechselnd nur vom Klon oder vom Original booten. Wenn Sie jedoch beide gleichzeitig auf demselben Rechner anschließen, treten wahrscheinlich Fehler auf. UUID-KonflikteDas System weiß nicht genau, welcher Partition die einzelnen Kennungen entsprechen, und es kann zu Einbindungsfehlern, verwirrenden Startzeiten oder sogar dazu kommen, dass Partitionen des Klons dort eingebunden werden, wo Sie Partitionen der Originalfestplatte erwartet hätten.
Um diese Konflikte zu vermeiden, ist es gängige Praxis, folgendermaßen vorzugehen: Ändern Sie die UUIDs der Klonpartitionen Stellen Sie nach dem Klonen sicher, dass die einzelnen Festplatten klar voneinander getrennt sind. Bei ext4-Partitionen können Sie sich, wie bereits erwähnt, auf Folgendes verlassen: uuidgen um neue Kennungen zu generieren und in tune2fs um sie anzuwenden.
Wenn Ihr System eine etwas komplexere Struktur aufweist, beispielsweise ein Stammverzeichnis in ext4 > LVM > LUKS (dm-crypt), Sie sollten sich darüber im Klaren sein, dass es möglicherweise UUID auf verschiedenen EbenenDazu gehören: Dateisystemdateien, LVM-Dateien physischer Datenträger, logische Datenträgerdateien, LUKS-Containerdateien usw. Zusätzlich zu Dateien wie /etc/crypttab Sie können auf diese Kennungen verweisen.
In einem typischen Fall der Verschlüsselung könnte das Schema etwa so aussehen:
nvme0n1 (disco físico)
├─nvme0n1p1 /boot/efi
├─nvme0n1p2 /boot
└─nvme0n1p3 (partición cifrada LUKS)
└─nvme0n1p3_crypt
├─sys--vg-root /
└─sys--vg-swap_1
Wenn Sie an irgendeiner Stelle in dieser Kette UUIDs ändern, müssen Sie sicherstellen, dass Sie alle Stellen aktualisieren, an denen darauf verwiesen wird: /etc/fstab für Mountpunkte, /etc/crypttab für verschlüsselte Volumes und in einigen Fällen Bootparameter, die GRUB verwendet, um das Root-Verzeichnis zu finden.
Was GRUB betrifft, so ist es in vielen modernen Konfigurationen selbst Menüeintrag verwendet UUID Um herauszufinden, wo sich die Root-Partition befindet. Das heißt, in der Kernelzeile erscheint etwa Folgendes: root=UUID=...Wenn Sie die Datei neu generieren grub.cfg Laufen update-grub (oder dem entsprechenden Befehl in Ihrer Distribution) liest das System die Festplatten neu ein und aktualisiert die entsprechenden Kennungen. Daher wird nach dem Ändern von UUIDs auf einem bootfähigen Klon dringend empfohlen, von diesem Klon zu booten und eine GRUB-Konfigurationsregeneration durchzuführen, um die Konsistenz aller Daten zu gewährleisten.
In der Praxis sieht der sinnvolle Arbeitsablauf beim Klonen eines kompletten Systems und dem Wunsch, es parallel zum Original zu verwenden, üblicherweise wie folgt aus:
- Vom Klon starten (um Verwechslungen mit Gerätenamen zu vermeiden).
- Ändern Sie die UUIDs der Partitionen, die Sie unterscheiden möchten (mit
tune2fsoder die Werkzeuge, die jedem Dateisystem entsprechen). - Aktualisieren / etc / fstab und, falls zutreffend, / etc / crypttab mit den neuen Kennungen.
- GRUB-Konfiguration neu generieren (zum Beispiel mit
sudo update-grubin Debian/Ubuntu).
Auch wenn es etwas mühsam erscheinen mag, stellt dieser Ansatz sicher, dass der Klon vollständig bootfähig und unabhängig des Originals und dass beide auf derselben Maschine koexistieren können, ohne sich gegenseitig zu behindern.
Die Beherrschung der UUID-Verwaltung in Linux ermöglicht es Ihnen, langsame Bootzeiten zu diagnostizieren, Probleme mit geänderten Partitionen zu beheben und robustere Mounts zu konfigurieren. /etc/fstabDas Teilen von Swap-Speicher zwischen verschiedenen Distributionen funktioniert problemlos, und ganze Systeme lassen sich klonen, ohne die Kontrolle zu verlieren. Letztendlich geht es nur darum, die Partitionen korrekt zuzuordnen und ihren Code mit Tools wie [hier fehlender Name] zu überprüfen. blkid o ls -l /dev/disk/by-uuidMachen Sie es sich zur Gewohnheit, wichtige Konfigurationsdateien zu überprüfen und zu aktualisieren, wann immer Sie wesentliche Änderungen an Ihren Festplatten vornehmen.
Leidenschaftlicher Autor über die Welt der Bytes und der Technologie im Allgemeinen. Ich liebe es, mein Wissen durch Schreiben zu teilen, und genau das werde ich in diesem Blog tun und Ihnen die interessantesten Dinge über Gadgets, Software, Hardware, technologische Trends und mehr zeigen. Mein Ziel ist es, Ihnen dabei zu helfen, sich auf einfache und unterhaltsame Weise in der digitalen Welt zurechtzufinden.