Ich habe zugesehenDebConf 14: Qualitätssicherung mit Linus Torvalds, und bei etwa 19:50 erwähnt Linux, dass „UUIDs verrückter Scheiß sind.“
Wofür werden UUIDs verwendet (auf Kernelebene)? Was meint Linus damit?
Antwort1
Dateisysteme erhalten beim Formatieren eine Zufallszahl, um sie eindeutig zu identifizieren. Früher mussten Sie Ihren Bootloader und /etc/fstab so konfigurieren, dass sie mithilfe eines Dev-Knotens, der aus einer willkürlich zugewiesenen ID wie /dev/sda und einer Partitionsnummer besteht, erkennen konnten, welche Dateisysteme wo gemountet werden sollten. Das Problem dabei war, dass alle vorhandenen Referenzen verloren gingen, wenn sich Ihre Partitionsnummern änderten. Das wirklich große Problem entstand jedoch, als sich die willkürlichen IDs für die Festplatten selbst ziemlich häufig zu ändern begannen. Bei IDE-Festplatten konnte es nur 4 geben, und je nachdem, an welchen physischen Port Sie das Laufwerk angeschlossen hatten, wurde bestimmt, ob es /dev/hda oder /dev/hdb war. Bei SCSI-Festplatten oder SATA-Festplatten oder Systemen mit mehreren Festplattencontrollern wird die ID jedoch einfach in der Reihenfolge zugewiesen, in der sie erkannt werden, und diese Reihenfolge ist einigermaßen zufällig und kann sich von einem Start zum nächsten ändern, selbst wenn Sie nichts tun wie z. B. eine USB-Festplatte (ab-)stecken. Mit der zunehmenden Popularität solcher Systeme war es wichtig, sich nicht auf die Dev-Knotennamen verlassen zu müssen. Daher gingen die Systeme dazu über, UUIDs zu verwenden, um zu ermitteln, welches Dateisystem wo gemountet werden soll. Dabei spielt es keine Rolle, als welcher Dev-Knoten es bei einem bestimmten Bootvorgang angezeigt wird.