Regra da unidade de CD / DVD: Monte a unidade após a inserção em "/ media / DVD"
Faça isso se desejar restaurar a montagem automática com algum controle sobre como isso é feito.
- Cria automaticamente o ponto de montagem após a inserção do meio
- Monta automaticamente o ponto médio de montagem com permissões específicas
- Remove automaticamente o ponto de montagem após a remoção do meio
Ação: A bandeja de CD / DVD possui mídia e é puxada para dentro
Você deve informar ao seu sistema para reagir a esta ação. Você pode executar um script de montagem (qualquer script personalizado). Para fazer isso, você precisa criar uma nova regra na lib/udev/rules.d
pasta. Esses comandos precisam ser executados como root (use o prefixo sudo
para os seguintes comandos para executá-los como root ou se tornar o usuário root comsudo -s
- Crie um novo arquivo e chame-o de autodvd.rules
touch /lib/udev/rules.d
- Procure informações sobre a sua unidade de CD / DVD executando
udevadm info --query=all --attribute-walk --name=/dev/sr0
(raiz não é necessária aqui, mas funciona nos dois sentidos). Procure algo que identifique exclusivamente sua unidade (para o bem ou para o mal que escolhi ATTRS{vendor}=="HL-DT-ST"
, que é a minha unidade (a sua será diferente a menos que você possua a mesma unidade que eu.) Copie-o em algum lugar para mais tarde. Você pode levar algum tempo para examinar esse arquivo e compará-lo com o exemplo de regra abaixo.O SUBSYSTEM e ATTRS podem ser encontrados nele.
- Edite sua nova regra (você pode usar o editor que escolher, eu uso
vim /lib/udev/rules.d
, mas nano /lib/udev/rules.d
funciona também e é fácil. Adicione essas coisas, editando o seu ATTRS para corresponder ao seu (esta é a parte sensível, talvez seja necessário escolher um atributo diferente se ele não funciona) e corrija os campos YOURUSER e 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"
- O
KERNEL=="sr[0-9]*"
justo significa que ele testará todos os scsi
dispositivos (sr0-sr9)
- O
SYMLINK
é apenas um link simbólico para a unidade (como /dev/cdrom
é o real /dev/sr0
)
Pode ser necessário recarregar todas as regras do udev:
udevadm control --reload rules
reload udev
udevadm trigger
Script de Montagem
Salve o seguinte em algum lugar como: /home/YOURUSER/Scripts/Bash/automountdvd.sh
e corrija os campos YOURUSER e YOURGROUP. Ah, a propósito, é perigoso colocar esse script na pasta do usuário, porque ele será executado pela raiz, o que significa que se alguém invadir sua pasta do usuário, poderá ajustar o script para fazer o que quiser e o root executará ( e provavelmente terá êxito, porque o usuário root tem controle total sobre o sistema) Provavelmente é melhor ocultá-lo em uma pasta que somente o root possa ver. Se você está experimentando, tudo bem.
#!/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