Ich habe versucht, meinen GRUB zu reparieren, nachdem ich Windows über Ubuntu installiert hatte. Aber ich konnte es nicht reparieren unddiese Frage gestellt.Während der Diskussion mit psusi, uns fällt etwas auf. Mein installiertes System ist 64 Bit, aber einige meiner Bibliotheksdateien sind 32 Bit (zum Beispiel: libdevmapper.so.1.02.1
).
(Sie können Schritt 13 für meine Frage überprüfen. Und überprüfen Sie die anderen Schritte, um zu sehen, welche Schritte ich befolgt habe.)
- Mein altes Ubuntu war auf installiert
/dev/sda3
. Ich habe es auf gemountet./mnt/ubusda3
root@ubuntu:/home/ubuntu# file /mnt/ubusda3/sbin/init /mnt/ubusda3/sbin/init: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.15, stripped
root@ubuntu:/home/ubuntu# file /mnt/ubusda3/lib/libdevmapper.so.1.02.1 /mnt/ubusda3/lib/libdevmapper.so.1.02.1: ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), dynamically linked, stripped
sudo dpkg --root=/mnt/ubusda3 -i /mnt/ubusda3/var/cache/apt/archives/libbz2-1.0_1.0.5-6ubuntu1.11.10.1_amd64.deb
chroot /mnt/ubusda3
apt-get install --reinstall libdevmapper1.02.1
- Und als ich es dann erneut versucht habe, ist ein Fehler
update-grub
aufgetretenmapdevfs: error while loading shared libraries: libdebian-installer.so.4: cannot open shared object file: No such file or directory
. - Ich habe mein System neu gestartet, aber nichts hat sich geändert.
- ich habe mapdevfs
/bin/mapdevfs
mitwhich mapdevfs
dem Befehl gefunden. sudo rm /bin/mapdevfs
for i in /sys /proc /run /dev; do sudo mount --bind "$i" "/mnt/ubusda3$i"; done
grub-install /dev/sda
- Endlich habe ich mein GRUB-Problem behoben. Jetzt gibt es beim Booten ein GRUB-Menü. Bildschirm mit früheren Linux-Versionen (und Staub)
Aber wenn ich wähle Ubuntu 3.0.0.17-generic
, friert es auf dem Ladebildschirm ein und ich erhalte diese Fehlermeldung: (Rollen-TasteUndNum Lockblinkt.)
Wenn ich andere Kernel-Versionen wähle -was infrühere Ubuntu-VersionenBildschirm-, ich erhalte diesen Fehler bei beiden.
Anmerkung 1 (für den irrationalen John)
ubuntu@ubuntu:~$ sudo su
root@ubuntu:/home/ubuntu# mkdir /mnt/ubusda3
root@ubuntu:/home/ubuntu# mount /dev/sda3 /mnt/ubusda3
root@ubuntu:/home/ubuntu# for i in /sys /proc /run /dev; do sudo mount --bind "$i" "/mnt/ubusda3$i"; done
root@ubuntu:/home/ubuntu# chroot /mnt/ubusda3/
root@ubuntu:/# apt-get -V --reinstall install libnih
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package libnih
und dann bemerkte ich, dass es libnih1
nicht linbih
(http://packages.ubuntu.com/search?keywords=libnih&searchon=names&suite=oneiric§ion=all)
root@ubuntu:/# apt-get -V --reinstall install libnih1
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following extra packages will be installed:
winbind (3.5.11~dfsg-1ubuntu2.2)
The following packages will be upgraded:
winbind (3.5.11~dfsg-1ubuntu2.1 => 3.5.11~dfsg-1ubuntu2.2)
1 upgraded, 0 newly installed, 1 reinstalled, 0 to remove and 0 not upgraded.
6 not fully installed or removed.
Need to get 54.7 kB/5,693 kB of archives.
After this operation, 32.8 kB disk space will be freed.
Do you want to continue [Y/n]? y
WARNING: The following packages cannot be authenticated!
libnih1
Install these packages without verification [y/N]? y
Get:1 http://tr.archive.ubuntu.com/ubuntu/ oneiric/main libnih1 amd64 1.0.3-4ubuntu2 [54.7 kB]
Fetched 54.7 kB in 0s (57.1 kB/s)
Can not write log, openpty() failed (/dev/pts not mounted?)
(Reading database ... 196784 files and directories currently installed.)
Preparing to replace winbind 2:3.5.11~dfsg-1ubuntu2.1 (using .../winbind_2%3a3.5.11~dfsg-1ubuntu2.2_amd64.deb) ...
/sbin/runlevel: error while loading shared libraries: libnih.so.1: wrong ELF class: ELFCLASS32
* Stopping the Winbind daemon winbind
...done.
Unpacking replacement winbind ...
Preparing to replace libnih1 1.0.3-4ubuntu2 (using .../libnih1_1.0.3-4ubuntu2_amd64.deb) ...
Unpacking replacement libnih1 ...
Processing triggers for man-db ...
Processing triggers for ureadahead ...
ureadahead will be reprofiled on next reboot
Can not write log, openpty() failed (/dev/pts not mounted?)
Setting up libwbclient0 (2:3.5.11~dfsg-1ubuntu2.2) ...
Setting up samba-common (2:3.5.11~dfsg-1ubuntu2.2) ...
Setting up winbind (2:3.5.11~dfsg-1ubuntu2.2) ...
* Starting the Winbind daemon winbind
/usr/sbin/winbindd: error while loading shared libraries: libcap.so.2: wrong ELF class: ELFCLASS32
...fail!
invoke-rc.d: initscript winbind, action "start" failed.
dpkg: error processing winbind (--configure):
subprocess installed post-installation script returned error exit status 127
Setting up libsmbclient (2:3.5.11~dfsg-1ubuntu2.2) ...
Setting up samba-common-bin (2:3.5.11~dfsg-1ubuntu2.2) ...
Setting up smbclient (2:3.5.11~dfsg-1ubuntu2.2) ...
Setting up libnih1 (1.0.3-4ubuntu2) ...
Processing triggers for libc-bin ...
ldconfig deferred processing now taking place
Errors were encountered while processing:
winbind
E: Sub-process /usr/bin/dpkg returned an error code (1)
Dieses Mal erhalte ich denselben Bootfehler für libnih-dbus.so....
die Datei.
Auch für die Suche nach anderen 32-Bit-Dateien, habe ich Ihre Befehle ausgeführt und ich sehe alle Dateien in /mnt/ubusda3/lib/modules/3.0.0-12-generic/
und /mnt/ubusda3/bin
sind32 Bit.
Ist es möglich, ganze Kerneldateien neu zu installieren?
Antwort1
OK, ich habe alle Antworten ausprobiert, alles. Aber ich konnte mein Problem nicht lösen. Und schließlich habe ich mein Ubuntu neu installiert.
Antwort2
Können Sie Ihre aktuelle Installation starten mitbeliebigder auf Ihrem System installierten Kernel?
Wenn Sie sich IhreChatten mit psusida ist einNachricht mit einem LinkZuStiefel-Reparaturpaste 938724. Es zeigt Ihr erstelltes GRUB-Menü mit Einträgen für
'Ubuntu, with Linux 3.0.0-17-generic'
'Ubuntu, with Linux 3.0.0-17-generic (recovery mode)'
'Ubuntu, with Linux 3.0.0-16-generic'
'Ubuntu, with Linux 3.0.0-16-generic (recovery mode)'
'Ubuntu, with Linux 3.0.0-12-generic'
'Ubuntu, with Linux 3.0.0-12-generic (recovery mode)'
Haben Sie sie alle ausprobiert und schlagen sie alle auf die gleiche Weise fehl? Ich frage mich nur, ob Sie mit einem davon erfolgreich booten können. Dann können Sie das Problem vielleicht wiederherstellen, indem Sie einen fehlgeschlagenen Kernel löschen/deinstallieren und ihn dann neu installieren.
24. April
EntsprechendStiefel-Reparaturpaste 938724, update-grub
hat diese Einträge bei der Suche in Ihrem /boot
Ordner gefunden. Zumindest hat Boot-Repair das in gefunden sda3/boot/grub/grub.cfg
.
Was sehen Sie beim Booten in Ihrem GRUB-Menü? Sieht es wie folgt aus?
Ubuntu, with Linux 3.0.0-17-generic
Ubuntu, with Linux 3.0.0-17-generic (recovery mode)
Previous Linux versions
Memory test (memtest86+)
Memory test (memtest86+, serial console 115200)
Windows 7 (loader) (on /dev/sda4)
(Wenn beim Booten kein GRUB-Menü angezeigt wird, versuchen Sie, die shiftTaste zu Beginn des Bootvorgangs gedrückt zu halten, um das Menü einzublenden.)
Wenn Sie ein GRUB-Menü mit dem Eintrag sehen Previous Linux versions
, versuchen Sie, diesen Eintrag auszuwählen und zu drücken enter. Sie sollten ein weiteres Menü mit Einträgen für die Kernel und sehen 3.0.0-16
. 3.0.0-12
Sehen Sie, was passiert, wenn Sie sie booten.
26. April
Neugieriger und neugieriger. OK, also ELFCLASS32
statt 64 noch einmal. Da ich nicht weiß, was ich sonst tun soll, schlage ich vor, dass Sie das Verfahren befolgen, das Sie während IhresChatten mit psusi.
- Booten Sie eine Live-CD/USB für 64-Bit (AMD64) Ubuntu 11.10.
- Mounten Sie und geben Sie es dann
chroot
in Ihre defekte Ubuntu-Installation ein/dev/sda3
. Führen Sie es dann aus,apt-get
um die richtige 64-Bit-Version von neu zu installierenlibnih.so.1
.
# mounten Sie /dev/sda3 als /mnt/ubu2fix mkdir /mnt/ubu2fix sudo mount /dev/sda3 /mnt/ubu2fix # chroot, sodass „/mnt/ubu2fix“ für die Befehlsverarbeitung zu „/“ wird für i in /sys /proc /run /dev; führen Sie sudo mount --bind "$i" "/mnt/ubu2fix/$i" aus; fertig sudo chroot /mnt/ubu2fix # installieren Sie das Paket neu, das libnih1.so.1.0.0 (auch bekannt als libnih1.so.1) enthält apt-get -V --reinstall installiere libnih1
Jedoch,VorWenn Sie das tun chroot
, möchten Sie vielleicht zuerst versuchen, herauszufinden, wie vieleandere ELFCLASS32
Dateien könnten vorhanden sein und müssen (möglicherweise) repariert werden. Ich denke, die folgenden Befehle werden das erledigen.
Die folgenden Befehle führen den file
Befehl für jede Datei in den Verzeichnissen /bin
, /sbin
, /lib
, und /lib64
Ihrer Ubuntu-Installation in aus /dev/sda3
. Dadurch grep
wird die Ausgabe auf 32-Bit-ausführbare Dateien beschränkt.
Wenn alles richtig ist, sollten diese Befehle **NO erzeugen.Ausgabe.** Alle Dateien, die beim Ausführen dieser Befehle aufgelistet werden, sind 32-Bit-Dateien, obwohl sie 64-Bit-Dateien sein sollten. Sie müssen (wahrscheinlich) neu installiert werden, damit Ihr System ordnungsgemäß funktioniert.
sudo find /mnt/ubu2fix/bin -type f -exec file '{}' \; | grep 32-bit
sudo find /mnt/ubu2fix/sbin -type f -exec file '{}' \; | grep 32-bit
sudo find /mnt/ubu2fix/lib -type f -exec file '{}' \; | grep 32-bit
sudo find /mnt/ubu2fix/lib64 -type f -exec file '{}' \; | grep 32-bit
Führen Sie die obigen Befehle ausnachMontage /dev/sda3
als /mnt/ubu2fix
, aberVorSie führen das aus chroot
. (Oder führen Sie sie in einem anderen Terminal aus, das sich außerhalb des befindet chroot
.)
29. April
Ich sah mir deineAnmerkung 1.
Entschuldigen Sie, dass ich Ihren Kommentar nicht früher bemerkt habe:
„Alle Dateien sind im /mnt/ubusda3/lib/modules/3.0.0-12-generic/
32 /mnt/ubusda3/bin
-Bit-Format.„
Ich habe sicherlich nicht damit gerechnet, dass das der Fall sein würde.
"Ist es möglich, ganze Kerneldateien neu zu installieren?"
Ich bin nicht sicher, was Sie fragen. (Aber selbst wenn ich es wüsste, bin ich nicht sicher, ob ich wüsste, wie es geht. Tut mir leid.)
01. Mai - Erwägen Sie eine Upgrade-Installation von 11.10 auf 11.10
Als ich zuvor den Kommentar von @Alvar las, in dem vorgeschlagen wurde, eine Installation durchzuführen, um Ihr System wiederherzustellen, ging ich davon aus, dass dies die Zerstörung Ihres aktuellen Setups bedeutete, und ignorierte ihn daher. Jetzt bin ich mir nicht mehr so sicher.
Es stellt sich heraus, dass in einer Situation wie Ihrer, in der sowohl Ubuntu als auch Windows in unterschiedlichen Partitionen auf derselben Festplatte installiert sind, das Ubuntu-Installationsprogramm fragt, welche Art von Installation Sie durchführen möchten, wie im Bild unten gezeigt.
Ich habe versucht, eineUpgrade installierenvon 11.10 auf 11.10 in einer VirtualBox-VM, um eine bessere Vorstellung davon zu bekommen, was es tut. Es scheint so zu funktionieren, wie es verspricht.Ich habe einige Warnungen, die ich unten aufgeführt habe.
Ich kann Ihnen keinen Rat dazu geben, ob Sie eine Neuinstallation durchführen sollten oder nicht. Ich kenne Ihre Situation nicht und weiß auch nicht, welche Ressourcen Ihnen zur Verfügung stehen bzw. nicht zur Verfügung stehen.
Einige Vorbehalte:
- Geben Sie unbedingt Ihre aktuelleBenutzer-IDwenn die Installation danach fragt. Wenn Sie eine andere Benutzer-ID eingeben, wird die alte gelöscht. Sie können sich damit nicht anmelden. Dies wird in dieser Frage ausführlicher beschrieben:Wie kann ich einen gelöschten Benutzernamen mithilfe seines alten Home-Ordners wiederherstellen?
- Wenn Sie sich für entscheiden
Download updates while installing
, führt die Installation anscheinend das Äquivalent eines ausapt-get dist-upgrade
. Vor der Upgrade-Installation standen bei mir 8 Upgrades aus. Nach Abschluss standen 0 Updates aus und ein neuer Kernel, 3.0.0-19-generic, war installiert. - Firefox schien in Ordnung zu sein. Meine Passwörter, mein Verlauf und meine Lesezeichen schienen erhalten geblieben zu sein. Der Anwendungsteil meines Google Chrome-Browsers wurde gelöscht, die Benutzerdaten jedoch nicht. Nachdem ich Chrome neu installiert hatte, funktionierten meine Einstellungen, Lesezeichen usw. auch in Chrome einwandfrei.
- Obwohl alles gut zu funktionieren scheint, ist es wie immer am sichersten, Ihre Daten in der Ubuntu-Partition zu sichern, bevor Sie mit der Installation beginnen.Dusind die einzige Person, die weiß, wie wertvoll Ihre Daten für Sie sind oder nicht. Sie sind also die einzige Person, die weiß, welche Risiken Sie eingehen möchten oder nicht.
Antwort3
Sie müssen die Distribution ausprobieren„Ubuntu-Rescue-Remix“und booten Sie live von CD/USB. Dort können Sie eine Anwendung zum Reparieren von Grub oder zum Erkennen eines anderen Betriebssystems verwenden.
It is very easy to use, I working great for me.
Das Rescue-ISO gibt es hier:
Antwort4
Ich hatte dieses Problem, als ich meine BIOS
Einstellungen änderte. Wenn Sie Ihre BIOS-Einstellungen geändert haben oder auch nicht, setzen Sie sie einfach BIOS
auf die Standardeinstellungen zurück und informieren Sie uns über das Ergebnis.