Правило накопичувача CD / DVD: Установити привід після вставки до "/ media / DVD"
Зробіть це, якщо ви хочете відновити автоматичне кріплення з деяким контролем того, як це робиться.
- Автоматично створює точку кріплення після вставки середовища
- Автоматично монтується середній на точку монтажу з певними дозволами
- Автоматично видаляє точку кріплення після видалення середовища
Дія: Лоток для компакт-дисків / DVD містить носії інформації та втягується
Ви повинні сказати своїй системі відреагувати на цю дію. Ви можете запустити його на скрипті для монтажу (будь-який спеціальний сценарій). Для цього потрібно створити нове правило в lib/udev/rules.d
папці. Ці команди потрібно запустити як root (використовуйте префікс sudo
для наступних команд, щоб запустити їх як root або стати користувачем root зsudo -s
- Створіть новий файл і назвіть його autodvd.rules
touch /lib/udev/rules.d
- Шукайте інформацію про свій CD / DVD привід, запустивши
udevadm info --query=all --attribute-walk --name=/dev/sr0
(корінь тут не потрібен, але працює в обох напрямках) Шукайте щось, що однозначно ідентифікує ваш диск (для кращого або гіршого, що я вибрав) ATTRS{vendor}=="HL-DT-ST"
, що є моїм накопичувачем (ваш буде іншим, якщо ви у мене є той самий диск, що і у мене). Скопіюйте його десь на потім. Ви можете заглянути деякий час, щоб переглянути цей файл і порівняти його з прикладом правила нижче. У ньому можна знайти SUBSYSTEM і ATTRS.
- Відредагуйте своє нове правило (ви можете використовувати будь-який редактор, який ви вибрали, я використовую
vim /lib/udev/rules.d
, але він nano /lib/udev/rules.d
працює і дуже просто. Додайте ці речі, відредагувавши свій ATTRS відповідно до вашого (це чутлива частина, можливо, вам доведеться вибрати інший атрибут, якщо він не працює) та виправте поля "YOURUSER" та "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"
- У
KERNEL=="sr[0-9]*"
просто означає , що випробують усі scsi
пристрої (sr0-SR9)
- Це
SYMLINK
просто символічне посилання на накопичувач (на зразок /dev/cdrom
реального /dev/sr0
)
Можливо, вам доведеться перезавантажити всі правила udev:
udevadm control --reload rules
reload udev
udevadm trigger
Гора сценарій
Збережіть таке місце, як-от: /home/YOURUSER/Scripts/Bash/automountdvd.sh
і виправте поля YOURUSER і YOURGROUP. О, до речі, небезпечно поміщати цей скрипт у папку користувача, оскільки він буде запущений під корінь, а це означає, що якщо хтось зламає вашу папку користувача, він може налаштувати сценарій, щоб робити все, що завгодно, і root його запустить ( і, ймовірно, це вдасться, тому що користувач root має повний контроль над системою) Напевно, краще сховати його в папці, яку бачить тільки root. Якщо ви експериментуєте, це добре.
#!/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