Linux umount un dispositivo da uno script in esecuzione nel dispositivo stesso
Domanda
Ho un'immagine ISO montata nel percorso:
/mnt/iso
.
All'interno di questo ISO ho uno script di installazione install.sh Eseguo lo script di installazione dall'ISO e alla fine lo script chiede all'utente se vuole umorire l'ISO stesso. Se l'utente preme "Y" lo script esegue il seguente codice:
cd /
umount /mnt/iso
echo "Installation completed!"
.
Sfortunatamente quando lo script cerca di eseguire lo umount c'è un errore
umount: /mnt/iso: device is busy
.
Suppongo che sia dovuto al fatto che il dispositivo virtuale è occupato dallo scritto stesso. Come può farlo funzionare? TNX
Soluzione
Utilizzare l'interruttore -l
o --lazy
su umount
che eseguirà un umount pigro, dove è completamente smontato una volta che non è più in uso.La descrizione completa nella pagina manuale (questa è un'opzione specifica Linux) è:
.pigro smontare.Staccare il filesystem dalla gerarchia del filesystem ora e ripulisce tutti i riferimenti al filesystem non appena non lo è occupato più.(Richiede il kernel 2.4.11 o successivo.)
Altri suggerimenti
La soluzione di Tomh risolverà il problema se si utilizza l'ultimo.Altrimenti il commento di Simone Palazzo è la soluzione migliore.Non stai svuotando qualcosa attraverso uno script situato nell'area che non stai riducendo.Se si esegue lo script dalla directory principale, avrà esito positivo.