Regra da unidade de CD / DVD: Montar a unidade ao inserir em "/ media / DVD"
Faça isso se quiser 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 meio para montar ponto 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 tem mídia e é puxada
Você precisa dizer 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 pasta lib/udev/rules.d
. Esses comandos precisam ser executados como raiz (use o prefixo sudo
para os comandos a seguir para executá-los como raiz ou se tornar o usuário raiz com sudo -s
- Crie um novo arquivo e chame-o de autodvd.rules
touch /lib/udev/rules.d
- Procure informações sobre sua unidade de CD / DVD executando
udevadm info --query=all --attribute-walk --name=/dev/sr0
(a raiz não é necessária aqui, mas funciona nos dois sentidos) Procure algo que identifique exclusivamente sua unidade (para melhor ou para pior, escolhi ATTRS{vendor}=="HL-DT-ST"
, que é minha unidade (a sua será diferente, a menos que você possua a mesma unidade que eu). Copie-a 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 SUBSISTEMA e o ATTRS podem ser encontrado nele.
- Edite sua nova regra (você pode usar qualquer editor que escolher, eu uso
vim /lib/udev/rules.d
, mas nano /lib/udev/rules.d
também funciona e é fácil. Adicione essas coisas, editando seu ATTRS para combinar com o seu (essa é a parte sensível, você pode ter que escolher um atributo diferente se não funcionar) e corrigir 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]*"
significa que ele testará todos os scsi
devices (sr0-sr9)
- O
SYMLINK
é apenas um link simbólico para a unidade (como /dev/cdrom
é para o real /dev/sr0
)
Você pode precisar 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 pelo root, o que significa que se alguém hacks sua pasta de usuário, eles podem ajustar o script para fazer o que quiserem e o root irá executá-lo (e provavelmente bem-sucedido, porque o usuário root tem controle total sobre o sistema) Provavelmente, é melhor escondê-lo em uma pasta que somente o root pode ver. Se você está experimentando, está 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" &