私は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
役に立ちます。
ノート
回答をいただいた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"