tự động gắn bất kỳ ổ đĩa ngoài nào dưới / phương tiện với quyền truy cập đọc / ghi cho mọi người


9

Đây là vấn đề của tôi:

Máy tính của tôi có 4 cổng USB và đang chạy Ubuntu 12.10. Tôi nhận được các USB khác nhau mỗi ngày, cắm vào máy tính của mình, đọc / ghi dữ liệu cho chúng và sau đó gửi chúng đi.

Điều tôi muốn là tự động gắn bất kỳ USB nào tôi cắm vào máy tính của mình. USB được phát hiện đầu tiên sẽ đi đến /media/HDD1, thứ hai sẽ đi /media/HDD2và cứ thế. Hoặc sẽ thật tuyệt nếu USB được cắm vào port1 /media/HDD1, USB được cắm vào port2 sẽ hoạt động /media/HDD2, v.v.

Đường dẫn /mediakhông quan trọng nhưng tôi muốn các thư mục HDD1-4 ở một nơi để tôi có thể dễ dàng truy cập chúng.

Các USB thường là ext2 nhưng đôi khi tôi cũng nhận được các USB FAT32, NTFS.

Tôi cũng muốn gắn USB mà không cần đăng nhập vào Ubuntu vì tôi thường truy cập /media/HDD..từ một máy tính Windows khác.

Làm thế nào tôi có thể làm điều đó? Những thay đổi trong udevquy tắc, fstabtôi nên thực hiện? Bất kỳ đề nghị được đánh giá cao.

Câu trả lời:


7

Chà, ở đây chúng ta có thể sử dụng cùng một mẹo fstabsử dụng cho phương tiện Quang học (còn gọi là CD và DVD):

/dev/sr0        /media/cdrom0   udf,iso9660 user,noauto     0       0

Cột đầu tiên cho thấy hệ thống tập tin, tôi là giá trị chắc chắn USB của bạn sẽ cố định, vì vậy cho phép đoán biết mọi thứ sau sdalà một USB, và kể từ khi bạn chỉ có thể có 4 USB cùng một lúc, danh sách đi từ sdb, sdc, sddsde.

$ ls /dev/sd*
/dev/sda   /dev/sdb   /dev/sdb3  /dev/sdb6  /dev/sdc  /dev/sdf
/dev/sda1  /dev/sdb1  /dev/sdb4  /dev/sdb7  /dev/sdd
/dev/sda2  /dev/sdb2  /dev/sdb5  /dev/sdb8  /dev/sde

(Trong trường hợp của tôi, tôi sử dụng trình đọc bộ nhớ, vì vậy trình điều khiển USB của tôi bắt đầu từ sdgnhưng cho phép tiếp tục.)

Bây giờ, chúng tôi giả sử mỗi USB có một và chỉ một phân vùng, do đó, các dòng chúng tôi cần, đối với chúng tôi fstab, là:

/dev/sdb1
/dev/sdc1
/dev/sdd1
/dev/sde1

Sau đó, bạn nói rằng điểm gắn kết của bạn phải được sửa chữa, vì vậy sau khi bạn đã tạo thư mục của mình, hãy thêm chúng:

/dev/sdb1 /media/HDD1
/dev/sdc1 /media/HDD2
/dev/sdd1 /media/HDD3
/dev/sde1 /media/HDD4

Vì bạn có thể có hầu hết tất cả các loại hệ thống tệp, hãy sử dụng autovì vậy fstab đoán loại tệp sẽ sử dụng:

/dev/sdb1 /media/HDD1 auto
/dev/sdc1 /media/HDD2 auto
/dev/sdd1 /media/HDD3 auto
/dev/sde1 /media/HDD4 auto

Ok, bây giờ cho phép thực hiện các tùy chọn, điều này sẽ giống với các CD với sự cho phép của quyền đọc / ghi:

/dev/sdb1 /media/HDD1 auto rw,users,noauto,allow_other,umask=0
/dev/sdc1 /media/HDD2 auto rw,users,noauto,allow_other,umask=0
/dev/sde1 /media/HDD3 auto rw,users,noauto,allow_other,umask=0
/dev/sde1 /media/HDD4 auto rw,users,noauto,allow_other,umask=0

rwnói rằng chúng tôi muốn có quyền đọc và ghi, userscho phép bất kỳ người dùng nào gắn thiết bị, noautongăn không cho trình điều khiển được gắn tự động khi mount -ađược gọi, giống như khi khởi động, ngăn khởi động ERRORS và WARNINGS, allow_othercho phép người khác gắn trình điều khiển có cùng quyền và umask=0ngăn các mặc định được áp dụng.

Bây giờ, 2 trường duy nhất còn lại khá nhiều về dumpthứ tự và fsckthứ tự, có thể ở 0cả hai, để lại cho chúng tôi kết quả cuối cùng:

/dev/sdb1 /media/HDD1 auto rw,user,noauto,allow_other 0 0
/dev/sdc1 /media/HDD2 auto rw,user,noauto,allow_other 0 0
/dev/sdd1 /media/HDD3 auto rw,user,noauto,allow_other 0 0
/dev/sde1 /media/HDD4 auto rw,user,noauto,allow_other 0 0

Với điều này, mỗi lần bạn cắm thiết bị USB, thiết bị sẽ được tự động gắn vào điểm gắn mà không cần sự can thiệp của người dùng. Bạn nên sửa đổi theo nhu cầu của bạn.


cảm ơn Braiam Tôi không chắc chắn nếu thay đổi fstab có thể tự động gắn USB mà không cần khởi động lại hoặc sử dụng lệnh "mount". Tôi tìm thấy một giải pháp đơn giản là sử dụng autofs. Nó không chỉ tự động đếm mà còn hỗ trợ tự động ngắt kết nối sau thời gian không có hành động được xác định trước, điều này rất hữu ích trong trường hợp của tôi
Kiwi

Không, nó không. Như tôi đã nói lúc đầu, tôi đã sử dụng cùng một thủ thuật mà fstab sử dụng cho CD / DVD không yêu cầu sử dụng rootcũng mountnhư không khởi động lại.
Braiam

3

Đây là giải pháp tôi tìm thấy:

Đầu tiên tôi cài đặt autofs trên PC linux của mình:

sudo apt-get install autofs

Nó sẽ tạo tập tin auto.master bên dưới /etc/auto.master

Thêm dòng sau vào cuối tập tin đó:

/media/mount /etc/auto.mount --timeout=10 --ghost

/media/mountlà một thư mục mà tôi muốn gắn tất cả các ổ đĩa ngoài vào. /etc/auto.mountlà tập tin để đưa vào quy tắc gắn kết. --timeout=10có nghĩa là nó sẽ tự động ngắt kết nối ổ đĩa sau 10 giây không hoạt động. --ghostcó nghĩa là nó vẫn để lại một hình ảnh của nội dung khi nó không được đếm. Thay đổi dòng này theo nhu cầu của bạn.

Chỉnh sửa /etc/auto.mounttập tin và thêm các dòng sau:

disk1  -fstype=auto,sync  :/dev/sdc1
disk2  -fstype=auto,sync  :/dev/sdd1
disk3  -fstype=auto,sync  :/dev/sde1
disk4  -fstype=auto,sync  :/dev/sdf1
disk5  -fstype=auto,sync  :/dev/sdg1
disk6  -fstype=auto,sync  :/dev/sdh1
disk7  -fstype=auto,sync  :/dev/sdi1
disk8  -fstype=auto,sync  :/dev/sdj1
DVD    -fstype=iso9660,ro :/dev/sr0

Đối với các ổ đĩa thông thường như USB hoặc eSATA được đặt -fstype=auto,sync. Tôi có 8 cổng USB + eSATA vì vậy tôi khai báo 8 điểm gắn kết ở đây. PC của tôi đã có sdasdblà đĩa cục bộ nên tôi đặt sdc1-> sdj1cho các thiết bị bên ngoài. Chúng thực sự là các nút thiết bị /devkhi bạn cắm ổ đĩa của mình. Một ngoại lệ của quy tắc gắn là gắn DVD như bạn thấy ở trên.

Khi tôi chèn bất kỳ ổ đĩa nào, chúng sẽ hiển thị dưới dạng đĩa1, đĩa2, ... trong /media/mountthư mục và sẽ tự động ngắt kết nối sau 10 giây. Tôi không cần chạm vào PC và có thể truy cập nó từ nơi khác (chẳng hạn như máy ảo)

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.