หากฮาร์ดดิสก์สองตัวของคุณอยู่ในส่วนต่อประสานที่แตกต่างกันและควบคุมโดยไดรเวอร์อื่น ๆ Linux จะตั้งชื่อตามลำดับการเริ่มต้นไดรเวอร์ หากการกำหนดค่าเริ่มต้นเป็นแบบขนานสิ่งนี้อาจทำให้การกำหนดชื่ออุปกรณ์แตกต่างกันไป
ชื่ออุปกรณ์ถูกกำหนดโดย udev . ปัญหาของคุณถูกกล่าวถึงใน Arch wiki แต่ดูเหมือนจะไม่มีทางแก้ไข
ฉันไม่คุ้นเคยกับ Arch ดังนั้นฉันจะอธิบายวิธีแก้ปัญหานี้ใน Ubuntu คุณลักษณะพื้นฐานที่ให้บริการโดยเคอร์เนล Linux ซึ่งเหมือนกัน แต่อาจมีการตั้งค่าการกำหนดค่าที่ทำให้คุณสมบัติเหล่านี้ทำงานแตกต่างกันบน Arch
แทนที่จะใช้ /dev/sda2
เป็นอุปกรณ์รูท ( root=
) การตั้งค่าใน bootloader คุณสามารถใช้ UUID หรือฉลากด้วยไวยากรณ์ต่อไปนี้:
… /boot/vmlinuz root=UUID=01234567-89ab-cdef-0123-456789abcdef ro …
… /boot/vmlinuz root=LABEL=mylabel ro …
UUID ระบุระบบไฟล์ที่ไม่ซ้ำกันดังนั้นคุณจึงต้องการ UUID ของระบบไฟล์ที่เปิดอยู่ /dev/sda2
. บน Ubuntu /dev/disk/by-uuid/01234567-89ab-cdef-0123-456789abcdef
เป็นลิงก์สัญลักษณ์ไปยัง /dev/sda2
. หากระบบไฟล์ของคุณมีป้ายกำกับ (ตั้งค่าด้วยตนเองมันขึ้นอยู่กับคุณที่จะบังคับใช้เอกลักษณ์) มีลิงก์สัญลักษณ์ภายใต้ /dev/disk/by-label
. ป้ายกำกับและลิงก์ UUID สร้างขึ้นโดยกฎ udev ต่อไปนี้:
ENV{ID_FS_USAGE}=="filesystem|other|crypto", ENV{ID_FS_UUID_ENC}=="?*", SYMLINK+="disk/by-uuid/$env{ID_FS_UUID_ENC}"
ENV{ID_FS_USAGE}=="filesystem|other", ENV{ID_FS_LABEL_ENC}=="?*", SYMLINK+="disk/by-label/$env{ID_FS_LABEL_ENC}"