Linux รู้ได้อย่างไรว่าฮาร์ดไดรฟ์ USB ตัวใดอยู่


24

ขณะนี้ฉันมีลินุกซ์มิ้นท์ที่ติดตั้งในเครื่องคอมพิวเตอร์ของฉันกับพาร์ทิชันฮาร์ดไดรฟ์ USB /homeติดตั้งเป็น มันทำงานได้ดี

หากฉันติดตั้งฮาร์ดไดรฟ์ USB ตัวที่สองมีโอกาสใดบ้างที่ Linux จะสับสนระหว่างทั้งสองและลองติดตั้งพาร์ติชั่นฮาร์ดไดรฟ์ตัวที่สอง/homeเมื่อบูต? นั่นจะไม่ดี

มาจาก Windows ฉันเห็นว่ามันเกิดขึ้นบ่อยครั้งที่ตัวอักษรไดรฟ์ไม่ "จำได้" ถูกต้องทำให้เกิดปัญหาทุกประเภท

ฉันเดาว่าคำถามหลักคือ: Linux รู้ได้อย่างไรว่าฮาร์ดไดรฟ์ USB ตัวใดอยู่/dev/sdbและ/media/misha/my_2nd_driveอะไร


เมื่อติดตั้งพาร์ติชั่นฮาร์ดไดรฟ์ USB ไว้/homeคุณสามารถอธิบายวิธีการนี้ได้อย่างไร?
อัล

ฉันทำมันในระหว่างการติดตั้ง Linux Mint ณ จุดนี้มันค่อนข้างง่าย ฉัน SSD ปรากฏเป็นSDAและฮาร์ดไดร์ฟ USB ปรากฏเป็นSDB ฉันใส่/และswapในSDAและ/homeในSDB แต่ฉันไม่รู้จะเปลี่ยน/homeเมานต์ของการติดตั้งใหม่ได้อย่างไร
misha256

คำตอบบอกว่าคุณควรทำอะไร แต่ฉันไม่คิดว่าพวกเขาจะพูดโดยตรงว่าsd[a-z]ตั้งชื่อตามลำดับการตรวจจับ ไม่มีความพยายามที่จะทำให้ชื่อเหมือนกัน โดยทั่วไปแล้วจะกำหนดไว้ (เคอร์เนลเดียวกันบน HW เดียวกันจะให้การตั้งชื่อเดียวกัน) แต่เคอร์เนลใหม่ที่มีการอัปเดตไดรเวอร์คอนโทรลเลอร์ SATA สามารถทำให้สแกนไดรฟ์ SATA ในลำดับที่ตรงกันข้ามได้ แทนที่จะพยายามเปลี่ยนชื่ออุปกรณ์บล็อค (เช่นเดียวกับที่ทำด้วยnameifหรือ w / e สำหรับชื่ออุปกรณ์อีเธอร์เน็ตโดยปกติจะมีกฎ udev) ชื่อ UUID ป้ายกำกับและ id (ตามลำดับหมายเลขไดรฟ์) มีอยู่
Peter Cordes

ผมเคยเห็นเซิร์ฟเวอร์กับดิสก์ SAS ที่บูตเครื่องใหม่มักจะนำไปสู่การสั่งซื้อที่แตกต่างกันsd[a-z]คือการแหย่ของดิสก์จะทำไปพร้อม ๆ กัน (ในแบบคู่ขนาน) และสิ่งที่เกิดขึ้นกับดิสก์ถูกตรวจพบครั้งแรกที่กลายsdaเป็นต้น
wurtel

คำตอบ:


26

โดยปกติแล้วตำแหน่งของพอร์ต USB (บัส / อุปกรณ์) จะเป็นตัวกำหนดลำดับที่ตรวจพบ อย่างไรก็ตามอย่าพึ่งพาสิ่งนี้

แต่ละระบบไฟล์มีUUIDซึ่งย่อมาจากตัวระบุที่ไม่ซ้ำกันในระดับสากล ( FATและNTFSใช้รูปแบบที่แตกต่างกันเล็กน้อย แต่พวกเขายังมีตัวระบุที่สามารถใช้เป็น UUID) คุณสามารถพึ่งพา UUID (Linux) เพื่อให้มีเอกลักษณ์ สำหรับข้อมูลเพิ่มเติมเกี่ยว UUIDs ดูบทความวิกิพีเดียนี้

ใช้ดิสก์ UUID เป็นอาร์กิวเมนต์เมาท์ ในการค้นหาว่า UUID คืออะไรให้รันสิ่งนี้:

$ sudo blkid /dev/sdb1

( blkidจำเป็นต้องอ่านอุปกรณ์ดังนั้นจึงจำเป็นต้องใช้พลังของรูทดังนั้นsudoหากคุณกลายเป็นรูทแล้วsudoไม่จำเป็นต้องใช้)

จากนั้นคุณสามารถใช้ UUID นั้นใน/etc/fstabลักษณะนี้:

UUID=7e839ad8-78c5-471f-9bba-802eb0edfea5 /home ext4 defaults 0 2

จะไม่มีความสับสนเกี่ยวกับดิสก์ที่จะติดตั้งบน / home

สำหรับการติดตั้งด้วยตนเองคุณสามารถใช้ /dev/disk/by-uuid/.....


1
ยอดเยี่ยมฉันไม่รู้ด้วยซ้ำfstabจนกระทั่งตอนนี้ (นั่นเป็นเรื่องใหม่สำหรับฉันกับ Linux) ฉันได้ดูfstabไฟล์ของฉันและทุกอย่างถูกระบุโดย UUID แล้ว ตัวติดตั้ง Linux Mint ทำได้ดี
misha256

คุณสามารถปรับปรุงคำตอบนี้ได้โดยอธิบายสั้น ๆ ว่า UUID คืออะไรและทำไมมันถึงเป็นเอกลักษณ์ซึ่งทำให้มันเป็นตัวบ่งชี้ที่เชื่อถือได้
อัล

11

หากfstabการอ้างอิงพาร์ติชันของคุณเป็นเช่น/dev/sdxนั้นการเพิ่มไดรฟ์ใหม่อาจทำให้ระบบสับสนได้ อย่างไรก็ตามวิธีปฏิบัติล่าสุดคือใช้UUID ของพาร์ติชันเพื่อระบุพาร์ติชัน

หากระบบของคุณได้udevรับการติดตั้ง (ต้องเป็นกรณีสำหรับลินุกซ์เมล็ด 2.6+), fstabคุณสามารถใช้การตั้งชื่อแบบถาวรใน โดยดีฟอลต์พาร์ติชันจะถูกระบุผ่าน UUIDs:

/dev/disk/by-uuid/31f8eb0d-612b-4805-835e-0e6d8b8c5591

อย่างไรก็ตามคุณสามารถสร้างฉลากพาร์ติชันที่มีความหมายเช่น "home" และอ้างอิงพาร์ติชันของคุณเช่นนี้:

/dev/disk/by-label/home

รหัสเหล่านั้นสามารถนำมาใช้เป็นแทนใน/dev/sdxfstab


ฉันหวังว่าฉันสามารถทำเครื่องหมายคำตอบของคุณถูกต้องเช่นกัน Wurtel ได้สัมผัสก่อนหน้านี้ แต่ขอบคุณคุณยังได้รับ +1 ของฉัน
misha256

@ misha256 ประชดคือฉันไม่ได้ใช้ UUID ในระบบของฉัน (เพราะผลลัพธ์จากdfและmountกลายเป็นอ่านไม่ได้) Internal HDDs มีโอกาสสูงที่จะถูกตรวจพบก่อนและเรียงตามลำดับเดียวกันทุกครั้ง
Dmitry Grigoryev

1
หากคุณใช้ป้ายกำกับคุณสามารถใช้LABEL=homeในแท็บ fstab ของคุณได้ ฉันชอบใช้ป้ายกำกับเช่นt-homeสำหรับโฮมไดเรกทอรีบนเครื่องของฉันชื่อเทสลา ดังนั้นถ้าฉันติดดิสก์ในระบบอื่นจะไม่มีระบบไฟล์สองระบบที่มีป้ายกำกับเดียวกัน นี่คือสาเหตุที่ผู้ติดตั้ง Linux สร้าง UUID แบบสุ่มและใช้ใน fstab แทนที่จะมีป้ายกำกับเริ่มต้นที่จะให้ระบบส่วนใหญ่มีป้ายกำกับเดียวกันสำหรับ FSes @ misha256 คุณอาจต้องคิดถึงเรื่องนี้ถ้าคุณติดป้ายกำกับ FSes ของคุณ
Peter Cordes

1
@PeterCordes ฉันใช้แล็บอย่างแน่นอนและฉันมีรูปแบบการตั้งชื่อที่มุ่งทำให้ป้ายเหล่านี้ไม่เหมือนใคร
Dmitry Grigoryev

1
UUID นั้นยอดเยี่ยมและทำงานตามที่ระบุไว้ในคำตอบ แต่พวกเขาไม่ใช่มนุษย์ที่เป็นมิตร เมื่อใดก็ตามที่ฉันสร้างพาร์ทิชัน (ที่ใดก็ได้) ฉันจะให้ป้ายกำกับที่มนุษย์สามารถอ่านได้ซึ่งมีความหมายกับฉัน สิ่งนี้มีประโยชน์อย่างยิ่งเมื่อเขียนสคริปต์สำรองที่จัดการกับไดรฟ์หลายตัว คุณไม่ต้องการให้ต้นทางและปลายทางถูกสับเปลี่ยนโดยบังเอิญ! นอกจากนี้เมื่อใดก็ตามที่คุณจัดรูปแบบพาร์ติชันใหม่จะได้รับ UUID ใหม่และคุณต้องแก้ไขอะไรก็ตามที่ใช้ UUID นั้นในขณะที่คุณยังสามารถใช้ป้ายกำกับเดิมเหมือนเดิมและไม่ต้องเปลี่ยนอะไรเลย
โจ
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.