Làm thế nào để Linux biết ổ cứng USB nào?


24

Hiện tại tôi có Linux Mint được cài đặt trên PC với phân vùng ổ cứng USB được gắn dưới dạng /home. Điều này đang làm việc tốt.

Nếu tôi cài đặt ổ cứng USB thứ hai, có khả năng Linux sẽ bị lẫn lộn giữa hai ổ này không, và thử gắn phân vùng của ổ cứng thứ hai như khi /homekhởi động? Điều đó sẽ rất tệ.

Đến từ Windows, tôi đã thấy điều đó xảy ra thường xuyên là các ký tự ổ đĩa không được "nhớ" chính xác gây ra tất cả các loại vấn đề.

Tôi đoán câu hỏi chính là: Làm thế nào Linux thực sự biết ổ cứng USB nào /dev/sdbvà cái /media/misha/my_2nd_drivenào?


với một phân vùng ổ cứng USB được gắn kết như/home bạn có thể giải thích cách bạn đã làm điều này?
AL

Tôi đã làm điều đó trong quá trình cài đặt Linux Mint. Tại thời điểm đó, nó khá dễ dàng. SSD của tôi xuất hiện dưới dạng sda và ổ cứng USB xuất hiện dưới dạng sdb . Tôi đặt /swaptrên sda , và /hometrên sdb . Nhưng tôi sẽ không biết cách thay đổi giá trị cài đặt hiện có /home, quá mới cho điều đó!
misha256

Các câu trả lời cho biết bạn nên làm gì, nhưng tôi không nghĩ rằng họ trực tiếp nói rằng sd[a-z]được đặt tên đơn giản theo thứ tự phát hiện. Không có nỗ lực nào được thực hiện để giữ cho các tên giống nhau. Nó thường mang tính xác định (cùng một hạt nhân trên cùng một CTNH sẽ cho cùng một cách đặt tên), nhưng một hạt nhân mới có bản cập nhật cho trình điều khiển bộ điều khiển SATA có thể khiến nó quét các ổ đĩa SATA theo thứ tự ngược lại. Thay vì thậm chí cố gắng đổi tên các thiết bị khối (như được thực hiện với nameifhoặc w / e cho tên thiết bị ethernet, thường là với các quy tắc udev), tên UUID, nhãn và id (theo số serial serial) tồn tại.
Peter Cordes

Tôi đã thấy các máy chủ có đĩa SAS nơi khởi động lại thường sẽ dẫn đến một thứ tự khác sd[a-z]: việc thăm dò đĩa được thực hiện đồng thời (song song) và bất kỳ đĩa nào xảy ra sẽ được phát hiện đầu tiên sda, v.v.
wurtel

Câu trả lời:


26

Thông thường vị trí của cổng USB (Bus / Thiết bị) sẽ xác định thứ tự được phát hiện trên đó. Tuy nhiên, đừng dựa vào điều này.

Mỗi hệ thống tệp có một UUID là viết tắt của mã định danh duy nhất trên toàn cầu ( FATNTFS sử dụng một lược đồ hơi khác nhau, nhưng chúng cũng có một mã định danh có thể được sử dụng làm UUID). Bạn có thể dựa vào UUID (Linux) là duy nhất. Để biết thêm thông tin về UUID, xem bài viết Wikipedia này .

Sử dụng UUID đĩa làm đối số gắn kết. Để tìm hiểu UUID là gì, hãy chạy nó:

$ sudo blkid /dev/sdb1

( blkidcần đọc thiết bị, do đó, nó cần quyền hạn root, do đó sudo. Nếu bạn đã trở thành root, sudothì không cần thiết.)

Sau đó, bạn có thể sử dụng UUID đó /etc/fstabnhư thế này:

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

Sau đó, có thể không có sự nhầm lẫn về những gì đĩa được gắn trên / nhà.

Để gắn thủ công, bạn có thể sử dụng /dev/disk/by-uuid/.....


1
Thật tuyệt vời, tôi thậm chí còn không biết fstabđến bây giờ (đó là cách tôi mới sử dụng Linux). Tôi đã xem fstabtập tin của mình và mọi thứ đã được UUID xác định. Trình cài đặt Linux Mint đã làm tốt.
misha256

Bạn có thể cải thiện câu trả lời này bằng cách giải thích ngắn gọn UUID là gì và tại sao nó lại là một định danh đáng tin cậy.
AL

11

Nếu fstabtài liệu tham khảo của bạn phân vùng như /dev/sdx, sau đó thêm một ổ đĩa mới chắc chắn có thể gây nhầm lẫn cho hệ thống. Tuy nhiên, thực tế gần đây là sử dụng UUID phân vùng để xác định các phân vùng.

Nếu hệ thống của bạn đã udevđược cài đặt (phải là trường hợp của 2.6+ nhân Linux), bạn có thể sử dụng đặt tên liên tục fstab. Theo mặc định, các phân vùng được xác định thông qua UUID:

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

Tuy nhiên, bạn có thể tạo nhãn phân vùng có ý nghĩa như "nhà" và tham chiếu phân vùng của mình như thế này:

/dev/disk/by-label/home

Những ID có thể được sử dụng như là một thay thế cho /dev/sdxtrong fstab.


Tôi ước tôi có thể đánh dấu câu trả lời của bạn chính xác quá. Wurtel đã liên lạc trước đó. Nhưng dù sao cũng cảm ơn bạn, bạn nhận được +1 của tôi.
misha256

@ misha256 Điều trớ trêu là tôi thậm chí không sử dụng UUID trên các hệ thống của mình (vì đầu ra từ dfmountkhông thể đọc được). Ổ cứng nội bộ có cơ hội khá cao được phát hiện đầu tiên và theo cùng một thứ tự mỗi lần.
Dmitry Grigoryev

1
Nếu bạn sử dụng nhãn, bạn có thể sử dụng LABEL=hometrong fstab của mình. Tôi thích sử dụng nhãn như t-homecho thư mục chính trên máy của tôi được gọi là tesla. Vì vậy, nếu tôi dán đĩa vào một hệ thống khác, sẽ không có hai hệ thống tập tin có cùng nhãn. Đây là lý do tại sao các trình cài đặt Linux tạo ra các UUID ngẫu nhiên và sử dụng chúng trong fstab, thay vì có các nhãn mặc định sẽ cung cấp cho hầu hết các hệ thống các nhãn giống nhau cho các FS của chúng. @ misha256, bạn có thể muốn nghĩ về điều này nếu bạn dán nhãn cho các FS của bạn.
Peter Cordes

1
@PeterCordes Tôi thực sự sử dụng các phòng thí nghiệm và tôi có một kế hoạch đặt tên nhằm làm cho các nhãn này trở nên độc đáo.
Dmitry Grigoryev

1
UUID là tuyệt vời và làm việc như đã lưu ý trong các câu trả lời. Nhưng, chúng không thân thiện với con người. Bất cứ khi nào tôi tạo phân vùng (bất cứ nơi nào), tôi cung cấp cho họ nhãn độc đáo có thể đọc được của con người có ý nghĩa với tôi. Điều này đặc biệt hữu ích khi viết các kịch bản sao lưu xử lý một số ổ đĩa. Bạn không muốn có được một nguồn và đích đảo ngược do tai nạn! Ngoài ra, bất cứ khi nào bạn định dạng lại một phân vùng, nó sẽ nhận được một UUID mới và bạn phải chỉnh sửa bất cứ thứ gì đã sử dụng UUID đó, trong khi bạn vẫn có thể sử dụng cùng một nhãn như trước đây và không phải thay đổi bất cứ điều gì.
Joe
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.