UUID kullanarak tüm diske (/ dev / sda) başvurma


9

Sistemimde (Debian), ben görebiliyorum UUIDbenim diskler, tüm bölümleri için tanımlayıcı (yani /dev/sda1, dev/sda2..)

ls /dev/disk/by-uuid/

Ancak, kendisi için UUIDtanımlayıcı görmüyorum /dev/sda. Tüm diske başvurmak mümkün müdür UUID?

Belirli bir diske başvurmak istediğim için buna ihtiyacım var ve çağrılacak güvenemiyorum /dev/sda.

DÜZENLE

@Don_crissti tarafından önerilen çözüm harika. Ancak, UUID'nin aynı Model / Üreticinin tüm sabit diskleri için aynı olmasını istiyorum, seri numarasına göre benzersiz değil.

Kullanarak udevadm, disk özniteliklerini görebilirsiniz:

udevadm info -n /dev/sda -a
ATTRS{model}=="Samsung SSD 840 "
ATTRS{vendor}=="0x8086"
ATTRS{class}=="0x010700"
ATTRS{device}=="0x1d6b"
....

UUIDAynı Model / Üretici diski aynı olacak şekilde bu özniteliklerden nasıl oluşturabilirim UUID?


UUID'ler bölümler için değil dosya sistemleri içindir. Bölümler için PARTUUID'ler vardır, ancak tüm diskler için hiçbir şey yoktur. Bunun /dev/sdayerine sabit bir ad vermek için bir udev kuralı yazmanız gerekecektir .
muru

1
Bununla ilgili ilginç olan şey şu anda MBR'de (en azından Windows tarafından oluşturulmuşsa) bir UUID var ama görünüşe göre bunu kullanmanın bir yolu yok.
Joshua

Yanıtlar:


12

Altındaki semboller , dosya sistemleri UUID'lerini temel alan kurallar /dev/disk/by-uuid/tarafından oluşturulur . Eğer bakarsanız aşağıdaki gibi girişler bulacaksınız:udev/usr/lib/udev/rules.d/60-persistent-storage.rules

...... ENV{ID_FS_UUID_ENC}=="?*", SYMLINK+="disk/by-uuid/$env{ID_FS_UUID_ENC}"

Bir diske başvurmak için disk seri numarasını ve ENV{ID_SERIAL_SHORT}anahtarını kullanabilirsiniz.
Aşağıdaki udevkural sürücüyü seri no. 0000000013100925DB96altında aynı ada sahip bir sembolik bağlantı oluşturur /dev/disk/by-uuid/:

KERNEL=="sd*", SUBSYSTEM=="block", ENV{DEVTYPE}=="disk", ENV{ID_SERIAL_SHORT}=="0000000013100925DB96", SYMLINK+="disk/by-uuid/$env{ID_SERIAL_SHORT}"

Diğer sorunuza gelince ... emin olun, sembolik adınız için özel bir dize ENV{ID_MODEL}yerine her zaman kullanabilirsiniz ENV{ID_SERIAL_SHORT}.
Aşağıdaki kural herhangi bir sürücüyü ID_MODEL= ile eşleştirir M4-CT128M4SSD2ve M4-SSD-1234567890altında bir sembolik bağlantı oluşturur /dev/disk/by-uuid/:

KERNEL=="sd*", SUBSYSTEM=="block", ENV{DEVTYPE}=="disk", ENV{ID_MODEL}=="M4-CT128M4SSD2", SYMLINK+="disk/by-uuid/M4-SSD-1234567890"

İle eşleşen tek bir sürücü olduğu sürece bunun iyi çalıştığını unutmayın ID_MODEL. Aynı modelin birden fazla sürücüsü varsa, kural her biri için tekrar uygulanır ve sembolik son algılanan / eklenen sürücüyü gösterir.


aslında, UUIDaynı Model / Tür / Üreticinin tüm diskleri için aynı olmak istiyorum . Bunun için hangi kuralı kullanacağınızı biliyor musunuz? Açıkçası seri numarası değil.
Michael Boies

lütfen düzenlememe bakın. Ne yapmaya çalışıyorum: hadi HDDbozulur diyelim , ama aynı özdeş disk var. Değiştiriyorum ve UUID(seri numarası değişmiş olsa bile) eskisi gibi olmak istiyorum . Her iki diski de aynı anda kullanmayı düşünmüyorum.
Michael Boies

@MichaelBoies - UUID'yi w / gdisk- doğrudan değiştirebilirsiniz, ancak bunun iyi bir fikir olup olmadığından emin değilim. Bağlantıları doğrudan değiştirmek, UUID'yi değiştirmek yerine bunu yapmanın daha iyi bir yoludur - bilgisayar muhtemelen önyüklemeyi durduracaktır.
mikeserv
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.