"mount: / ist beschäftigt" beim Versuch, schreibgeschützt zu mounten, damit ich zerofree ausführen kann

"mount: / ist beschäftigt" beim Versuch, schreibgeschützt zu mounten, damit ich zerofree ausführen kann

Ich versuche, es zerofreeunter Ubuntu 11.04 auszuführen, damit ich das VirtualBox-VDI-Image mit folgendem komprimieren kann:

VBoxManage modifyhd Ubuntu.vdi --compact

Um zerofreedas Disk-Image ausführen zu können, muss es schreibgeschützt gemountet werden. Ich folgediese AnweisungenDarin steht, dass dies zum erneuten Bereitstellen im schreibgeschützten Zustand aus dem Wiederherstellungsmodus (Zur Root-Shell-Eingabeaufforderung wechseln) verwendet werden soll:

mount -n -o remount,ro -t ext2 /dev/sda1 /

Aber wenn ich das mache, erhalte ich die Fehlermeldung:

mount: / is busy

Irgendwelche Ideen, wie das geht?

Nachverfolgen: Nach Jaris Antwort unddieser BeitragDurch Ausführen dieser Befehle wird das Problem behoben.

service rsyslog stop
service network-manager stop
killall dhclient

Antwort1

Einige Prozesse halten Dateien zum Schreiben geöffnet. Dies können beispielsweise Programme sein, die Protokolle schreiben, wie rsyslogd, Netzwerktools, wie dhclientoder etwas anderes. Das Herunterfahren dieser Programme nacheinander und der erneute Versuch, sie erneut zu mounten, könnte funktionieren.

Mit dem Programm können Sie Prozesse finden, die bestimmte Dateien verwenden fuser. Beispielsweise fuser -v -m /gibt eine Liste der Prozesse zurück. Ich bin mir jedoch nicht sicher, ob es einer davon ist, der das Dateisystem beschäftigt.

Antwort2

Verbesserung von Peters Antwort:

Ich konnte Prozesse, die meinen Einhängepunkt verwenden, nicht beenden. Also habe ich Folgendes gemacht:

  • Bearbeiten /etc/fstab, um beim nächsten Start schreibgeschützt zu starten. Beispiel:/dev/sda1 / ext2 ro 0 1
  • Starten Sie neu und öffnen Sie eine Shell (z. B. Host-Taste + F2).
  • Führen Sie zerofree aus

So „stellen“ Sie Ihr System wieder her:

  • Mounten mit Lese-/Schreiboption:$ mount -o remount,rw /dev/sda1
  • Erneut bearbeiten /etc/fstabund den ursprünglichen Wert wiederherstellen

Extra: bei Bedarf öffnenWiederherstellungsmodusin jedem Schritt:

  • Neustart
  • Halten Sie die Umschalttaste gedrückt, während die VM geladen wird
  • Erweiterte Optionen > Kernel-Option mit Wiederherstellungsmodus > Drop to Root Shell Prompt

Antwort3

Sie können das Dateisystem nur schreibgeschützt erneut mounten, wenn kein Prozess eine Datei zum Schreiben geöffnet hat. Führen Sie den Befehl aus, lsof /um zu sehen, welche Prozesse Dateien im Root-Dateisystem geöffnet haben. Dateien, die zum Schreiben geöffnet sind, werden in der Spalte angezeigt FD. Sie können diese filtern mit

lsof / | awk '$4 ~ /[0-9].*w/'

Um die Prozess-IDs automatisch zu filtern, analysieren Sie die Ausgabe von lsof -F pa:

lsof -F pa /home | awk '/^p/ {pid = substr($0, 2)} /^a.*w/ {print pid}'

Antwort4

Manchmal ist das Mount durch so viele Prozesse ausgelastet, dass ein Neustart mit schreibgeschütztem Mount einfacher sein kann.

Ändern Sie den Eintrag für das Root-Dateisystem in /etc/fstabbeispielsweise:

/dev/sda1 / ext2 relatime,rw,errors=remount-ro 0 1

wird:

/dev/sda1 / ext2 noatime,ro 0 1

Beim Neustart wird das Dateisystem schreibgeschützt gemountet, sodass Sie zerofreedarauf arbeiten können.

Wenn Sie fertig sind, mounten Sie das Dateisystem erneut schreibgeschützt ( mount -o remount,rw /) und machen Sie Ihre Änderungen rückgängig /etc/fstab.

Inspiriert vonhttps://wiki.debian.org/ReadonlyRoot#Enable_readonly_root

verwandte Informationen