Saya ingin memasang drive usb /media
berdasarkan UUID disk. Bagaimana saya bisa menggunakan UUID drive usb dalam file aturan udev dan apa aturan udev untuk memasang drive usb dengan nomor UUID sebagai nama folder.
The blkid
perintah output UUID dari disk tapi hanya setelah pemasangan.
Jawaban:
Meskipun UUID tidak dapat diakses secara langsung oleh udev, setidaknya di Fedora dan Ubuntu mereka ditetapkan sebagai variabel lingkungan (
ENV
). Anda dapat membaca semua variabel lingkungan perangkat dengan meneleponudevadm info /dev/sdc
. Misalnya untuk NTFS pada drive eksternal yang saya dapatkan:Segala sesuatu dengan
E:
di depan diatur sebagai variabel lingkungan.Cocok dengan UUID
Anda dapat mencocokkannya dengan
ENV{ID_FS_UUID}=="4A6F2ABC1232FA37"
. Sebagai filter pertama saya cocokKERNEL=="sd?2"
untuk memastikan saya hanya menangani perangkat blok dengan nomor partisi yang benar. Aturan lengkap akan terlihat seperti ini:Perintah logger berguna untuk menyatakan bahwa aturan benar-benar dijalankan. Selanjutnya Anda harus memeriksa bahwa aturan tersebut tidak mengandung kesalahan sintaksis apa pun
udevadm test /dev/sdc2
. File aturan Anda harus tercantum dalam output dan tidak ada pesan kesalahan akan muncul di sebelahnya. Sekarang Anda dapat memicu semua aturan untuk perangkat Anda untuk memeriksa apakah aturan Anda bekerja seperti yang direncanakan:sudo udevadm trigger /dev/sdc2
. Jika aturan Anda cocok, Anda akan menemukan pesan log khusus di log sistem (/var/log/syslog
atau viajournalctl -b
).Sunting: ali_m telah menunjukkan bahwa variabel lingkungan diatur oleh aturan sebelumnya dan dengan demikian hanya dapat diakses jika
.rules
file Anda memiliki urutan leksikografis yang cukup tinggi . Mulai dengan "60" sudah cukup. Secara pribadi saya mulai aturan saya dengan "zz" (jika mungkin) untuk membedakannya dari aturan yang telah ditentukan dalam sekejap.Menggunakan UUID dalam
RUN
perintah dan di tempat lainUdev memiliki variabel yang cukup kuat dan sintaks substitusi atribut . Khususnya setiap kemunculan
$env{ID_FS_UUID}
akan diganti dengan UUID drive. Jadi untuk memasang perangkat di bawah/media/
UUID
Anda dapat menggunakan aturan ini:Anda mungkin ingin mengonfigurasi udisks sebagai gantinya, namun khusus untuk ruang masalah yang ingin Anda pecahkan. Lihat https://wiki.archlinux.org/index.php/udisks#udisks2:_mount_to_.2Fmedia sebagai titik awal.
Kasus penggunaan aktual saya untuk memasang perangkat dengan udev, bukan
/etc/fstab
atau udisks adalah untuk me-mount sistem file zfs yang memiliki beberapa keanehan membuat mereka tidak cukup sesuai dengan alat yang biasa.sumber
.rules
harus dimulai dengan angka> 60 .Ada solusi kasar yang muncul di pikiran saya. Tetapkan entri cooresponding fstab yang IDed oleh UUID. Dan dalam aturan udev, jalankan
mount -a
setiap kali ada perangkat sd * baru ditambahkan.sumber