Linux executable fails with "File not found" even though the file is there and in PATH
This:
$ file /usr/bin/wine
/usr/bin/wine: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV),
dynamically linked, interpreter /lib/ld-linux.so.2, for GNU/Linux 2.6.32,
BuildID[sha1]=eaf6de433d8196e746c95d352e0258fe2b65ae24, stripped
Combined with this:
$ ldd /usr/bin/wine
/usr/bin/ldd: line 117: /usr/bin/wine: No such file or directory
Strongly suggests that the system does not have the /lib/ld-linux.so.2
ELF interpreter. That is, this 64-bit system does not have any 32-bit compatibility libraries installed. Thus, @user1334609's answer is essentially correct.
OK, I was busy for the last eight hours to get my system up and running again after CPU overheating shut-down. On reboot it became apparent that it was so screwed up that even the fall-back console of initrd didn't recognize my keyboard anymore. It is a mystery for me how the system managed to stay operative for so long, while I was trying to implement the countless suggestions by you (thank you a lot!!)
Problem on reboot:
Warning: /lib/modules/4.11.3-1-ARCH/modules.devname not found - ignoring
ERROR: device 'UUID=...' not found. Skipping fsck.
ERROR: Unable to find root device 'UUID=...'.
You are being dropped to a recovery shell
Type 'exit' to try and continue booting
sh: can't access tty: job control turned off
and no keyboard working afterwards :-)
The Problem was: An update replaced the symlink /lib -> /usr/lib
with a directory. So that meant all libraries and kernel modules, which are expected to be in /lib
were missing :-)
So I recreated the symlink and reinstalled the base system from a live CD.
Now that I have internet again, I also found this thread
I also used the package manager of my bricked on-disk installation (called pacman
) from the live CD to reinstall all the packages of the base group (maybe only the kernel, so package linux
would have been enough, I don't know)
To accomplish that, mount the main partition of the bricked installation to the /mnt
directory of the live CD system and use chroot
to make pacman
think /mnt
is /
(insert your bricked system's main partition for sdXXX
)
mount /dev/sdXXX /mnt
# Recreate the /lib -> usr/lib symlink
ln -s usr/lib /lib
# Mount essential system folders also to the respective subfolders of /mnt
mount -t proc proc /mnt/proc
mount -t sysfs sys /mnt/sys
mount -o bind /dev /mnt/dev
# Fake /mnt to be /, so that pacman installs the packages to the correct places
chroot /mnt
# Reinstall the Arch Linux base system
pacman -Sy base
For the record: create a relative symlink, so ln -s usr/lib /mnt/lib
and not ln -s /usr/lib /mnt/lib
, because during early system boot (initrd stage) the main partition will be mounted first to /new_root
. Would the symlink be absolute, you would get the above-mentioned error during early boot.
You are trying to run 32-bit application on a 64 bit operating system, so you need to install 32-bit compatibility libraries (glibc in particular) before this can work.