Comment vérifier si un CD est utilisé avant de le retirer de la machine virtuelle? Il est actuellement monté sur / dev / sr0 sur une machine Ubuntu 14.04 et je dois le démonter pour la migration du magasin de données.
Je sais que ce n’est pas écrit, mais j’ai besoin de savoir s’il est lu.
Réponses:
La seule façon de procéder correctement consiste à essayer de démonter le CD dans la VM.
La procédure générale que j'utilise généralement est la suivante:
Vérifiez si elle est montée, exécutez de préférence en tant que root:
Si cela crée du texte, le CD est monté et peut être utilisé (mais il n'est pas sûr de le retirer même s'il n'est pas utilisé), sinon vous pouvez supposer qu'il est inutilisé à moins que le logiciel de gravure de CD ne soit ouvert. .
Essayez de le démonter (cela doit être fait en tant que root):
Si cela réussit sans erreur, vous pouvez être certain à ce stade que le CD n'est pas utilisé et vous pouvez le retirer en toute sécurité du côté de l'hyperviseur. S'il se plaint de
/dev/sr0
ne pas être monté, revérifiez la première étape, sinon passez à l'étape suivante.Déterminez ce qui l'utilisait (vous devez également le faire en tant que root et vous devrez peut-être installer la
fuser
commande):Cela déterminera où il est monté, puis crachera une ligne pour chaque fichier utilisé, en commençant par le nom du fichier, suivi d'une liste de PID séparés par des espaces et utilisant le fichier. Vous pouvez ensuite rechercher les processus auxquels ces PID appartiennent dans la plupart des logiciels de surveillance du système
top
. Si vous ne vous souciez pas de ce qu'ils sont, vous pouvez ajouter-k -TERM
avant la-m
commande ci-dessus, et cela enverra un SIGTERM à tous les processus pour vous (équivalent à appelerkill
sur chaque PID). Une fois que tous ceux-ci ont été traités, vous pouvez répéter l'étape 2 et laumount
commande devrait fonctionner.Notez que cette approche suppose qu'aucun espace de nom de montage n'est impliqué, ce qui est généralement le cas, sauf si vous utilisez des conteneurs (dans ce cas, vous devrez peut-être exécuter toutes ces étapes dans chaque conteneur en cours d'exécution).
la source