Ich habe die Anweisungen in diesem Tutorial- HOWTO befolgt: Entfernen und erneutes Installieren von Grub 2 von der Live-CD , als ich beim Starten des Befehls einen Fehler in Schritt 1 feststellte
sudo chroot /mnt/temp
Der Fehler war der folgende:
chroot: failed to run command `/bin/bash': Exec format error
Woher kommt das? Wie komme ich durch?
Ich hatte das gleiche Problem, als ich ein Bild für Armhf Arch machte. Ich musste es installieren
qemu-user-static
und dann in den chroot bin Ordner kopieren.quelle
Der Fehler bedeutet, dass Ihr jail (
/mnt/temp
) keine Bash-Shell enthält oder nicht die Bibliotheken, die zum Ausführen der Bash-Shell erforderlich sind.Wenn Sie Ihr Gefängnis mit so etwas erstellt haben:
Wahrscheinlich wollten Sie dies stattdessen tun:
Versuchen Sie jedoch als technische Antwort auf Ihr Problem Folgendes:
Dies sollte es Ihnen ermöglichen, erfolgreich zu chrooten, und an diesem Punkt können Sie andere Dinge tun.
Es gibt ungefähr eine Million Dinge, die daran falsch sind, und mit ziemlicher Sicherheit wollen Sie das nicht. Verwenden Sie minbase, wenn Sie Ihr Gefängnis erstellen, oder installieren Sie ubuntu auf einem leeren Ziel (z. B. einer virtuellen Maschine) und erstellen Sie ein tar-Archiv des gesamten Systems, in das Sie dann dekomprimieren
/mnt/temp
.quelle
Dies ist in der Tat eine 64-Bit-32-Bit-Inkompatibilität.
Obwohl mit
(kopiert 32-Bit-Exec in das neue Stammverzeichnis im
tmp
Verzeichnischroot
ist in Ordnung, alle Befehle schlagen immer noch fehl. Sie müssten sie überall kopieren.quelle
In meinem Fall habe ich versucht, in eine 64-Bit-Version von Linux zu chrooten, aber mein aktuelles Linux war 32-Bit.
Ich hatte ein Festplatten-Image (Master-Image, zur Replikation auf mehreren Rechnern) gemountet.
quelle
Ich denke in ist ein Fehler.
`/ bin / bash '
aber nicht
'bin / bash'
quelle