Saya tahu tentang program e2label dan teman-teman untuk melampirkan label ke partisi disk misalnya
e2label /dev/sda1 bla
Yang ingin saya lakukan adalah sesuatu yang berbeda: Saya ingin membuat label untuk hard drive, yaitu untuk / dev / sda, bukan untuk partisi.
Apakah itu mungkin dan jika ya, bagaimana?
EDIT: Latar Belakang: Dalam kasus dengan beberapa rongga HD saya ingin menaruh label (kertas) di pintu rongga fisik dan meletakkan label yang sama secara logis pada disk yang telah saya taruh di sana.
EDIT2: Ini tentang server Ubuntu Linux 12.04.
EDIT3: Pada partisi GPT ada juga partlabel, yang dapat diatur dengan misal parted. Lihat /server//q/681088/76442
Jawaban:
Pertanyaan awal Anda sudah memiliki beberapa jawaban bagus, jadi saya akan fokus pada latar belakang pertanyaan Anda, memberi label disk.
Saya menggunakan nomor seri drive untuk mencetak label untuk hot swap bay - ini adalah cara terbaik untuk mengidentifikasi drive secara unik dan konsisten. Itu tidak akan berubah terlepas dari rongga mana, atau pengontrol mana ia terhubung.
Anda tidak menyebutkan apakah Anda menggunakan Linux atau Unix lain, tetapi di Linux Anda bisa mendapatkan daftar disk (dan partisi, yang ingin kami kecualikan) dengan merek, model, dan nomor seri dengan melihat di / direktori dev / disk / by-id /. Saya menemukan alias bash berikut berguna untuk ini:
(cocok untuk
scsi-*
menemukan semua drive "scsi-like", termasuk drive SATA dan SAS. pada sistem dengan hanya drive SATA,ata-*
akan berfungsi juga)mis. pada salah satu sistem server ZFS saya, ia menghasilkan keluaran seperti ini:
Seperti yang Anda lihat, daftar / dev / disk / by-id menyertakan nomor merek dan model setiap drive, serta nomor seri. Semuanya drive SATA yang dicolokkan ke port SATA atau port SAS pada pengontrol LSI SAS-2008.
Jika saya memiliki printer label yang terpasang, akan cukup mudah untuk mencetak label berdasarkan output dari
list_disks
. Saya menggunakan label-writer manual lama karena itulah yang saya miliki. Label yang dicetak hanya berisi nomor seri tanpa merek / model (itu cukup bagi saya untuk mengidentifikasi drive ketika saya perlu). Label sangat berguna ketika drive gagal dan perlu diganti.sumber
alias list_disks='find /dev/disk/by-id/ -iname scsi-* -o -iname usb-* | grep -v -- -part | while read disk ; do echo $(basename $(readlink $disk)) $(basename $disk); done | sed -re "s/(usb|scsi)-// ; s/(SATA|Generic)_//" | sort'
. ia menemukan disk usb juga dan menghilangkan data asing di output.Jika ini adalah Linux yang sedang kita bicarakan, maka saya pikir Anda dapat mencapai apa yang ingin Anda gunakan
udev
untuk membuat symlink ke perangkat Anda. Jika Anda melihat/etc/udev/rules.d
, ada file bernama70-persistent-cd.rules
yang isinya memiliki garis seperti:Apa yang dilakukan adalah menciptakan symlink
/dev/cdrom
ke perangkat yang diidentifikasi oleh alamat bus PCI-nya. Anda harus dapat mencapai apa yang Anda inginkan dengan mengidentifikasi HDD menggunakan (nomor rongga? Maaf tidak ada pengalaman di sana) dan menggunakan sintaks yang sama dengan yang di atas untuk menambahkan symlink seperti/dev/bay1
, misalnya. Artikel berikut tentangudev
aturan penulisan mungkin bermanfaat:Menulis aturan udev
Catatan
Berkat jawaban slm, harap dicatat bahwa solusi ini membuat label khusus untuk rongga HDD daripada disk di dalamnya. Jadi, jika Anda menggunakan label
/dev/bay1
dan/dev/bay2
dan Anda memiliki hard disk A di rongga 1 dan hard disk B di rongga 2, maka/dev/bay1
merujuk ke disk A dan/dev/bay2
mengacu ke disk B. Jika, karena alasan tertentu, Anda menukar disk A dan B, Anda bisa/dev/bay1
merujuk ke disk B dan/dev/bay2
merujuk ke disk A. Dari pertanyaan Anda, saya percaya bahwa ini adalah maksud Anda. Harap perbaiki saya jika saya salah.sumber
Anda tidak e2label partisi, Anda e2label sistem file. Sistem file tersebut dapat berupa partisi pada file, pada seluruh disk, pada perangkat blok jaringan ... tidak masalah.
Jadi ya, jika ada filesystem ext2 / 3/4 secara langsung
/dev/sda
, Anda dapat memberi label yang sama seperti yang akan aktif/dev/sda1
.Sekarang, jika tidak ada filesystem langsung
/dev/sda
tetapi misalnya,/dev/sda
dipartisi (menggunakan GPT, MBR, LVM ...) menjadi beberapa partisi, maka jelas tidak Anda tidak dapat menggunakane2label /dev/sda
.Di partisi GPT, Anda bisa memberi nama ke partisi, sehingga Anda bisa membuat partisi besar satu sektor dengan nama untuk membantu mengidentifikasi disk Anda. Anda dapat melakukannya dengan
c
perintah digdisk
.sumber
Untuk menjawab pertanyaan Anda jika mungkin memberi label disk sebagai lawan partisi, jawabannya adalah tidak. Saya tidak mengetahui metode apa pun untuk melakukannya.
Anda dapat menggunakan metode yang diuraikan oleh @JosephR, tetapi menyadari bahwa pengaturan ini bergantung pada sistem, jadi jika Anda membawa HDD ke sistem lain, "pelabelan" yang diusulkannya akan hilang. Itu tidak terikat ke disk dengan cara yang berarti.
Secara kebetulan, Anda dapat melihat label dan UUID diatur untuk drive yang berbeda menggunakan
blkid
perintah.Contoh
sumber
blkid
sepertinya hanya mencantumkan partisi bukan perangkat, yang bukan hal yang diminati OP./dev/disk/by-id
dan Anda dapat melakukannyaudev
-gaya seperti yang ditunjukkan dalam jawaban ini .Saya berasumsi bahwa tujuan utama Anda adalah untuk mengidentifikasi disk fisik. Sayangnya, saya tidak percaya ada cara standar untuk memberi label disk dengan cara yang sama seperti Anda dapat memberi label sistem file.
Salah satu caranya adalah dengan menggunakan model dan nomor seri disk. Di Linux, Anda dapat mengambil pengidentifikasi dengan
hdparm -i /dev/sdX
. Yang menyenangkan tentang nomor seri adalah mungkin sudah dicetak pada stiker pabrik. (Saya berasumsi Anda sangat peduli tentang Linux sejak Anda sebutkane2label
dalam pertanyaan Anda. Jika demikian, harap edit pertanyaan Anda dan tambahkan tag linux .)Jika Anda menggunakan pengontrol RAID perangkat keras,
hdparm
mungkin tidak bekerja untuk Anda, dalam hal ini Anda harus berkonsultasi dengan alat baris perintah pengontrol RAID Anda.Jika Anda ingin mengidentifikasinya dengan sesuatu di isi disk, Anda bisa menggunakan GUID disk, yang disimpan di header tabel partisi GPT ( byte 56-71 dari LBA 1 ). Ini adalah string acak sembarang daripada label pilihan Anda, tapi itu seperti label yang tetap sampai Anda memutuskan untuk memecahkan tabel partisi. Di Linux, Anda dapat melihat GUID disk menggunakan
gdisk -l /dev/sdX
.sumber
Berdasarkan jawaban yang saya dapat (Terima kasih teman-teman!) Tampaknya tidak ada cara untuk benar-benar memberi label disk tetapi hanya partisi. Jadi jawabannya mungkin adalah "TIDAK".
Saya akan pergi dengan saran yang diusulkan oleh @cas dan @ 200_success: Saya akan menempel nomor seri disk dengan stiker ke pintu ruang.
Membuat partisi kecil di setiap disk hanya untuk dapat memberi label partisi ini (seperti yang disarankan oleh @Stephane Chazelas) juga merupakan pilihan, tetapi saya pikir itu akan terlalu membingungkan bagi orang lain yang mungkin harus memelihara sistem di lain waktu .
sumber
Buat
udev
aturan menggunakan WWN unik yang dijamin dari disk (jika ada), jika tidak gunakan gabungan vendor dan ID seri:Dapatkan nilai yang dibutuhkan:
Pijat nilai-nilai ini ke dalam
udev
rules
seperti:udevadm trigger
Untuk secara otomatis memberi nama symlink menggunakan nilai yang diberikan oleh
udevadm info -q all /dev/<YOUR-DEVICE>
, Anda dapat menggunakan:Dimungkinkan juga untuk membuat
ENV
variabel dariATTRS
nilai untuk mendapatkan ID unik yang lebih pendek.sumber
Jika Anda
ls /dev/disk-by-path/pci*
...Anda pasti akan melihat jalur PCI untuk setiap ruang drive. Anda hanya perlu menggunakan 1 disk yang dikenal untuk memastikan labelnya benar.
Gunakan
blkid /dev/disk-by-path/pci*
untuk melihat partisi disk mana yang ada di jalur PCI.Anda dapat memasang menggunakan jalur itu juga.
sumber
Saya suka solusi @cas, tapi ini 2 ¢ saya
sumber
Disk sudah dicap sebagai
sda
,sdb
,sdc
... Partisi kemudian diberi label misalnya padasda
:sda1
,sda2
...Anda dapat membuat daftar semua label untuk disk dan partisi
ls /dev/sd*
sumber