パーティションの代わりにディスクデバイスにラベルを付けることはできますか?

パーティションの代わりにディスクデバイスにラベルを付けることはできますか?

私はe2labelと友達プログラムがディスクパーティションにラベルを付けるために使用されることを知っています。

e2label /dev/sda1 bla

私がやりたいことは何か違うことです。つまり、パーティションではなくハードドライブ用のラベル(例:/ dev / sda)を作成したいと思います。

可能ですか?それではどうですか?

編集:背景:HDベイが複数ある場合、物理ベイのドアに(紙)ラベルを貼り、そこに入れたディスクに論理的に同じラベルを貼りたいです。

編集2:これはUbuntu Linux 12.04サーバーに関するものです。

EDIT3:GPTパーティションにもpartlabelがあり、これはpartedなどを使用して設定できます。バラよりhttps://serverfault.com/q/681088/76442

答え1

あなたの元の質問に対する良い答えがすでにあるので、ディスクの表示に関する質問の背景に焦点を当てます。

私はドライブのシリアル番号を使用してホットスワップベイのラベルを印刷します。これは、ドライブを一意に一貫して識別するための最良の方法です。どのベイまたはどのコントローラが接続されていても変更されません。

Linuxを使用するのか、それとも別のUnixを使用しているのかは言及していませんが、Linuxでは、/を見ると、メーカー、モデル、シリアル番号を含むディスクのリスト(および除外したいパーティション)を取得できます。 dev/disk/by-id/ ディレクトリ。次のbashエイリアスがこれに役立つことがわかりました。

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'

(一致項目は、SATAドライブとSASドライブを含むすべての「scsiに似た」ドライブを検索します。SATAscsi-*ドライブのみがあるシステムでも機能します。)ata-*

たとえば、私のZFSサーバーシステムの1つでは、次の出力が生成されます。

#ディスクリストタイプ|
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

ご覧のとおり、/dev/disk/by-idリストには、各ドライブの製造元とモデル、およびシリアル番号も含まれています。これは、LSI SAS-2008コントローラのSATAポートまたはSASポートに接続するSATAドライブです。

ラベルプリンタを接続すると、印刷物に基づいてラベルを簡単に印刷できますlist_disks。私は古い手動ラベルプリンタを使用しました。なぜならそれが私が持っていたすべてだったからです。印刷されたラベルには、製造元/モデルではなくシリアル番号のみが含まれています(必要に応じてドライブを識別するのに十分です)。ラベルは、ドライブに障害が発生して交換が必要な場合に便利です。

答え2

これが私たちが話しているLinuxなら、あなたがudev望むことを達成するためにそれを使ってデバイスへのシンボリックリンクを作成することができると思います。を見ると、次の内容と/etc/udev/rules.d呼ばれるファイルがあることがわかります。70-persistent-cd.rules

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

/dev/cdromその目的は、PCIバスアドレスで識別されるデバイスへのシンボリックリンクを作成することです。 HDD(ベイ番号?経験がないため)を使用してHDDを識別し、上記のような構文を使用してシンボリックリンク(たとえば)を追加することで、目的/dev/bay1を達成できます。ルールの作成に関する次の記事がudev役に立ちます。

udevルールの作成

ノート

回答をいただいたslmに感謝します。このソリューションでは、ディスクではなくHDDベイにのみラベルを付けることに注意してください。したがって、ラベルを使用/dev/bay1し、/dev/bay2ドライブAがベイ1にあり、ドライブBがベイ2にある場合、/dev/bay1ディスクAは参照され、/dev/bay2ディスクBは参照されます。何らかの理由でディスクAとBが交換された場合、あなたの/dev/bay1質問によると、/dev/bay2これはあなたの意図だと思います。間違っていたら訂正してください。

答え3

パーティションにラベルを付けるのではなく、ファイルシステムにラベルを付けることです。これらのファイルシステムは、ファイルのパーティション、ディスク全体、およびネットワークブロックデバイスに存在できます。気にしません。

はい。 ext2/3/4ファイルシステムがすぐ上にある場合は、その/dev/sdaファイルシステムと同じラベルを付けることができます/dev/sda1

/dev/sdaこれで、直接ファイルシステムはありませんが、たとえば/dev/sda(GPT、MBR、LVMなどを使用して)複数のパーティションに分割されている場合は明らかですe2label /dev/sda

GPTパーティションではパーティション名を指定できるため、大規模な単一セクタパーティションを作成し、この名前を使用してディスクを識別できます。cのコマンドを使用してこれを実行できますgdisk

答え4

パーティションの代わりにディスクにラベルを付けることができるかどうかに関する質問に答えるには、「いいえ」です。私はこれをする方法を知らない。

@JosephRが説明した方法を使用できますが、この設定はシステムによって異なり、そのHDDを別のシステムにインポートすると、彼が提案した「ラベル」が失われます。意味のある方法でディスクに接続されていません。

ただし、このコマンドを使用して他のドライブのラベルとUUID設定を表示できますblkid

はい

$ 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" 

関連情報