2

I downloaded the Linux executable for Unetbootin 494, and now I'm trying to run it. As root, I made it executable and attempted to execute it:

chmod +x unetbootin-linux-494
./unetbootin-linux-494

Nothing happens and no output is displayed. ps -e | grep unetbootin shows nothing either. The file's size looks right (4.3 MB), although I don't see a checksum on sourceforge with which to verify it. I'm running it on my /home partition (as root, though), so the filesystem isn't non-executable.

How can I execute this file, or at least debug the problem further? I'm using Debian x64.

John Bensin
  • 245
  • 2
  • 4
  • 19
  • 1
    Why not `apt-get install unetbootin`? – frostschutz Mar 24 '13 at 01:26
  • @frostschutz Because I'm trying to use it to write a Windows 7 iso to a disk, and the 49* versions are the last versions that will read an NTFS partition (and therefore write the Windows iso correctly). Otherwise I would *definitely* be content to use the repo. – John Bensin Mar 24 '13 at 01:36
  • It's also nice for pulling dependencies... – frostschutz Mar 24 '13 at 01:40
  • @frostschutz If I could have used the version in the repo, I would have in a heartbeat. The problem basically boiled down to dependencies, though (32-bit shared libraries, specifically), since the old version of unetbootin is 32-bit and I'm using a 64-bit system. – John Bensin Mar 24 '13 at 01:42
  • 1
    [Getting "Not found" message when running a 32-bit binary on a 64-bit system](http://unix.stackexchange.com/q/13391) is our canonical question on the topic. What shell are you using? Normally you should see an error message. – Gilles 'SO- stop being evil' Mar 24 '13 at 15:25
  • @Gilles Bash. I imagine I would have found that question if I'd received an error message, but I only saw the missing library that led me to `ia32-libs` once I used strace. – John Bensin Mar 24 '13 at 21:06

1 Answers1

3

Short answer:

Installing ia32-libs and ia32-libs-gtk should fix the problem. The problem was pretty basic: running a 32-bit executable on a 64-bit system without the proper libraries doesn't work.

Longer answer:

My initial post might have been too hasty, but since I had a minor amount of difficulty finding a solution, I might as well answer. I ran strace ./unetbootin-linux-494, which tells me:

execve("./unetbootin-linux-494", ["./unetbootin-linux-494"], [/* 33 vars */]) = 0
[ Process PID=5369 runs in 32 bit mode. ]
old_mmap(0x1020000, 4096, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0x1020000) = 0x1020000
readlink("/proc/self/exe", "/home/jb/Downloads/unetbootin-linux-494", 4096) = 43
old_mmap(0x8048000, 10891295, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x8048000
mprotect(0x8048000, 10891292, PROT_READ|PROT_EXEC) = 0
old_mmap(0x8aac000, 124071, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0xa63000) = 0x8aac000
mprotect(0x8aac000, 124068, PROT_READ|PROT_WRITE) = 0
old_mmap(0x8acb000, 4436, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x8acb000
brk(0x8acd000)                          = 0x8bfc000
open("/lib/ld-linux.so.2", O_RDONLY)    = -1 ENOENT (No such file or directory)
_exit(127)    = ?

Clearly the problem is that the ld-linux.so.2 object doesn't exist on my system. Since that object is part of ia32-libs, I installed that package. However, that isn't enough, because I then received this error:

unetbootin-linux-494: error while loading shared libraries: libgthread-2.0.so.0: cannot open shared object file: No such
file or directory

According to this bug report, however, the problem is because the ia32-libs-gtk package needs to be installed as well. Once I installed that, the executable ran normally.

John Bensin
  • 245
  • 2
  • 4
  • 19