UUID'lere udev tarafından doğrudan erişilemese de, en azından Fedora ve Ubuntu'da ortam değişkenleri olarak ayarlanır ( ENV
). Bir cihazın tüm ortam değişkenlerini arayarak okuyabilirsiniz. udevadm info /dev/sdc
. Örneğin. harici bir sürücüdeki bir NTFS için şunu alıyorum:
$ udevadm info /dev/sdc2
P: /devices/pci0000:00/0000:00:14.0/usb4/4-2/4-2:1.0/host7/target7:0:0/7:0:0:0/block/sdc/sdc2
N: sdc2
[…]
E: ID_FS_TYPE=ntfs
E: ID_FS_USAGE=filesystem
E: ID_FS_UUID=4A6F2ABC1232FA37
[…]
Bir şey ile her şey E:
önünde çevre değişkeni olarak ayarlanmış.
UUID'lere karşı eşleştirme
İle eşleşebilirsin ENV{ID_FS_UUID}=="4A6F2ABC1232FA37"
. İlk filtre olarak eşleşiyorum KERNEL=="sd?2"
sadece doğru bölüm numarasına sahip blok cihazları kullandığımdan emin olmak için. Kuralın tamamı şöyle görünür:
KERNEL=="sd?2", ENV{ID_FS_UUID}=="4A6F2ABC1232FA37", RUN+="/usr/bin/logger --tag my-manual-usb-mount Mounting the device with UUID 4A6F2ABC1232FA37", RUN+="/usr/bin/mount [Your mount options here]"
Logger komutu, kuralın gerçekte çalıştırıldığını iddia etmek için kullanışlıdır. Daha sonra, kuralın herhangi bir sözdizimi hatası içermediğini kontrol etmelisiniz. udevadm test /dev/sdc2
. Kural dosyanız çıktıda listelenmeli ve yanında hata mesajı görünmemelidir. Artık, kuralınızın planlandığı gibi çalışıp çalışmadığını kontrol etmek için cihazınız için tüm kuralları tetikleyebilirsiniz: sudo udevadm trigger /dev/sdc2
. Kuralınız eşleşirse, sistem günlüğünde özel günlük iletisini bulacaksınız ( /var/log/syslog
veya via journalctl -b
).
Düzenle: ali_m çevre değişkenlerinin önceki kurallara göre ayarlandığını ve bu nedenle yalnızca .rules
dosyada bir yeterince yüksek sözlük bilgisi . "60" ile başlamak yeterli olmalı. Şahsen kuralları bir bakışta önceden tanımlanmış kurallardan ayırmak için (eğer mümkünse) "zz" ile başladım.
UUID’lerin RUN
emir ve başka bir yerde
Udev oldukça güçlü bir değişkene ve özelliğe sahip ikame sözdizimi . Özellikle her oluşumunda $env{ID_FS_UUID}
sürücünün UUID'si ile değiştirilecektir. Yani bir cihazı altına monte etmek /media/
UUID
bu kuralı kullanabilirsiniz:
KERNEL=="sd??", RUN+="/usr/bin/mkdir /media/$env{ID_FS_UUID}", RUN+="/usr/bin/mount $devpath /media/$env{ID_FS_UUID}"
Muhtemelen udisks'i yapılandırmak istersiniz, bununla birlikte, çözmek istediğiniz sorunlu alan için uzmanlaşmıştır. Görmek https://wiki.archlinux.org/index.php/udisks#udisks2:_mount_to_.2Fmedia bir başlangıç noktası olarak.
Asıl kullanım durumum yerine udev'li cihazları monte etmek için /etc/fstab
veya udisks, bazı olağandışı ifadelere sahip olan zfs dosya sistemlerini kullanmak, bunları olağan araçlara tam olarak sığdırmamaktır.
.rules
dosya adının bir sayı ile başlaması gerekiyor & gt; 60 .