Reguła napędu CD / DVD: Zamontuj napęd po włożeniu do „/ media / DVD”
Zrób to, jeśli chcesz przywrócić automatyczne montowanie z pewną kontrolą nad tym, jak to się robi.
- Automatycznie tworzy punkt montowania po wstawieniu nośnika
- Automatycznie montuje średni do montowanego punktu z określonymi uprawnieniami
- Automatycznie usuwa punkt montowania po usunięciu nośnika
Działanie: Taca CD / DVD ma nośnik i jest wciągnięta
Musisz powiedzieć swojemu systemowi, aby zareagował na to działanie. Możesz uruchomić skrypt montowania (dowolny skrypt niestandardowy). Aby to zrobić, musisz utworzyć nową regułę w lib/udev/rules.d
folderze. Te komendy muszą być uruchamiane jako root (użyj prefiksu sudo
następujących komend, aby uruchomić je jako root lub zostać użytkownikiem rootsudo -s
- Utwórz nowy plik i nazwij go autodvd.rules
touch /lib/udev/rules.d
- Poszukaj informacji o napędzie CD / DVD, uruchamiając
udevadm info --query=all --attribute-walk --name=/dev/sr0
(root nie jest tutaj konieczny, ale działa w obie strony) Poszukaj czegoś, co jednoznacznie identyfikuje twój napęd (na lepsze lub gorsze wybrałem ATTRS{vendor}=="HL-DT-ST"
, który jest moim napędem (twój będzie inny, chyba że ty posiadam ten sam dysk co ja). Skopiuj go gdzieś na później. Możesz poświęcić trochę czasu na przejrzenie tego pliku i porównanie go z poniższym przykładem reguły. Można w nim znaleźć SUBSYSTEM i ATTRS.
- Edytuj swoją nową regułę (możesz użyć dowolnego edytora, którego używam
vim /lib/udev/rules.d
, ale ja nano /lib/udev/rules.d
też działa i jest łatwa. Dodaj te rzeczy, edytując ATTRS tak, by pasował do twojego (jest to wrażliwa część, być może będziesz musiał wybrać inny atrybut, jeśli nie działa) i popraw pola YOURUSER i YOURGROUP:
KERNEL=="sr[0-9]*", SUBSYSTEM=="block", ATTRS{vendor}=="HL-DT-ST", SYMLINK+="dvdburner", OWNER="YOURUSER", GROUP="YOURGROUP" ACTION=="change",RUN+="/home/YOURUSER/Scripts/Bash/automountdvd.sh"
- Te
KERNEL=="sr[0-9]*"
właśnie znaczy będzie to test wszystkich scsi
urządzeń (sr0-SR9)
- To
SYMLINK
tylko symboliczne łącze do dysku (jak /dev/cdrom
to jest do prawdziwego /dev/sr0
)
Może być konieczne ponowne załadowanie wszystkich reguł udev:
udevadm control --reload rules
reload udev
udevadm trigger
Mount Script
Zapisz następujące miejsca: /home/YOURUSER/Scripts/Bash/automountdvd.sh
popraw pola YOURUSER i YOURGROUP. A tak przy okazji, niebezpieczne jest umieszczenie tego skryptu w folderze użytkownika, ponieważ będzie on uruchamiany przez roota, co oznacza, że jeśli ktoś włamie się do twojego folderu użytkownika, może dostosować skrypt, aby robił co chce i root go uruchomi ( i prawdopodobnie się powiedzie, ponieważ użytkownik root ma pełną kontrolę nad systemem. Prawdopodobnie lepiej ukryć go w folderze, który widzi tylko root. Jeśli eksperymentujesz, jest w porządku.
#!/bin/bash
{
mountpoint="/media/DVD"
user=YOURUSER
group=YOURGROUP
uid=$(id -u ${user})
gid=$(id -g ${group})
FS_TYPE="`blkid /dev/sr0 | grep -o 'udf'`"
if [ ${FS_TYPE} == 'udf' ]; then
echo "ID_CDROM_MEDIA set to 1, creating ${mountpoint} and attempting to mount DVD."
mkdir -p ${mountpoint} && chown ${user}:${group} ${mountpoint}
mount -t ${FS_TYPE} -o ro,uid=${uid},gid=${gid} /dev/sr0 ${mountpoint}
echo "DVD mounted at ${mountpoint}."
else
echo "Attempting to unmount -l ${mountpoint}."
umount -l ${mountpoint}
rm -rf ${mountpoint}
echo "Unmounting ${mountpoint} and removing folder ${mountpoint}."
fi
} &>> "/var/log/autodvd.log" &
mkdir anythingAtAll; sudo mount /dev/sr0 anythingAtAll