
Ich bin ein Linux-Neuling und habe es nur installiert, damit ich keine Windows-Kompatibilitätsprobleme mit Ruby on Rails mehr habe. Abgesehen davon war es wirklich gut und viel schneller und ich glaube nicht, dass ich in nächster Zeit irgendetwas mit Winrails machen werde.
Ich habe also eine virtuelle Maschine mit Virtualbox erstellt und seit 3 Wochen Ubuntu darauf installiert. Vor Kurzem hat Ubuntu gefragt, ob es ein paar Dinge aktualisieren könnte, ich habe auf „OK“ geklickt.
Jetzt bootet es nicht mehr und ich erhalte diesen Fehler: *mount: Mounten von /dev auf /root/dev ist fehlgeschlagen: Keine solche Datei oder kein solches Verzeichnis vorhanden mount: Mounten von /sys auf /root/sys ist fehlgeschlagen: Keine solche Datei oder kein solches Verzeichnis vorhanden ... Zieldateisystem hat /sbin/init nicht. Kein Init gefunden. Versuchen Sie, init= bootarg zu übergeben.
BusyBox v1.13.3 ...
(initramfs) _ *
Ich habe also die Foren durchforstet und es gibt eine Vielzahl von Lösungen, aber sie haben alle mit dem Booten von der Live-CD zu tun. (Ich gehe davon aus, dass es sich dabei um das ISO-Image handelt, mit dem ich Ubuntu ursprünglich installiert habe.) Aber wenn ich von dieser CD boote, bleibt es einfach auf dem Ubuntu-Bildschirm hängen und die kleinen Punkte wechseln ständig von weiß zu rot, aber es blieb eine Stunde lang dort hängen, also denke ich, es steckte fest. Ich bin nicht sicher, was ich tun kann; kann ich irgendetwas von der Busybox-Shell (oder was auch immer das ist) aus tun, um die Dinge zu reparieren?
Die Sache ist, dass es ungefähr 10 Stunden gedauert hat, bis ich alles mit all den Edelsteinen und so weiter so hinbekommen habe, wie ich es wollte. Und ich habe nicht wirklich aufgeschrieben, was ich optimiert habe, und ich bin mittleren Alters, also sind all diese Informationen inzwischen durchgesickert und ich möchte es nicht noch einmal tun. Ich würde meine vorhandene Installation wirklich gerne reparieren.
Eine Frage, die Sie sich vielleicht stellen, ist: Stimmt etwas mit dem ISO nicht? Ich glaube nicht, denn ich habe eine neue virtuelle Maschine erstellt und dieselbe ISO-Datei verwendet, um ein neues Ubuntu zu installieren.
Jede Hilfe ist herzlich willkommen.
Phil
Antwort1
In der Bootloader-Eingabeaufforderung sieht alles normal aus. Ich befürchte also, dass das Dateisystem beschädigt ist.
Ich schlage folgendes Vorgehen vor:
- Erstellen Sie eine neue virtuelle Maschine und führen Sie eine neue Ubuntu-Installation durch.
- Installieren Sie das
etckeeper
Paket und führen Sie ausetckeeper init
. Dadurch wird es unter Versionskontrolle gestellt/etc
. Wenn Sie ein bevorzugtes Versionskontrolltool unter Bazaar, Darcs, Git und Mercury haben, wählen Sie es aus,/etc/etckeeper/etckeeper.conf
bevor Sie ausführenetckeeper commit
. - Ihre Änderungen
/etc
werden automatisch vor und nach Paketverwaltungsaufgaben und einmal pro Tag festgeschrieben. Sie können manuell festschreiben, indem Sieetckeeper commit
das zugrunde liegende Versionskontrolltool direkt ausführen oder aufrufen. - Jetzt ist es an der Zeit, zu versuchen, die alte VM zu retten. Fahren Sie die neue VM herunter, fügen Sie dann die Festplatte der alten VM zur neuen VM hinzu und starten Sie die neue VM.
- Versuchen Sie, zu mounten
/dev/sdb2
. Wenn Sie dazu aufgefordert werden, auszuführenfsck
, tun Sie dies. - Stellen Sie von der alten VM alles wieder her, was Sie können.
- Denken Sie daran, das Repository für
/etc
sowie alles, was Sie in/usr/local
und/home
in der VM tun, in Ihr Backup-Setup aufzunehmen.
Antwort2
Ich hatte etwas Ähnliches – Ubuntu 10.10-Host mit Ubuntu 10.10-Gast.
Das Gast-FS wurde beschädigt und führte zum selben Fehler wie oben.
Dies wurde gelöst, indem die Partitionen aus der VDI-Datei gemountet und eine Dateiprüfung für diese ausgeführt wurden.
sudo vdfuse -g -f /media/ssdext4/UbuntuGuest.vdi /mnt/
Sie sollten nun in der Lage sein, die Partitionen aus der VDI-Datei mit "sudo ls -l /mnt/" aufzulisten.
Führen Sie nun die FS-Prüfung aus – mit dem vollständigen Pfad. sudo fsck.ext4 /mnt/Partition1
Ich denke, vdfuse sollte Teil der Standardinstallation sein. Ich weiß nicht, wie man diese Probleme beheben kann, wenn man nicht über vdfuse verfügt.
Antwort3
Nicht der aufwendigste, aber vielleicht der schnellste Ansatz: Fügen Sie das Disk-Image Ihrer defekten VM zu der neu installierten hinzu, mounten Sie es von dort, kopieren Sie Ihr $HOME, /etc und vielleicht etwas aus /var/{lib,db, ...} (oder behalten Sie zumindest eine Kopie) und Sie sollten in weniger als einer Stunde wieder auf dem Laufenden sein.
Ich vermute, das eigentliche Problem wird dadurch verursacht, dass die anfängliche Ramdisk das virtuelle Datenträgergerät nicht richtig erkennt und mountet. Wenn Sie es also irgendwie schaffen, auf das Dateisystem der defekten VM zuzugreifen, könnten Sie auch Folgendes versuchen:
mount /dev/sdbroken1 /mnt/brokendisk
for i in dev dev/pts proc sys; do
mount --bind /$i /mnt/brokendisk/$i
done
chroot /mnt/brokendisk
update-initramfs -u -k all # regenerate initial ramdisk - look for errors
^D
reboot
Antwort4
Ich habe genau das gleiche Problem, einschließlich des merkwürdigen Verhaltens mit dem Live-ISO.
Es stellt sich heraus, dass das Problem darin liegt, dass Grub irgendwie durcheinander geraten ist - möglicherweise weil das Host-System in den Ruhezustand wechselt [ich sage das, weil Christis Bergeles das gleiche Problem wie ich mit dem gleichen Host (Mac OSX) beschreibt beihttp://christos.bergeles.net/blog/files/tag-grub.html]
Schließen Sie die problematische virtuelle Festplatte an eine andere funktionierende Ubuntu-VM an.
Booten Sie in diese VM
(die nächsten beiden Zeilen gehen davon aus, dass sich Ihre Problemfestplatte in dieser VM unter /dev/sdb befindet)
sudo mount /dev/sdb1 /mnt
sudo grub-install --root-directory=/mnt/ /dev/sda
hat bei mir funktioniert – bei zwei verschiedenen Fällen dieses Problems.
Tim.