Postępowałem zgodnie z instrukcjami tego samouczka : Czyszczenie i ponowne instalowanie Grub 2 z Live CD , gdy napotkałem błąd w kroku 1, gdy uruchomiłem polecenie
sudo chroot /mnt/temp
Błąd był następujący:
chroot: failed to run command `/bin/bash': Exec format error
Skąd to pochodzi? Jak mam się przebić?
Miałem ten sam problem podczas tworzenia obrazu łuku armhf. Musiałem zainstalować,
qemu-user-static
a następnie skopiować go do folderu bin chroot.źródło
Błąd oznacza, że twoja jail (
/mnt/temp
) nie zawiera powłoki bash lub nie zawiera bibliotek wymaganych do uruchomienia powłoki bash.Jeśli utworzyłeś więzienie za pomocą czegoś takiego:
Prawdopodobnie chciałeś to zrobić zamiast tego:
Jednak jako techniczną odpowiedź na problem spróbuj:
Powinno to pozwolić ci pomyślnie wykonać chroot, w którym to momencie możesz robić inne rzeczy.
Jest jednak około miliona rzeczy złych w tym działaniu i prawie na pewno nie chcesz tego robić. Użyj minbase podczas tworzenia więzienia lub zainstaluj ubuntu na pustym celu (np. Maszynie wirtualnej) i utwórz archiwum tar całego systemu, do którego następnie rozpakujesz
/mnt/temp
.źródło
Rzeczywiście jest to 64-bitowa 32-bitowa niezgodność.
Chociaż z
(kopiuje 32-bitowe exec do nowego katalogu głównego w
tmp
kataloguchroot
jest w porządku, wszystkie polecenia wciąż zawodzą. Będziesz musiał skopiować je wszystkie.źródło
W moim przypadku próbowałem chrootować do 64-bitowej wersji Linuksa, ale mój obecny Linux był 32-bitowy.
Zamontowałem obraz dysku (obraz główny, do replikacji na wielu komputerach).
źródło
Myślę, że w to BŁĄD.
`/ bin / bash '
ale nie
„bin / bash”
źródło