Jak sprawdzić, czy dysk CD jest aktualnie używany w systemie Linux?

2

Jak sprawdzić, czy dysk CD jest używany przed usunięciem go z maszyny wirtualnej? Obecnie jest zamontowany w / dev / sr0 na komputerze Ubuntu 14.04 i muszę go odmontować w celu migracji magazynu danych.

Wiem, że nie jest to zapisywane, ale muszę wiedzieć, czy jest ono odczytywane.

wintermuted
źródło
1
Jakiego hiperwizora używasz?
Xyon
vSphere, ale nie sądzę, żeby to miało duże znaczenie. Wiem tylko, że VMWare mówi mi, że chce odmontować dysk, gdy próbuję go usunąć, ale zanim usunę CD z moich maszyn produkcyjnych, chcę wiedzieć, czy aktywnie korzystają z płyt CD.
wintermuted
Najprościej byłoby powiedzieć maszynie wirtualnej Ubuntu, aby ją odmontowała. Jeśli to się powiedzie, to jest w tej chwili nie w użyciu.
dirkt

Odpowiedzi:

1

Jedynym sposobem, aby to zrobić poprawnie, jest odmontowanie dysku CD w maszynie wirtualnej.

Ogólna procedura, którą zwykle stosuję, to:

  1. Sprawdź, czy w ogóle jest zamontowany, najlepiej uruchom jako root:

    grep /dev/sr0 /proc/self/mounts
    

    Jeśli to wypluje dowolny tekst, wówczas płyta CD jest zamontowana i może być używana (ale nie można jej jeszcze usunąć, nawet jeśli nie jest używana), w przeciwnym razie możesz założyć, że nie jest używana, chyba że masz otwarte oprogramowanie do nagrywania CD .

  2. Spróbuj go odmontować (musi to być root):

    umount /dev/sr0
    

    Jeśli to się nie powiedzie, możesz być pewien, że w tym momencie dysk CD nie jest używany i można go bezpiecznie usunąć po stronie hypervisora. Jeśli narzeka /dev/sr0 nie jest montowany, sprawdź ponownie pierwszy krok, w przeciwnym razie przejdź do następnego kroku.

  3. Dowiedzieć się, co go używało (musi być również wykonane jako root i może być konieczne zainstalowanie fuser dowództwo):

    fuser -m $(grep /dev/sr0 /proc/self/mounts | cut -f 2)
    

    To sprawdzi, gdzie jest zamontowany, a następnie wypluje jedną linię dla każdego używanego pliku, zaczynając od nazwy pliku, po której następuje rozdzielona spacjami lista PID-ów używających pliku. Następnie możesz sprawdzić, do jakich procesów należą te PID w większości programów do monitorowania systemu, takich jak top. Jeśli nie obchodzi cię, co to jest, możesz dodać -k -TERM przed -m do powyższego polecenia, i wyśle ​​SIGTERM do wszystkich procesów dla ciebie (odpowiednik wywołania) kill na każdym PID). Gdy wszystkie zostaną już usunięte, możesz powtórzyć krok 2 i umount polecenie powinno działać.

Zauważ, że to podejście zakłada, że ​​nie są używane żadne przestrzenie nazw montowania, co zazwyczaj będzie prawdziwe, chyba że używasz kontenerów (w takim przypadku konieczne może być przejście wszystkich tych kroków w każdym uruchomionym kontenerze).

Austin Hemmelgarn
źródło