udev rules für /dev/disk/by-uuid ?

Du kommst mit der Installation nicht voran oder willst noch was nachfragen? Schau auch in den "Tipps und Tricks"-Bereich.
Antworten
wckl
Beiträge: 828
Registriert: 10.08.2007 15:26:28
Lizenz eigener Beiträge: GNU General Public License
Wohnort: St. Georges de Didonne

udev rules für /dev/disk/by-uuid ?

Beitrag von wckl » 07.07.2012 19:00:45

Hallo,

"df -h" hatte mal eine kurze, prägnante Übersicht geliefert ... jetzt brauche ich immer ein extra breites Fenster ...

Kann man mit "udev rules" auch für
/dev/disk/by-uuid/9b39ef9c-8571-43a0-a5e0-64fd51127a6d ... /
also das rootfs, Regeln definieren, so daß mit "df -h" wieder eine übersichtliche Darstellung möglich wird?

Vielen Dank.
wckl

Benutzeravatar
pil
Beiträge: 629
Registriert: 30.04.2002 15:47:27

Re: udev rules für /dev/disk/by-uuid ?

Beitrag von pil » 07.07.2012 19:38:23

Ja, mich hat das auch genervt. Ich habe gelesen, dass sogar jemand df gepatcht hat, um wieder eine 'normale' Ausgabe von df zu haben.

Es gibt aber eine viel einfachere Lösung: Sorge dafür, dass in deiner grub.cfg statt

linux /boot/vmlinuz-3.2.22 root=/dev/disk/by-uuid/xxx34571yyyBBBAAA_usw.usf...

folgendes drin steht

linux /boot/vmlinuz-3.2.22 root=/dev/sda5 ...

Dafür sollte in /etc/default/grub folgender Eintrag ausreichen

GRUB_DISABLE_LINUX_UUID=true

Cae
Beiträge: 6349
Registriert: 17.07.2011 23:36:39
Wohnort: 2130706433

Re: udev rules für /dev/disk/by-uuid ?

Beitrag von Cae » 07.07.2012 20:55:29

Das mit der UUID da drin hat schon seinen Grund. Bei manchen Mainboards wechselt die Reihenfolge der Laufwerke, also kann sda1 auch mal sdb1 heißen und umgekehrt. Dann wird unter Umständen das falsche System angebootet oder zusammengemountet.

Im Prinzip müsste df nur so intelligent sein, für jeden Eintrag in /proc/mounts, der mit /dev/ beginnt, readlink(2) auszuführen. Die lange Ausgabe nervt mich auch gewaltig. Gerade dazu gebastelter Workarround, zum Beispiel als Alias:

Code: Alles auswählen

awk '/^\// { system("readlink -f " $1) } /^[^/r].*$/ { print $2 }' </proc/mounts | xargs df -h
Ein Effizienzproblem dabei ist, dass readlink(1) für jede Zeile in /proc/mounts aufgerufen wird. Außerdem habe ich es nicht hinbekommen, in der zweiten RegEx explizit "rootfs" herauszufiltern, das könnte andere benannte Mountpoints mit ^r.*$ auch ausfiltern.

… für / tut das natürlich nicht, zumindest nicht bei einem RAID und mdX-Devices…

Code: Alles auswählen

% df -h /dev/disk/by-uuid/$UUID
Dateisystem                                            Größe Benutzt Verf. Verw% Eingehängt auf
/dev/disk/by-uuid/$UUID                                    …       …     …    …% /
% df -h $(readlink -f /dev/disk/by-uuid/$UUID)
Dateisystem    Größe Benutzt Verf. Verw% Eingehängt auf
udev             10M       0   10M    0% /dev
df ist doch einfach bl-öööö-de! Bzw. vergleicht es wahrscheinlich direkt gegen /proc/mounts, findet den Eintrag nicht und nimmt dann /dev an.

Also kann man das awk-Konstrukt von oben wieder in die Tonne kloppen. Grrrr.

Gruß Cae
If universal surveillance were the answer, lots of us would have moved to the former East Germany. If surveillance cameras were the answer, camera-happy London, with something like 500,000 of them at a cost of $700 million, would be the safest city on the planet.

—Bruce Schneier

Benutzeravatar
KBDCALLS
Moderator
Beiträge: 22455
Registriert: 24.12.2003 21:26:55
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Dortmund
Kontaktdaten:

Re: udev rules für /dev/disk/by-uuid ?

Beitrag von KBDCALLS » 08.07.2012 11:53:25

Stellt sich dann aber die Frage warum er auf einem Rechner macht und auf dem anderen nicht. Auf dem Rechner wo die Devices erscheinen war ursprünglich Lenny installiert, dann auf Squeeze aktualisiert und im nächsten Schritt sofort weiter nach Testing/Wheezy. Squeeze war nur ein Zwischenschritt der nur rund 1 bis zwei Stunden überlebt hat.
Was haben Windows und ein Uboot gemeinsam?
Kaum macht man ein Fenster auf, gehen die Probleme los.

EDV ist die Abkürzung für: Ende der Vernunft

Bevor du einen Beitrag postest:
  • Kennst du unsere Verhaltensregeln
  • Lange Codezeilen/Logs gehören nach NoPaste, in Deinen Beitrag dann der passende Link dazu.

wckl
Beiträge: 828
Registriert: 10.08.2007 15:26:28
Lizenz eigener Beiträge: GNU General Public License
Wohnort: St. Georges de Didonne

Re: udev rules für /dev/disk/by-uuid ?

Beitrag von wckl » 08.07.2012 14:17:55

Ich will ja nicht stören ...
aber aus all dem entnehme ich:
ich kann keine Regeln mit "udev rules" definieren, so daß mit "df -h" wieder eine übersichtliche Darstellung möglich wird?

Benutzeravatar
pil
Beiträge: 629
Registriert: 30.04.2002 15:47:27

Re: udev rules für /dev/disk/by-uuid ?

Beitrag von pil » 08.07.2012 15:02:46

wckl hat geschrieben: aus all dem entnehme ich:
ich kann keine Regeln mit "udev rules" definieren, so daß mit "df -h" wieder eine übersichtliche Darstellung möglich wird?
Ich nehme an, dass deine Folgerung falsch ist.

Mindestens die folgenden weiteren - sauberen - Lösungen kann ich mir vorstellen:

1. Der UUID der Root-Partition ein Label zuzuweisen. In diesem Fall wird vermutlich das Label angezeigt.

http://www.debian-administration.org/articles/522

2. Es ist vermutlich auch möglich, speziell für df eine udev-Regel zu schreiben, so dass df statt der UUID den device-Namen anzeigt. Jedenfalls wüsste ich nicht, was dagegen spricht.

Bloß - das ist meine Meinung - mit udev-Regeln spielt kaum einer so aus Spaß herum, weil das alles viel komplexer und zeitaufwändiger ist als allgemein behauptet wird.
Cae hat geschrieben:Bei manchen Mainboards wechselt die Reihenfolge der Laufwerke, also kann sda1 auch mal sdb1 heißen und umgekehrt. Dann wird unter Umständen das falsche System angebootet oder zusammengemountet.
Solange in fstab die Root-Partition mit

UUID=92365b0a-etc-pp / ... usw.

angegeben wird, ist die UUID der Root-Partition zugeordnet, d.h. /dev/disk/by-uui/92365b0a-etc-pp ist ein Link zu /dev/sda5.

Also sollte das nicht passieren können. Es sei denn, Root re-mounted die Partition manuell unter Mißachtung der fstab.

Benutzeravatar
KBDCALLS
Moderator
Beiträge: 22455
Registriert: 24.12.2003 21:26:55
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Dortmund
Kontaktdaten:

Re: udev rules für /dev/disk/by-uuid ?

Beitrag von KBDCALLS » 08.07.2012 17:49:36

Sieht man sich bei dem aktuellen Wheezy die Datei /etc/mtab an, dann existiert sie nicht mehr , sondern ist ein Link auf /proc/mounts Diese Datei ist ein Mix aus UUIDs und echten Devices. Das Root Device wird als UUID angezeigt , alle anderen weiteren Partitonen als Devices /dev/sdd5 etc. Den Inhalt der /proc/mounts findet man in der selben Form bei Squeeze und Lenny. Abhängig von der Platten/Partitionskonfiguration.
Was haben Windows und ein Uboot gemeinsam?
Kaum macht man ein Fenster auf, gehen die Probleme los.

EDV ist die Abkürzung für: Ende der Vernunft

Bevor du einen Beitrag postest:
  • Kennst du unsere Verhaltensregeln
  • Lange Codezeilen/Logs gehören nach NoPaste, in Deinen Beitrag dann der passende Link dazu.

Benutzeravatar
KBDCALLS
Moderator
Beiträge: 22455
Registriert: 24.12.2003 21:26:55
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Dortmund
Kontaktdaten:

Re: udev rules für /dev/disk/by-uuid ?

Beitrag von KBDCALLS » 08.07.2012 22:35:28

Mit Udev hat das nichts zu tun.

Wenn man hier sucht
dann landet man bei diesem Bug
Danach soll dieses verhalten ab Kernel 2.6.26 notwendig sein. Das hieße man hätte dieses Verhalten schon bei Lenny einführen müssen. Selbst mit Kernel 2.6.32 braucht mans wohl nicht unbedingt.

Bei Wheezy sind jetzt die Debianinitscripts dafür Verantwortlich. Davon das Script

Code: Alles auswählen

checkrootfs.sh
. In dem befindet sich einen if Abfrage. Die kommentiert so da sie nicht mehr zur Ausführung kommt . Den Link entfernt und mit touch eine Dummymtab angelegt . Und die Virtuelle Maschine neu gebootet. Die vollständige mtab war dann vorhanden , und df hat dann keine UUID mehr gezeigt in seiner Ausgabe. Das war jetzt quick and dirty, kann aber sein das es noch andere und bessere Möglichkeiten gibt.


Wenn man sich alles zu dem Bug durchliest , dann wäre es höchste Eisenbahn gewesen, das zu fixen, der ist aber noch ca. 3 Jahre rumgeschleppt worden, hat sogar Squeeze noch fasst überlebt.
Was haben Windows und ein Uboot gemeinsam?
Kaum macht man ein Fenster auf, gehen die Probleme los.

EDV ist die Abkürzung für: Ende der Vernunft

Bevor du einen Beitrag postest:
  • Kennst du unsere Verhaltensregeln
  • Lange Codezeilen/Logs gehören nach NoPaste, in Deinen Beitrag dann der passende Link dazu.

Benutzeravatar
pil
Beiträge: 629
Registriert: 30.04.2002 15:47:27

Re: udev rules für /dev/disk/by-uuid ?

Beitrag von pil » 09.07.2012 08:22:58

checkroot.sh ist relativ groß (und tut auch noch andere Sachen), und die breite Anzeige der UUID von df stört vermutlich viele.

Magst du genau angeben, was du in checkroot.sh auskommentiert hast?

Benutzeravatar
KBDCALLS
Moderator
Beiträge: 22455
Registriert: 24.12.2003 21:26:55
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Dortmund
Kontaktdaten:

Re: udev rules für /dev/disk/by-uuid ?

Beitrag von KBDCALLS » 17.07.2012 12:08:31

Hier der Abschnitt von checkroot.sh der lahmgelegt werden muß.

Code: Alles auswählen

284         # If possible, migrate /etc/mtab to be a symlink to
285         # /proc/mounts.  Note that not all systems e.g. Hurd currently
286         # support this.
287         if [ "$rootmode" != "ro" ]; then
288                 mtab_migrate
289         fi
Initscripts 2.88 dsf-28
Was haben Windows und ein Uboot gemeinsam?
Kaum macht man ein Fenster auf, gehen die Probleme los.

EDV ist die Abkürzung für: Ende der Vernunft

Bevor du einen Beitrag postest:
  • Kennst du unsere Verhaltensregeln
  • Lange Codezeilen/Logs gehören nach NoPaste, in Deinen Beitrag dann der passende Link dazu.

Antworten