อ้างอิงทั้งดิสก์ (/ dev / sda) โดยใช้ UUID


9

ในระบบของฉัน (Debian) ผมสามารถมองเห็นUUIDตัวระบุทั้งหมดของพาร์ทิชันดิสก์ของฉัน (เช่น/dev/sda1, dev/sda2, .. )

ls /dev/disk/by-uuid/

อย่างไรก็ตามฉันไม่เห็นUUIDตัวระบุสำหรับ/dev/sdaตัวเอง เป็นไปได้UUIDหรือไม่ที่จะอ้างอิงทั้งดิสก์ด้วย?

ฉันต้องการสิ่งนี้เพราะฉันต้องการอ้างอิงดิสก์เฉพาะและฉันไม่สามารถ/dev/sdaเชื่อถือได้จะถูกเรียก

แก้ไข

วิธีการแก้ปัญหาที่แนะนำโดย @don_crissti นั้นยอดเยี่ยม อย่างไรก็ตามฉันต้องการให้ UUID เหมือนกันสำหรับฮาร์ดดิสก์ทั้งหมดในรุ่น / ผู้ผลิตเดียวกันไม่ใช่หมายเลขเฉพาะ

ใช้udevadmฉันสามารถดูคุณสมบัติของดิสก์:

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

ฉันจะสร้าง a UUIDจากแอ็ตทริบิวต์เหล่านี้ดังนั้นดิสก์รุ่น / ผู้ผลิตเดียวกันจะมีเหมือนกันได้UUIDอย่างไร


UUID ใช้สำหรับระบบไฟล์ไม่ใช่พาร์ติชัน มีพาร์ติชันสำหรับพาร์ติชัน แต่ไม่มีอะไรสำหรับดิสก์ทั้งหมด คุณอาจจะต้องเขียนกฎ udev เพื่อให้/dev/sdaชื่อคงที่แทน
muru

1
สิ่งที่น่าสนใจเกี่ยวกับเรื่องนี้คือตอนนี้มี UUID ใน MBR (อย่างน้อยถ้ามันถูกสร้างโดย Windows) แต่ดูเหมือนจะไม่มีวิธีใช้
Joshua

คำตอบ:


12

การเชื่อมโยงภายใต้/dev/disk/by-uuid/ถูกสร้างโดยudevกฎตามUUID ของระบบไฟล์ หากคุณมอง/usr/lib/udev/rules.d/60-persistent-storage.rulesคุณจะพบรายการที่ชอบ:

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

ในการอ้างอิงดิสก์คุณสามารถใช้หมายเลขซีเรียลดิสก์และENV{ID_SERIAL_SHORT}คีย์ กฎ
ต่อไปนี้udevตรงกับไดรฟ์ที่มีหมายเลขอนุกรม 0000000013100925DB96และสร้าง symlink ด้วยชื่อเดียวกันภายใต้/dev/disk/by-uuid/:

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

สำหรับคำถามอื่น ๆ ของคุณ ... แน่นอนคุณสามารถใช้ENV{ID_MODEL}แทนENV{ID_SERIAL_SHORT}และใช้สตริงที่กำหนดเองสำหรับชื่อ symlink ของคุณได้
กฎต่อไปนี้ตรงกับไดรฟ์ใด ๆ ที่มีID_MODEL= M4-CT128M4SSD2และสร้าง symlink M4-SSD-1234567890ภายใต้/dev/disk/by-uuid/:

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

ID_MODELโปรดทราบว่างานนี้ดีตราบเท่าที่มีเพียงหนึ่งไดรฟ์จับคู่ หากมีหลายไดรฟ์ของรุ่นเดียวกันกฎจะถูกนำมาใช้อีกครั้งสำหรับแต่ละไดรฟ์และ symlink จะชี้ไปที่ไดรฟ์ที่ตรวจพบ / เพิ่มล่าสุด


จริง ๆ แล้วฉันต้องการจะเหมือนUUIDกันสำหรับดิสก์ทั้งหมดของรุ่น / ประเภท / ผู้ผลิตเดียวกัน คุณรู้หรือไม่ว่าจะใช้กฎอะไรในการทำเช่นนั้น? เห็นได้ชัดว่าไม่ใช่หมายเลขซีเรียล
Michael Boies

โปรดดูการแก้ไขของฉัน สิ่งที่ฉันพยายามทำให้สำเร็จ: ให้พูดว่าHDDตัวแบ่งของฉันแต่ฉันมีแผ่นดิสก์ที่แทนที่เหมือนกัน ฉันแทนที่มันและฉันต้องการให้เหมือนเดิมUUID(แม้ว่าหมายเลขซีเรียลจะเปลี่ยนไป) ฉันไม่ต้องการใช้ทั้งสองดิสก์ในเวลาเดียวกัน
Michael Boies

@MichaelBoies - คุณสามารถแก้ไข UUID ได้โดยตรงgdisk- แต่ฉันไม่แน่ใจว่านั่นเป็นความคิดที่ดีหรือไม่ don - แก้ไขการเชื่อมโยงโดยตรงเป็นวิธีที่ดีกว่าที่จะทำมากกว่าการแก้ไข UUID จริง - คอมพิวเตอร์อาจหยุดบูต
mikeserv
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.