Bagaimana Linux mengetahui hard drive USB mana?

24

Saat ini saya sudah menginstal Linux Mint di PC saya dengan partisi hard drive USB terpasang /home. Ini bekerja dengan baik.

Jika saya memasang hard drive USB kedua, apakah ada kemungkinan Linux akan bingung di antara keduanya, dan coba pasang partisi hard drive kedua saat /homeboot? Itu akan buruk.

Berasal dari Windows, saya sering melihat bahwa huruf drive tidak "diingat" dengan benar menyebabkan segala macam masalah.

Saya kira pertanyaan utamanya adalah: Bagaimana cara Linux mengetahui hard drive USB /dev/sdbmana dan mana /media/misha/my_2nd_drive?

misha256
sumber
dengan partisi hard drive USB terpasang sebagai/home Bisakah Anda jelaskan bagaimana Anda melakukan ini?
AL
Saya melakukannya selama instalasi Linux Mint. Pada titik itu cukup mudah. SSD saya muncul sebagai sda dan hard drive USB muncul sebagai sdb . Saya menaruh /dan swappada sda , dan /homepada sdb . Tapi saya tidak akan tahu cara mengubah pemasangan instalasi yang ada /home, terlalu baru untuk itu!
misha256
Jawabannya mengatakan apa yang harus Anda lakukan, tetapi saya tidak berpikir mereka langsung mengatakan yang sd[a-z]hanya disebutkan dalam urutan deteksi. Tidak ada upaya sama sekali dilakukan untuk menjaga nama yang sama. Ini biasanya deterministik (kernel yang sama pada HW yang sama akan memberikan nama yang sama), tetapi kernel baru dengan pembaruan untuk driver SATA-controller dapat membuatnya memindai drive SATA dalam urutan yang berlawanan. Alih-alih bahkan mencoba mengubah nama perangkat blok (seperti yang dilakukan dengan nameifatau tanpa nama perangkat ethernet, biasanya dengan aturan udev), UUID, label, dan id (dengan drive serial num) nama ada.
Peter Cordes
Saya telah melihat server dengan disk SAS di mana reboot biasanya mengarah ke urutan berbeda sd[a-z]: pemeriksaan disk dilakukan secara bersamaan (paralel) dan disk apa pun yang terdeteksi pertama kali sda, dll.
wurtel

Jawaban:

26

Biasanya lokasi port USB (Bus / Perangkat) menentukan urutan terdeteksi. Namun, jangan mengandalkan ini.

Setiap sistem file memiliki UUID yang merupakan singkatan dari pengidentifikasi unik universal ( FAT dan NTFS menggunakan skema yang sedikit berbeda, tetapi mereka juga memiliki pengenal yang dapat digunakan sebagai UUID). Anda dapat mengandalkan UUID (Linux) untuk menjadi unik. Untuk informasi lebih lanjut tentang UUID, lihat artikel Wikipedia ini .

Gunakan disk UUID sebagai argumen mount. Untuk mengetahui apa UUID itu, jalankan ini:

$ sudo blkid /dev/sdb1

( blkidperlu membaca perangkat, maka itu membutuhkan kekuatan root, maka itu sudo. Jika Anda sudah menjadi root, sudoitu tidak diperlukan.)

Anda kemudian dapat menggunakan UUID itu /etc/fstabseperti ini:

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

Maka tidak akan ada kebingungan tentang apa disk yang akan dipasang / home.

Untuk pemasangan manual dapat Anda gunakan /dev/disk/by-uuid/.....

Wurtel
sumber
1
Luar biasa, saya bahkan tidak tahu fstabsampai sekarang (itulah cara baru saya untuk Linux). Saya telah melihat fstabfile saya dan semuanya sudah diidentifikasi oleh UUID. Penginstal Linux Mint bekerja dengan baik.
misha256
Anda dapat meningkatkan jawaban ini dengan menjelaskan secara singkat apa UUID itu, dan mengapa itu unik yang membuatnya menjadi pengidentifikasi yang andal.
AL
11

Jika fstabreferensi Anda berupa partisi /dev/sdx, maka menambahkan drive baru tentu dapat membingungkan sistem. Namun, praktik terakhir adalah menggunakan UUID Partisi untuk mengidentifikasi partisi.

Jika sistem Anda telah udevdiinstal (harus seperti kernel 2.6+ Linux), Anda dapat menggunakan penamaan yang persisten fstab. Secara default, partisi diidentifikasi melalui UUID:

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

Namun, Anda dapat membuat label partisi yang bermakna seperti "rumah" dan merujuk partisi Anda seperti ini:

/dev/disk/by-label/home

ID tersebut dapat digunakan sebagai pengganti untuk /dev/sdxmasuk fstab.

Dmitry Grigoryev
sumber
Saya berharap saya dapat menandai jawaban Anda juga benar. Wurtel berhubungan sebelumnya. Tapi terima kasih, Anda mendapatkan +1 saya.
misha256
@ misha256 Ironinya adalah bahwa saya bahkan tidak menggunakan UUID pada sistem saya (karena output dari dfdan mountmenjadi tidak dapat dibaca). HDD internal memiliki peluang yang cukup tinggi untuk dideteksi terlebih dahulu, dan dalam urutan yang sama setiap saat.
Dmitry Grigoryev
1
Jika Anda menggunakan label, Anda dapat menggunakan LABEL=homefstab Anda. Saya suka menggunakan label seperti t-homeuntuk direktori home di komputer saya yang disebut tesla. Jadi jika saya memasukkan disk ke sistem lain, tidak akan ada dua sistem file dengan label yang sama. Inilah sebabnya mengapa penginstal Linux menghasilkan UUID acak dan menggunakannya di fstab, alih-alih memiliki label default yang akan memberi kebanyakan sistem label yang sama untuk FS mereka. @ misha256, Anda mungkin ingin memikirkan ini jika Anda memberi label pada FSe Anda.
Peter Cordes
1
@PeterCordes Saya memang menggunakan labes, dan saya memiliki skema penamaan yang bertujuan membuat label ini unik.
Dmitry Grigoryev
1
UUID itu bagus dan berfungsi seperti disebutkan dalam jawaban. Tapi, mereka tidak ramah manusia. Setiap kali saya membuat partisi (di mana saja), saya memberi mereka label unik yang dapat dibaca manusia yang masuk akal bagi saya. Ini sangat membantu ketika menulis skrip cadangan yang berurusan dengan beberapa drive. Anda tidak ingin mendapatkan sumber dan tujuan terbalik secara tidak sengaja! Juga, setiap kali Anda memformat ulang suatu partisi, ia mendapat UUID baru dan Anda harus mengedit apa pun yang menggunakan UUID itu, sedangkan Anda masih dapat menggunakan label yang sama seperti sebelumnya dan tidak harus mengubah apa pun.
Joe