Pertanyaan Bagaimana cara mendapatkan udev untuk memasang disk USB tertentu ketika dicolokkan, atau setelah reboot?


Saya baru saja meng-upgrade ke Fedora 15. Saya telah menggunakan Bacula untuk cadangan selama beberapa tahun sekarang, dan itu berfungsi dengan baik. Tapi sekarang saya baru saja mengalami masalah, mungkin karena Bacula sekarang berjalan sebagai pengguna bacula daripada sebagai root.

Media cadangan saya adalah dua disk drive USB (saya menyimpan satu offsite dan menukarnya sekali sebulan atau lebih). Namun Fedora secara otomatis me-mount USB drive dengan titik mount yang dimiliki oleh UID saya dengan mode 700, mungkin karena saya masuk dan ini akan menjadi Hal yang Tepat untuk sebagian besar penyimpanan USB. Namun dalam hal ini bukan karena Bacula tidak dapat mengaksesnya.

Jika saya memahami urutan kejadian dengan benar, udev membuat node perangkat / dev / sdb dan / dev / sdb1, dan ini kemudian diautount oleh udisk (yang merupakan komponen Gnome). Ini adalah udisk yang menentukan parameter mount.

Yang saya inginkan adalah untuk setiap disk berlabel "CADANGAN *" untuk dipasang dengan titik tunggangannya yang dimiliki oleh bacula: bacula, mode 700. Saya pikir saya perlu file aturan udev khusus di /etc/udev/rules.d. Saya sudah membaca halaman udev (7) dan "Menulis aturan udev". Ini adalah apa yang telah saya peroleh sejauh ini, dalam sebuah file bernama" 10-backup-disk.rules ". Ini sedang diurai oleh udev OK, tetapi tidak berfungsi: disk masih menjadi milik saya. Bisakah seseorang memberi tahu saya apa yang saya lakukan salah?

Terima kasih.

KERNEL!="sd[a-z][0-9]", GOTO="backup-disk_auto_mount_end"
ENV{ID_FS_LABEL}!="BACKUP*", GOTO="backup-disk_auto_mount_end"

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

# Get disk label
ENV{dir_name}="%E{ID_FS_LABEL}"

# Global mount options
ACTION=="add", ENV{mount_options}="relatime,rw"
# Filesystem-specific mount options
ACTION=="add", ENV{mount_options}="$env{mount_options}"

# 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="backup-disk_auto_mount_end"

2
2018-06-08 18:53


asal




Jawaban:


Saya tidak tahu apa-apa tentang itu udev, tetapi karena Anda menggunakan Fedora 15 Anda dapat mencapai hal yang sama dengan systemd jauh lebih sederhana.

Dengan asumsi Anda memiliki drive USB berlabel BACKUP_ONE, buat file berikut:

/etc/systemd/system/mnt-backup1.mount:

[Mount]
What=/dev/disk/by-label/BACKUP_ONE
Where=/mnt/backup1
Options=uid=bacula,gid=bacula,mode=0700

Perhatikan nama file harus diakhiri .mount dan memiliki nama yang cocok dengan titik mount (di Where= baris file unit), dengan garis miring (/) diubah menjadi tanda hubung (-). Untuk informasi lebih lanjut, lihat man systemd.unit.

Selain itu, Anda dapat mencegahnya memasang drive sampai Bacula benar-benar menjalankan cadangan (atau Anda mencoba mengakses drive) dengan membuat /etc/systemd/system/mnt-backup1.automount:

[Automount]
Where=/mnt/backup1
[Install]
WantedBy=remote-fs.target

Ulangi ini untuk drive Anda yang lain, dan kemudian jalankan systemctl enable mnt-backup1.automount dan systemctl daemon-reload untuk menginformasikan systemd dari perubahan. (Saya akan memastikan mereka dicabut saat ini sehingga tidak bingung.)

udisks sekarang akan tunduk pada Anda systemd konfigurasi dan mount dengan opsi yang Anda tetapkan.


6
2018-06-12 06:30