Правило для привода CD / DVD: монтируйте диск при вставке в «/ media / DVD»
Сделайте это, если вы хотите восстановить автонастройку с некоторым контролем над тем, как это делается.
- Автоматически создает точку монтирования при вставке носителя
- Автоматическое монтирование носителя для монтирования с определенными разрешениями
- Автоматически удаляет точку монтирования при удалении носителя
Действие: лоток для CD / 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
(root здесь не нужен, но работает в обе стороны). Ищите что-то, что однозначно идентифицирует ваш привод (к лучшему или к худшему 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 имеет полный контроль над системой) Вероятно, лучше спрятать его в папке, которую может видеть только 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