Kann ich ein Festplattengerät statt einer Partition benennen?

Kann ich ein Festplattengerät statt einer Partition benennen?

Ich kenne das Programm e2label und Freunde zum Anbringen eines Labels an einer Festplattenpartition, z. B.

e2label /dev/sda1 bla

Ich möchte etwas anderes machen: Ich möchte eine Bezeichnung für eine Festplatte erstellen, also für /dev/sda, nicht für eine Partition.

Ist das möglich und wenn ja, wie?

BEARBEITEN: Hintergrund: In einem Gehäuse mit mehreren HD-Schächten möchte ich (Papier-)Etiketten an der Tür des physischen Schachts anbringen und dasselbe Etikett logisch auf der Festplatte anbringen, die ich dort eingelegt habe.

EDIT2: Hier geht es um den Ubuntu Linux 12.04-Server.

EDIT3: Auf GPT-Partitionen gibt es zusätzlich noch das Partlabel, welches man z.B. mit parted setzen kann. Siehehttps://serverfault.com/q/681088/76442

Antwort1

Auf Ihre ursprüngliche Frage gibt es bereits einige gute Antworten, daher werde ich mich auf den Hintergrund Ihrer Frage, nämlich das Beschriften von Datenträgern, konzentrieren.

Ich verwende die Seriennummer des Laufwerks, um Etiketten für Hot-Swap-Schächte zu drucken. Dies ist die beste Möglichkeit, das Laufwerk eindeutig und einheitlich zu identifizieren. Sie ändert sich nicht, egal in welchem ​​Schacht oder an welchem ​​Controller es eingesteckt ist.

Sie erwähnen nicht, ob Sie Linux oder ein anderes Unix verwenden, aber unter Linux können Sie eine Liste der Festplatten (und Partitionen, die wir ausschließen möchten) mit ihrer Marke, ihrem Modell und ihrer Seriennummer erhalten, indem Sie im Verzeichnis /dev/disk/by-id/ nachsehen. Ich finde den folgenden Bash-Alias ​​hierfür nützlich:

alias list_disks='find /dev/disk/by-id/ -iname 'scsi-*' | grep -v -- -part | while read disk ; do echo $(readlink $disk | sed -e s:../../:: ) $(basename $disk); done'

(Matching scsi-*findet alle „SCSI-ähnlichen“ Laufwerke, einschließlich SATA- und SAS-Laufwerke. Auf Systemen mit ausschließlich SATA-Laufwerken ata-*würde es auch funktionieren)

Auf einem meiner ZFS-Serversysteme wird beispielsweise eine Ausgabe wie diese erzeugt:

# Listendisketten | sortieren
sdb scsi-SATA_WDC_WD10EACS-00Z_WD-WCASJ2195141
sdc scsi-SATA_WDC_WD10EACS-00Z_WD-WCASJ2114122
sdd scsi-SATA_ST31000528AS_9VP4P4LN
sde scsi-SATA_ST31000528AS_6VP3FWAG
sdf scsi-SATA_ST31000528AS_9VP509T5
sdg scsi-SATA_ST31000528AS_9VP4RPXK
sdh scsi-SATA_OCZ-VECTOR_OCZ-0974C023I4P2G1B8
sdi scsi-SATA_OCZ-VECTOR_OCZ-8RL5XW08536INH7R
sdj scsi-SATA_ST31000528AS_9VP18CCV
sdk scsi-SATA_WDC_WD10EARS-00Y_WD-WMAV50933036

Wie Sie sehen, enthält die Auflistung /dev/disk/by-id die Marke und Modellnummer jedes Laufwerks sowie die Seriennummer. Es handelt sich allesamt um SATA-Laufwerke, die entweder an SATA-Ports oder SAS-Ports eines LSI SAS-2008-Controllers angeschlossen sind.

Wenn ich einen Etikettendrucker angeschlossen hätte, wäre es ganz einfach, Etiketten auf der Grundlage der Ausgabe von zu drucken list_disks. Ich habe stattdessen einen alten manuellen Etikettendrucker verwendet, weil ich den hatte. Die gedruckten Etiketten enthalten nur die Seriennummer ohne Marke/Modell (das reicht mir, um das Laufwerk zu identifizieren, wenn ich es brauche). Die Etiketten sind sehr praktisch, wenn ein Laufwerk ausfällt und ersetzt werden muss.

Antwort2

Wenn wir über Linux sprechen, können Sie meiner Meinung nach erreichen, was Sie möchten, indem Sie udeveinen symbolischen Link zu Ihren Geräten erstellen. Wenn Sie sich ansehen /etc/udev/rules.d, finden Sie eine Datei namens , 70-persistent-cd.rulesderen Inhalt Zeilen wie die folgenden enthält:

SUBSYSTEM=="block", ENV{ID_CDROM}=="?*", ENV{ID_PATH}=="pci-0000:00:1f.2-scsi-:0:0:0", SYMLINK+="cdrom", ENV{GENERATED}="1"

Dadurch wird der symbolische Link /dev/cdromzu dem Gerät erstellt, das durch seine PCI-Busadresse identifiziert wird. Sie sollten das gewünschte Ergebnis erzielen, indem Sie die Festplatte anhand ihrer (Schachtnummer? Leider habe ich da keine Erfahrung) identifizieren und eine ähnliche Syntax wie oben verwenden, um einen symbolischen Link wie /dev/bay1beispielsweise hinzuzufügen. Der folgende Artikel zum Schreiben von udevRegeln kann hilfreich sein:

Schreiben von udev-Regeln

Notiz

Dank der Antwort von slm beachten Sie bitte, dass diese Lösung die Beschriftungen spezifisch auf die Festplattenschächte und nicht auf die darin enthaltenen Datenträger ausrichtet. Wenn Sie also die Beschriftungen /dev/bay1und verwenden /dev/bay2und Festplatte A in Schacht 1 und Festplatte B in Schacht 2 haben, dann /dev/bay1bezieht sich auf Datenträger A und /dev/bay2bezieht sich auf Datenträger B. Wenn Sie aus irgendeinem Grund die Datenträger A und B vertauschen, erhalten Sie „ /dev/bay1bezieht sich auf Datenträger B und /dev/bay2bezieht sich auf Datenträger A“. Aus Ihrer Frage schließe ich, dass dies Ihre Absicht ist. Bitte korrigieren Sie mich, wenn ich falsch liege.

Antwort3

Sie versehen keine Partitionen mit E2labels, sondern Dateisysteme mit E2labels. Diese Dateisysteme können sich auf Partitionen, auf Dateien, auf ganzen Festplatten, auf Netzwerkblockgeräten befinden ... das spielt keine Rolle.

Wenn sich also ein ext2/3/4-Dateisystem direkt auf befindet /dev/sda, können Sie es genauso benennen wie eines, das sich auf befinden würde /dev/sda1.

Wenn sich jedoch kein Dateisystem direkt darauf befindet /dev/sda, sondern es beispielsweise /dev/sda(mithilfe von GPT, MBR, LVM usw.) in mehrere Partitionen partitioniert ist, können Sie es offensichtlich nicht verwenden e2label /dev/sda.

Bei der GPT-Partitionierung können Sie Partitionen Namen geben. So können Sie eine Partition mit einem Sektor erstellen und ihr einen Namen geben, der Ihre Festplatte leichter identifiziert. Sie können das mit dem cBefehl in tun gdisk.

Antwort4

Um Ihre Frage zu beantworten, ob es möglich ist, eine Festplatte statt einer Partition zu benennen, lautet die Antwort nein. Mir ist keine Methode bekannt, dies zu tun.

Sie können die von @JosephR beschriebene Methode verwenden, aber beachten Sie, dass diese Konfiguration systemabhängig ist. Wenn Sie also diese Festplatte in ein anderes System einbauen würden, ginge die von ihm vorgeschlagene „Beschriftung“ verloren. Sie ist in keiner sinnvollen Weise an die Festplatte gebunden.

Übrigens können Sie mit dem Befehl die für verschiedene Laufwerke festgelegten Labels und UUIDs sehen blkid.

Beispiel

$ blkid
/dev/sda1: LABEL="SYSTEM_DRV" UUID="XXXXXX" TYPE="ntfs" 
/dev/sda2: LABEL="Windows7_OS" UUID="XXXXXX" TYPE="ntfs" 
/dev/sda3: LABEL="Lenovo_Recovery" UUID="XXXX" TYPE="ntfs" 
/dev/sda5: UUID="XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX" TYPE="ext4" 
/dev/sda6: UUID="XXXXXX-XXXX-XXXX-XXXX-XXXX-XXXX-XXXXXfG93LA" TYPE="LVM2_member" 
/dev/mapper/vg_grinchy-lv_root: UUID="XXXXXX-XXXX-XXXX-XXXX-XXXX-XXXX-XXXXX" TYPE="ext4" 
/dev/mapper/vg_grinchy-lv_swap: UUID="XXXXXX-XXXX-XXXX-XXXX-XXXX-XXXX-XXXXX" TYPE="swap" 
/dev/mapper/vg_grinchy-lv_home: UUID="XXXXXX-XXXX-XXXX-XXXX-XXXX-XXXX-XXXXX" TYPE="ext4" 

verwandte Informationen