Ổ đĩa USB tự động không có yêu cầu GUI (thay thế halevt)


8

Để cài đặt tối thiểu Debian, tôi đã sử dụng halevtđể cho phép tự động kết nối các ổ USB. Halevtlà đáng tin cậy và không yêu cầu cấu hình ngoài việc cài đặt gói. Bây giờ, halevtđã bị xóa khỏi Kiểm tra Debian và tôi đang tìm kiếm một sự thay thế, nhưng không có lựa chọn thay thế nào có vẻ đơn giản như vậy.

Tiện ích nào để tự động đếm các ổ USB sẽ nhẹ nhất, đơn giản và ổn định nhất?

EDIT: Tôi không bao giờ có thể khiến udev làm việc theo cách tôi muốn. Vấn đề là các quy tắc udev luôn được chạy dưới quyền root, vì vậy phương tiện được gắn kết dưới dạng root. Có thể gắn mã cứng với tư cách là một người dùng cụ thể, nhưng có vẻ như bạn không thể đưa ra quy tắc gắn kết như người dùng hiện tại. Theo tài liệu, nó có thể với giá trị MODE, nhưng dường như nó không được triển khai trong Debian. Vì vậy, nếu yêu cầu tự động hóa, tôi vẫn phải sử dụng halevt. Nếu không, tôi sử dụng pmount.


Theo tối thiểu, tôi giả sử bạn có nghĩa là không có X và Gnome / KDE?
Mikel

1
Cài đặt Debian không có Dịch vụ Hệ thống và Môi trường Máy tính. Vì vậy, với X nhưng không có Gnome / KDE.
user5184

Hmm, hiện tại Halevtđang ổn định, thử nghiệm và không ổn định.
Faheem Mitha

Câu trả lời:


3

Các tính năng dựa trên đĩa của HAL đã được thay thế bằng udevudisks .

Có một ví dụ đầy đủ về cách sử dụng udev để thực hiện việc này trên trang trình bao bọc UDisks của Automounting :

/etc/udev/rules.d/11-media-by-label-auto-mount.rules

KERNEL!="sd[a-z][0-9]", GOTO="media_by_label_auto_mount_end"

# Import FS infos
IMPORT{program}="/sbin/blkid -o udev -p %N"

# Get a label if present, otherwise specify one
ENV{ID_FS_LABEL}!="", ENV{dir_name}="%E{ID_FS_LABEL}"
ENV{ID_FS_LABEL}=="", ENV{dir_name}="usbhd-%k"

# Global mount options
ACTION=="add", ENV{mount_options}="relatime"
# Filesystem-specific mount options
ACTION=="add", ENV{ID_FS_TYPE}=="vfat|ntfs", ENV{mount_options}="$env{mount_options},utf8,gid=100,umask=002"

# Mount the device
ACTION=="add", RUN+="/bin/mkdir -p /media/%E{dir_name}", RUN+="/bin/mount -o $env{mount_options} /dev/%k /media/%E{dir_name}"

# Clean up after removal
ACTION=="remove", ENV{dir_name}!="", RUN+="/bin/umount -l /media/%E{dir_name}", RUN+="/bin/rmdir /media/%E{dir_name}"

# Exit
LABEL="media_by_label_auto_mount_end"

Để biết thêm thông tin về udev:

Ngoài ra còn có một vài lựa chọn dựa trên udisks sẽ tương đương với halevt mới:

Tôi không thể tìm thấy bất kỳ ứng dụng nào trong kho lưu trữ thử nghiệm , vì vậy bạn có thể phải tìm kho lưu trữ apt của bên thứ ba hoặc làm theo hướng dẫn của họ để biên dịch phần mềm trên máy của riêng bạn.


Tôi hy vọng một giải pháp đơn giản như halevt, chỉ cần "Cài đặt <gói> và bạn đã hoàn tất." Tôi sẽ phải xem xét các gói đó.
user5184

Sao chép mã ở trên, dán mã vào tệp được đề xuất (/etc/udev....rules) và hy vọng bạn đã hoàn thành.
Mikel

Đã thử điều này trên hai máy Debian, nhưng nó không hoạt động tốt. 1. Tất cả các thiết bị được gắn kết như root. 2. Tự động ngắt kết nối đôi khi không thành công, để lại một nút liên tục thông qua khởi động lại. 3. Một số ổ đĩa không được cấp nguồn hoàn toàn không được gắn kết. 4. Nhiều lần chuyển tập tin không thành công. Tôi không có vấn đề nào trong số này halevt.
user5184

2

Nếu bạn không muốn sử dụng hal, bạn có thể sử dụng quy tắc udev để tự động hóa các ổ đĩa của mình. Arch Wiki có một bài viết hay về các quy tắc ở đây:

https://wiki.archlinux.org/index.php/Udev#Auto_mounting_USB_devices

Bạn cũng có thể xem xét việc sử dụng thứ gì đó như udiskie (nó có trong AUR):

https://wiki.archlinux.org/index.php/Udiskie

Ngoài ra còn có một kịch bản để tích hợp udiskie vào menu Openbox của bạn .


Cảm ơn, điều đó giúp rất nhiều! Tôi đã đọc tài liệu Arch cho Udev tuy nhiên nó không thực sự giải thích chính xác cách viết quy tắc của riêng bạn, điều này làm tôi khó chịu một chút vì tôi muốn hiểu những gì nó đang làm trước khi tôi chỉ sao chép và dán nó vào. Tôi sẽ thử ra ngoài và xem nếu nó gắn kết công cụ của tôi. Nhân tiện, lợi ích của việc sử dụng HAL so với Udev hay ngược lại là gì?
kelinu

HAL đã không còn được sử dụng nữa và không còn phát triển nữa, vì vậy - mùa đông trở đi, bạn sẽ cần phải chuyển sang các sắp xếp khác. Quy tắc đầu tiên trên trang wiki sẽ thực hiện những gì bạn đang có sau ...
jasonwryan

Được rồi, cảm ơn ... Tôi sẽ gắn bó với Udev và tôi sẽ làm cho quy tắc đó hoạt động bình thường
kelinu

1

Bạn có lẽ nên xem xét việc thiết lập các quy tắc udev, hal hoặc hotplug của riêng bạn để tự động hóa các ổ đĩa và thậm chí chạy các lệnh khi chúng kết nối. Bạn cũng có thể nhìn vào pmount .

Có khá nhiều bộ đếm tự động cho linux, bạn chỉ cần tìm ra cái gì phù hợp với công việc của bạn nhất.

Ngoài ra, hãy lưu ý rằng bạn có thể chạy nhiều phần từ DE của DE lớn hơn mà không cần chạy toàn bộ. Bạn có thể sử dụng gnome-volume-manager riêng biệt với việc sử dụng nó cho phiên của bạn.


Tôi nghĩ rằng udev là một thiết bị tự động phải không? Tôi đã cài đặt mặc định với Arch Linux nhưng tôi không chắc nó hoạt động như thế nào ... có ai có cái nhìn sâu sắc về điều này không?
kelinu

Đúng. Hãy thử tài liệu ArchLinux Udev .
Caleb

Có phải gnome-volume-manager cũng là một loại máy tự động sở hữu?
kelinu

1
Việc bạn sử dụng tính từ "độc quyền" không có ý nghĩa gì vì gnome cũng là nguồn mở, nhưng vâng, GVM chỉ là một trình bao bọc tự động fancier nhỏ hơn một chút xung quanh pmount.
Caleb
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.