Label von Festplatten auslesen
Label von Festplatten auslesen
Hallo,
wenn ich einer Partition ein label zuweise, z.B mit: mke2fs -L VOLUME1 /dev/sda1, kann ich das später irgendwie auslesen?
Anders formuliert, kann ich mir irgendwie eine Liste aller Labels anzeigen lassen, die gerade im System vorhanden, aber nicht unbedingt eingebunden sind? Quasi so etwas wie /cat/proc/partitions, halt nur für Labels
Es geht darum, Wechselplatten anhand des Labels zu erkennen. Je nach eingelegter Platte soll ein script laufen, sprich:
Platte einlegen, dbus/hal/ivman(?) (damit muß ich mich noch beschäftigen) erkennt ein neues Ereignis, ließt daraufhin das Label aus und übergibt dieses Label dann an ein Skript, welches die Platte einbindet, nfs reexportiert usw. usf.
Da recht viel gewechselt wird, ist eine Festlegung anhand von Gerätenamen (/dev/sdx) nicht möglich, diese Option fällt also aus, und udev ist nicht in der Lage, Festplatten gleichen typs zu unterscheiden. Seriennummern o.ä. werden nicht ausgelesen
wenn ich einer Partition ein label zuweise, z.B mit: mke2fs -L VOLUME1 /dev/sda1, kann ich das später irgendwie auslesen?
Anders formuliert, kann ich mir irgendwie eine Liste aller Labels anzeigen lassen, die gerade im System vorhanden, aber nicht unbedingt eingebunden sind? Quasi so etwas wie /cat/proc/partitions, halt nur für Labels
Es geht darum, Wechselplatten anhand des Labels zu erkennen. Je nach eingelegter Platte soll ein script laufen, sprich:
Platte einlegen, dbus/hal/ivman(?) (damit muß ich mich noch beschäftigen) erkennt ein neues Ereignis, ließt daraufhin das Label aus und übergibt dieses Label dann an ein Skript, welches die Platte einbindet, nfs reexportiert usw. usf.
Da recht viel gewechselt wird, ist eine Festlegung anhand von Gerätenamen (/dev/sdx) nicht möglich, diese Option fällt also aus, und udev ist nicht in der Lage, Festplatten gleichen typs zu unterscheiden. Seriennummern o.ä. werden nicht ausgelesen
- jochen
- prolinux-forum-admin
- Beiträge: 699
- Registriert: 14. Jan 2000 15:37
- Wohnort: Jülich
- Kontaktdaten:
Hi,
die gewünschte Information liefert Dir im Falle von ext2/3 das tune2fs-Kommando:Gegebenenfalls ist ein Identifizieren der Platten per UUID dann der sicherere Weg - Volume Labels hat man schnell schon mal doppelt vergeben, aber die UUID soll immer eindeutig sein. In der bash ist das schnell gebastelt:Wenn Du doch lieber das Label verwenden möchtest, ersetze "Filesystem UUID" einfach durch "Filesystem volume name".
Disclaimer: So funktioniert's mit ext2/3, bei anderen Dateisystemarten sollte es zumindest ähnliche Tools geben - wenn ein Volume Label überhaupt gesetzt werden kann (reiserfs3.6 kann es m.E. nicht, aber da könnte ich mich irren).
Viel Spass beim Basteln,
Jochen
die gewünschte Information liefert Dir im Falle von ext2/3 das tune2fs-Kommando:
Code: Alles auswählen
[root@rechner ~]# file -s /dev/hda1
/dev/hda1: Linux rev 1.0 ext3 filesystem data (needs journal recovery) (large files)
[root@rechner ~]# tune2fs -l /dev/hda1
tune2fs 1.35 (28-Feb-2004)
Filesystem volume name: /
Last mounted on: <not available>
Filesystem UUID: b43c990c-9eba-4b77-9a05-3aab174f653b
Filesystem magic number: 0xEF53
Filesystem revision #: 1 (dynamic)
Filesystem features: has_journal ext_attr resize_inode dir_index filetype needs_recovery sparse_super large_file
Default mount options: (none)
Filesystem state: clean
Errors behavior: Continue
Filesystem OS type: Linux
Inode count: 1026144
Block count: 2048279
Reserved block count: 102413
Free blocks: 591408
Free inodes: 781304
First block: 0
Block size: 4096
Fragment size: 4096
Reserved GDT blocks: 500
Blocks per group: 32768
Fragments per group: 32768
Inodes per group: 16288
Inode blocks per group: 509
Filesystem created: Mon Jun 27 16:43:48 2005
Last mount time: Thu Dec 14 07:48:33 2006
Last write time: Thu Dec 14 07:48:33 2006
Mount count: 25
Maximum mount count: -1
Last checked: Mon Jun 27 16:43:48 2005
Check interval: 0 (<none>)
Reserved blocks uid: 0 (user root)
Reserved blocks gid: 0 (group root)
First inode: 11
Inode size: 128
Journal inode: 8
First orphan inode: 863316
Default directory hash: tea
Directory Hash Seed: 9dd4caa8-3e28-431c-b139-dd3926844fd2
Journal backup: inode blocks
Code: Alles auswählen
FS_UUID=$(tune2fs -l $FS_DEVICE | awk -F ': +' '$1 == "Filesystem UUID" {print $NF }')
Disclaimer: So funktioniert's mit ext2/3, bei anderen Dateisystemarten sollte es zumindest ähnliche Tools geben - wenn ein Volume Label überhaupt gesetzt werden kann (reiserfs3.6 kann es m.E. nicht, aber da könnte ich mich irren).
Viel Spass beim Basteln,
Jochen
Die grösste Lüge der EDV? "Mal eben..."
udev
Hallo,
eleganter, hat man sich einmal in die Theamtik eingearbeitet, geht das mit der seit Kernel 2.6.x verfügbarer udev-Methode.
Damit kann man so gut wie alle Eigenschaften (irgend) eines Devices verwerten.
http://de.gentoo-wiki.com/Udev
http://de.gentoo-wiki.com/Udev_Rules
lg. sumsi
eleganter, hat man sich einmal in die Theamtik eingearbeitet, geht das mit der seit Kernel 2.6.x verfügbarer udev-Methode.
Damit kann man so gut wie alle Eigenschaften (irgend) eines Devices verwerten.
http://de.gentoo-wiki.com/Udev
http://de.gentoo-wiki.com/Udev_Rules
lg. sumsi
-
- Beiträge: 430
- Registriert: 03. Mär 2006 23:16
reiserfs hat LABEL, jedoch behandeln die Tools es nicht wie bei anderen FS mit dem Schalter '-L', sondern '-l'.(reiserfs3.6 kann es m.E. nicht, aber da könnte ich mich irren).
Das Log muss zudem Standard-Werte haben, zBsp darf es keine selbstgewählte logsize haben oder extern sein.
Ich persönlich ziehe LABEL den UUID vor. Bei den vielen Zahlen in der fstab wurde ich ziemlich fusselig.
Frage:
cfdisk zeigt diese LABEL an jedoch nur "pro block-device".
Gibt es etwas, das ähnlich 'fdisk -l' auch eine cfdisk-artige Übersicht über alle Platten bietet? Also mit den LABEL!
--------------------------------------------------------------------
EDIT 2007-03-21
Doch, da gibt es etwas:
Code: Alles auswählen
blkid -c/dev/null -sLABEL -sTYPE
Zuletzt geändert von komsomolze am 24. Mär 2007 11:27, insgesamt 2-mal geändert.
mfg komsomolze
- jochen
- prolinux-forum-admin
- Beiträge: 699
- Registriert: 14. Jan 2000 15:37
- Wohnort: Jülich
- Kontaktdaten:
Ah? Wieder was gelernt - danke.komsomolze hat geschrieben:reiserfs hat LABEL, jedoch ...
In der fstab würde ich ebenfalls nur ungerne UUIDs verwenden. Für die festen Partitionen kann man dann ja Devicenamen/Labels nehmen und nur für die Wechselmedien die UUIDs.
Ein Tool für ein "fdisk -l à la cfdisk" kenne ich leider nicht.
Jochen
Die grösste Lüge der EDV? "Mal eben..."
smart
OK. habe mich überzeugt, mit udev gleiche IDE-Plattten am gleichen Steckplatz geht nicht ...
Aber vielleicht damit:
http://www.linux-user.de/ausgabe/2004/1 ... tmontools/
bye an.max.
Aber vielleicht damit:
http://www.linux-user.de/ausgabe/2004/1 ... tmontools/
bye an.max.
@jochen: Vielen Dank. Zur Info: Die UUIDs für xfs gibt es mit xfs_admin -u /dev/sdx und für reiserfs mit reiserfstune /dev/sdx. Letzeres bei mir ohne irgend einen Schalter, da die nur zum setzen, nicht aber zum auslesen dienen.
@sumsi: udev kann keine Platten gleichen Typs unterscheiden, daß ist mein großes Dilemma und hat mich von der Sinnlosigkeit eines software RAID5 überzeugt, da es absolut nicht möglich ist, die defekte Platte ausfindig zu machen. Außer man legt eine extra Partition an, anhand derer die Platten identifiziert werden können.
@2. hdparm geht bei mir nicht:
fstab soll in meinem Fall nicht verwedet werden, sondern das wird dereinst über ein Skript geregelt, welches von einem noch herauszufindenden hotplug Ereignis/Dienst aufgerufen wird.
@sumsi: udev kann keine Platten gleichen Typs unterscheiden, daß ist mein großes Dilemma und hat mich von der Sinnlosigkeit eines software RAID5 überzeugt, da es absolut nicht möglich ist, die defekte Platte ausfindig zu machen. Außer man legt eine extra Partition an, anhand derer die Platten identifiziert werden können.
@2. hdparm geht bei mir nicht:
Code: Alles auswählen
# hdparm -i /dev/sda
/dev/sda1:
HDIO_GET_IDENTITY failed: Inappropriate ioctl for device
Ups, da ist mir ein Fehler unterlaufen. Keine Ahnung, wo die "1" hinter sda bei hdparm herkommt.
Nachtrag: smartctl klappt auch hervorragend:
Schade, das udev die Seriennummer nicht ausliest.
Nachtrag: smartctl klappt auch hervorragend:
Code: Alles auswählen
# smartctl -i -d ata /dev/sda
smartctl version 5.36 [x86_64-pc-linux-gnu] Copyright (C) 2002-6 Bruce Allen
Home page is http://smartmontools.sourceforge.net/
=== START OF INFORMATION SECTION ===
Device Model: SAMSUNG HD160JJ
Serial Number: S08HJ1MYC04503
Firmware Version: WU100-33
User Capacity: 160,041,885,696 bytes
Device is: In smartctl database [for details use: -P show]
ATA Version is: 7
ATA Standard is: ATA/ATAPI-7 T13 1532D revision 4a
Local Time is: Wed Jan 24 22:27:29 2007 CET
SMART support is: Available - device has SMART capability.
SMART support is: Enabled
Udev ist ein Haufen Skripte. Es ist prinzipiell kein Problem, die Funktion nachzurüsten. Mein Gefühl sagt mir, dass du nicht der einzige mit diesem Problem bist.
Ich habe mit udev noch nicht soooo viel gemacht, aber vielleicht kriegen wir ja zusammen was hin.
Janka
Ich habe mit udev noch nicht soooo viel gemacht, aber vielleicht kriegen wir ja zusammen was hin.
Janka
Ich vertonne Spam immer in /dev/dsp statt /dev/null.
Ich mag die Schreie.
Ich mag die Schreie.
es gibt noch ...
Hallo,
es gibt noch speziell für LABEL
ext2/3 : e2label /dev/partition
xfs: xfs_admin -l /dev/label
bye sumsi
es gibt noch speziell für LABEL
ext2/3 : e2label /dev/partition
xfs: xfs_admin -l /dev/label
bye sumsi
vol_id
Schon mal vol_id versucht (Benutzt udev auf Debian, um z.B. Links in /dev/disk/by-label/ zu erzeugen)?
# /lib/udev/vol_id --export /dev/sda1
ID_FS_USAGE=filesystem
ID_FS_TYPE=ext2
ID_FS_VERSION=1.0
ID_FS_UUID=038361dc-ce14-463c-8874-e13b5e01fc39
ID_FS_LABEL=boot
ID_FS_LABEL_SAFE=boot
# /lib/udev/vol_id --export /dev/sda1
ID_FS_USAGE=filesystem
ID_FS_TYPE=ext2
ID_FS_VERSION=1.0
ID_FS_UUID=038361dc-ce14-463c-8874-e13b5e01fc39
ID_FS_LABEL=boot
ID_FS_LABEL_SAFE=boot
genial
Hallo allerseits,
einfach genial - CSa hat 's gefunden - ich glaub bei Linux lernt man nieee aus
Dann bringt uns einfach
das Ergebnis.
Schönes WE
sumsi
einfach genial - CSa hat 's gefunden - ich glaub bei Linux lernt man nieee aus

Dann bringt uns einfach
Code: Alles auswählen
vol_id /dev/hda11|grep LABEL|grep -v SAFE|cut -f2 -d=
Schönes WE
sumsi