Làm cách nào để tôi gắn đúng ổ đĩa mỗi khi Raspberry Pi khởi động lại?


13

Tôi thường biết cách gắn ổ đĩa cứng trong một hệ thống UNIX. Nhưng tôi bối rối với một điều. Nói tôi có disk #1disk #2. Tôi gắn kết disk #1với sudo mount /dev/sda1 /mnt/drive. Làm sao tôi biết điều đó sda1sẽ được chỉ định disk #1và không disk #2, đặc biệt là sau khi Raspberry Pi khởi động lại? Nói cách khác, làm thế nào tôi có thể có sda1sdb1được gán cho đĩa số 1 và số 2 tương ứng và ngăn không cho nó hoán đổi với nhau sau khi khởi động lại?


1
Đây là một câu hỏi hay vì trên hệ thống multidisk / dev / sda không phải luôn luôn / dev / sda sau khi khởi động lại.
Bạch tuộc

Câu trả lời:


16

Ổ đĩa được phân biệt bởi UUID (định danh duy nhất trên toàn cầu). Bạn có thể tìm UUID của HD của mình bằng lệnh ls -l /dev/disk/by-uuid/ Sau đó, bạn phải tạo các điểm gắn kết sudo mkdir /MOUNT/POINT1 và thay đổi quyền của chúng sudo chmod 775 /MOUNT/POINT1 Sau đó, bạn thêm một dòng vào tệp fstab của mình (nằm ở / etc / fstab) trông giống như sau:

UUID=BLAHBLAH12341234 /MOUNT/POINT1 ntfs-3g rw,defaults 0 0
UUID=12341234BLAHBLAH /MOUNT/POINT2 ext rw,defaults 0 0

Tất nhiên bạn phải thay đổi nó theo hệ thống tệp của mình, v.v. Sau đó lưu tệp và khởi động lại và HD của bạn sẽ tự động gắn vào các điểm gắn kết đã cho.


1
Như tôi đã chỉ ra trong câu trả lời của mình, đó không phải là các ổ đĩa, mà là các phân vùng trên các ổ đĩa được xác định bởi UUID. (Một sự khác biệt tinh tế.) Nếu bạn định dạng lại một ổ đĩa, điều đó sẽ tạo ra một phân vùng mới có UUID mới.
Fred

Bạn có ý nghĩa gì bởi " / MOUNT / POINT1 "? Đó có phải là định nghĩa theo nghĩa đen của điểm gắn kết?
IgorGanapolsky

1
@IgorGanapolsky nó chỉ là tên của thư mục bạn muốn gắn kết các phân vùng của mình. Chọn tùy thích.
ios.id0

Tốt hơn là chỉ khởi động lại là thực thi sudo mount -avà xem nếu có bất kỳ lỗi nào. Nếu có, nó có thể dẫn đến một hệ thống không khởi động.
Ngày

7

Đây hoàn toàn là một câu hỏi chung của Linux, nhưng dù sao câu trả lời là phân vùng UUID (Mã định danh duy nhất toàn cầu). Giống như tên nói trên hộp thiếc, khi một phân vùng được định dạng, một ID duy nhất ngẫu nhiên được tạo để mô tả nó. Bạn có thể sử dụng cái này để gắn kết để đảm bảo rằng bạn luôn có được phân vùng chính xác. Các blkidlệnh đưa ra một danh sách các UUIDs cho các thiết bị hiện kèm theo, ví dụ như:

/dev/sda4: UUID="2d02d277-a79c-4818-adc7-c37484e17c6a" TYPE="ext3" 

Điều này sẽ tương ứng với một thiết bị / dev, trong trường hợp này /dev/disk/by-uuid/2d02d277-a79c-4818-adc7-c37484e17c6a. Bạn có thể sử dụng nó để gắn kết. Bạn có thể sử dụng ký hiệu ngắn hơn một chút /etc/fstabđể xác định rằng ổ đĩa nên được gắn:

UUID=2d02d277-a79c-4818-adc7-c37484e17c6a /mnt/backup ext3 defaults 0 0

Xem tại đây để biết thêm chi tiết, hoặc xem kết quả tìm kiếm UUID tại đây .


1
Khi tôi gõ blkid , tôi không nhận được gì!
IgorGanapolsky

@IgorGanapolsky Hãy thử sudo blkid. Rõ ràng blkidyêu cầu quyền root, nhưng trên Raspberry Pi theo mặc định, bạn sẽ đăng nhập với tư cách là người dùng không có đặc quyền pi.
herzbube

0

Cảm ơn gabriel giải quyết, vấn đề tương tự ở đây (Raspberry 2). Nhưng tôi có thể bỏ qua 30 giây theo thời gian RC.local hoạt động được thiết bị đã được tìm thấy, vì vậy một

sudo mount -a

trong /etc/rc.local đã thực hiện công việc.


-2

Vâng, đúng và không đúng Trong trường hợp của tôi, lõi RPI v2 4, một cái gì đó đã thay đổi kể từ phiên bản v1 như sau: chỉnh sửa fstab để tự động hdd bên ngoài khi bắt đầu không chạy, không sử dụng uuid, không sử dụng / dev / sda1

Vấn đề là tôi phải đợi 30 giây sau khi khởi động hoàn toàn để gắn ổ đĩa ngoài của mình, điều kỳ lạ là trên thanh USB, fstab chạy hoàn hảo. Vì vậy, tôi đã làm một kịch bản để ngủ 30; sudo mount -a để chạy mọi thứ.

đây là / etc / fstab

pi@raspberrypi ~ $ cat /etc/fstab 
proc            /proc           proc    defaults          0       0
/dev/mmcblk0p1  /boot           vfat    defaults          0       2
/dev/mmcblk0p2  /               ext4    defaults,noatime  0       1
# a swapfile is not a swap partition, so no using swapon|off from here on, use  dphys-swapfile swap[on|off]  for that

Và thêm dòng cuối cùng

UUID=3d81d9e2-7d1b-4015-8c2c-29ec0875f762 /media/250_gb ext4 defaults 0 0

Đây là phần mở rộng /etc/rc.local của tôi

# Begin all drives remount
clear
echo "Please wait 30 seconsds in order to remount all missing drives !!!"
for x in `seq 1 30`
do
echo -n "."
sleep 1
done
sudo mount -a
sudo service minidlna force-reload

# End drives remount 

exit 0

Nó có thể là một cái gì đó với bộ chuyển đổi USB jmicron, không cần đợi 30 giây, nó nói rằng thiết bị không có mặt mặc dù lsusb có bộ điều hợp Jmicron chính xác Phải đào sâu xuống lòng đất !!!

Đây là 2 ảnh chụp nhanh trên TV của tôi Trước nhập mô tả hình ảnh ở đây đó nhập mô tả hình ảnh ở đây

gabriel@linux-romania.com


1
Câu hỏi nói về thứ tự đĩa và không phải về thiết bị không có sẵn.
mpromonet 18/03/2015
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.