Linux démonte un périphérique à partir d'un script exécuté dans le périphérique lui-même
Question
J'ai une image ISO montée dans le chemin :
/mnt/iso
À l'intérieur de cette ISO, j'ai un script d'installation install.sh j'exécute le script d'installation à partir de l'ISO et à la fin, le script demande à l'utilisateur s'il veut user l'ISO lui-même.Si l'utilisateur appuie sur "y", le script exécute le code suivant :
cd /
umount /mnt/iso
echo "Installation completed!"
Malheureusement, lorsque le script tente d'exécuter le umount, il y a une erreur
umount: /mnt/iso: device is busy
Je suppose que cela est dû au fait que le périphérique virtuel est occupé par le script lui-même.Comment le faire fonctionner ?Transmission
La solution
Utilisez le -l
ou --lazy
basculer vers umount
qui effectuera un démontage paresseux, où il n'est complètement démonté que lorsqu'il n'est plus utilisé.La description complète dans la page de manuel (il s'agit d'une option spécifique à Linux) est :
Démontage paresseux.Détachez le système de fichiers à partir de la hiérarchie du système de fichiers maintenant et nettoyez toutes les références au système de fichiers dès qu'elle n'est plus occupée.(Nécessite le noyau 2.4.11 ou version ultérieure.)
Autres conseils
La solution de Tomh résoudra le problème si vous utilisez le dernier.Sinon, le commentaire de Simone Palazzo est votre meilleur pari.Vous démontez quelque chose à travers un script situé dans la zone que vous démontez.Si vous exécutez le script à partir du répertoire racine, il réussira.