Regola unità CD / DVD: montare l'unità su Inserisci su "/ media / DVD"
Fatelo se volete ripristinare l'auto-montaggio con un certo controllo su come è fatto.
- Crea automaticamente il punto di montaggio all'inserimento del supporto
- Monta automaticamente il supporto sul punto di montaggio con autorizzazioni specifiche
- Rimuove automaticamente il punto di montaggio dopo la rimozione del supporto
Azione: il vassoio CD / DVD contiene supporti ed è inserito
Devi dire al tuo sistema di reagire a questa azione. Puoi farlo eseguire uno script di montaggio (qualsiasi script personalizzato). Per fare ciò, è necessario creare una nuova regola nella lib/udev/rules.d
cartella. Questi comandi devono essere eseguiti come root (utilizzare il prefisso sudo
per i seguenti comandi per eseguirli come root o diventare l'utente root consudo -s
- Crea un nuovo file e chiamalo autodvd.rules
touch /lib/udev/rules.d
- Cerca informazioni sulla tua unità CD / DVD eseguendo
udevadm info --query=all --attribute-walk --name=/dev/sr0
(root non necessario qui, ma funziona in entrambi i modi) Cerca qualcosa che identifichi in modo univoco la tua unità (nel bene o nel male che ho scelto ATTRS{vendor}=="HL-DT-ST"
, che è la mia unità (la tua sarà diversa a meno che tu possiedo la stessa unità di me.) Copiarlo da qualche parte per dopo. Si può impiegare un po 'di tempo a guardare questo file e confrontarlo con l'esempio di regola qui sotto. Il SUBSYSTEM e ATTRS possono essere trovati in esso.
- Modifica la tua nuova regola (puoi usare qualsiasi editor tu scelga, io uso
vim /lib/udev/rules.d
, ma nano /lib/udev/rules.d
funziona anche ed è facile. Aggiungi queste cose, modificando i tuoi ATTR in modo che corrispondano ai tuoi (questa è la parte sensibile, potresti dover scegliere un attributo diverso se non funziona) e correggi i campi 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"
- Il
KERNEL=="sr[0-9]*"
giusto significa che testerà tutti i scsi
dispositivi (sr0-sr9)
- Il
SYMLINK
è solo un link simbolico per l'unità (come /dev/cdrom
è per il vero /dev/sr0
)
Potrebbe essere necessario ricaricare tutte le regole di udev:
udevadm control --reload rules
reload udev
udevadm trigger
Mount Script
Salvare quanto segue da qualche parte come: /home/YOURUSER/Scripts/Bash/automountdvd.sh
e correggere i campi YOURUSER e YOURGROUP. Oh, a proposito, è pericoloso mettere questo script nella cartella dell'utente, perché verrà eseguito da root, il che significa che se qualcuno hackera la tua cartella utente, può regolare lo script per fare quello che vuole e root lo eseguirà ( e probabilmente avrà successo, perché l'utente root ha il pieno controllo del sistema) Probabilmente è meglio nasconderlo in una cartella che solo root può vedere. Se stai sperimentando, va bene.
#!/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