LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Linux - General (https://www.linuxquestions.org/questions/linux-general-1/)
-   -   chroot: cannot execute /bin/sh: Exec format error (https://www.linuxquestions.org/questions/linux-general-1/chroot-cannot-execute-bin-sh-exec-format-error-674683/)

jnojr 10-06-2008 06:36 PM

chroot: cannot execute /bin/sh: Exec format error
 
I took a dd image of a machine, restored it to a similar machine (the first was a Dell SC1425, the second a Dell PE1950), and am trying to get it to boot. I believe I need a new initrd But I cannot chroot into /mnt/sysimage from a 'linux rescue'... I get:

chroot: cannot execute /bin/sh: Exec format error

I get this if I allow the rescue image to find and mount the volume, or if I do it myself. I tried:

lvm vgchange -a y
mkdir /mnt/sysimage
mount /dev/mapper/VolGroup00-LogVol00 /mnt/sysimage
mount /dev/sda1 /mnt/sysimage/boot
mount -o bind /proc /mnt/sysimage/proc
mount -o bind /dev /mnt/sysimage/dev
mount -o bind /sys /mnt/sysimage/sys
chroot /mnt/sysimage /bin/bash

And I get the exec error again.

On both systems, uname reports i686

How can I chroot in to fix the initrd?

jschiwal 10-06-2008 11:02 PM

Before chroot'ing does /mnt/sysimage/bin exist? What are the permissions? Try running "chroot /mnt/sysimage" and then "/bin/bash -l".

jnojr 10-07-2008 11:59 AM

Quote:

Originally Posted by jschiwal (Post 3302518)
Before chroot'ing does /mnt/sysimage/bin exist? What are the permissions? Try running "chroot /mnt/sysimage" and then "/bin/bash -l".

Yes, /mnt/sysimage/bin/sh is a symlink to /mnt/sysimage/bin/bash with 555 permissions.

And "chroot /mnt/sysimage" gives me the Exec format error.

And, yes, /bin/sh exists... it's a symlink to /usr/bin/sh which is a symlink to /usr/bin/bash

jschiwal 10-08-2008 01:02 AM

Look at the permissions of the target /mnt/sysimage/bin/bash instead of the link itself. Also check the permissions of the /mnt/sysimage/ mounted directory and that it isn't mounted with the noexec option. Look at "ls -ld /mnt/sysimage/" and "mount". Try using the rescue disk for that version of Linux. An older kernel may not have full support for the ext3 version you boot with disabling some features. Also, check if tty on [ALT][F12] has the kernel messages displayed. They may provide more information on what when wrong from the kernel's perspective.

peczeciak 01-10-2009 01:11 PM

This may be helpful:
link

btncix 08-25-2009 02:41 PM

first poster and perhaps still a newbie here,

just wanted to say thanks for this post. it helped me rescue my slackware install

DaPh00z 05-26-2011 06:16 PM

Exec format error
 
from Gentoo-wiki Forums: en.gentoo-wiki.com/wiki/Chroot_from_a_livecd

Quote:

If the chroot command returns with the error "chroot: cannot run command `/bin/bash': Exec format error", this usually indicates that the live CD environment is not compatible with that of the installed system.

For example, the error is most frequently seen when trying to chroot to a 64-bit system (eg. amd64) from a 32-bit live CD (eg. x86).

The solution is to use a live CD which is using the same architecture as the installed system.
I have the same problem, and I believe that is the solution. (At least the conditions are all true, I'm trying to chroot a 64-bit OS on the hard disk from a 32-bit live cd.) I'm burning a 64-bit live cd now to find out.

oso_togari 07-08-2011 04:58 AM

Excelent. Thats exact my problem. Solved with proper 64 bits DVD.

Thanks

ericklan 06-24-2012 12:52 AM

Solved with 64-bit DVD.
 
Solved with 64-bit DVD.

thanks DaPh00z


All times are GMT -5. The time now is 10:18 PM.