My partition table is as follows:
- /dev/sda1 Arch Linux (200G)
- /dev/sda2 Swap (16G)
- /dev/sda3 Recovery (1G)
- /dev/sda4 Extended
- - /dev/sda5 Arch_201212 (256M)
- Free Space (15G)

I have used dd to write the newest arch-linux installation ISO to /dev/sda5. If I mount the partition, all the files are there. The recovery partition contains only the syslinux loader for the purpose of starting the various partitions after /dev/sda4.

When I load the entry, it says:

isolinux.bin missing or corrupt

Then it tries to boot using PXE/Network Adapter, which obviously fails.

Although it is not missing. It is in [ /dev/sda5 ]/isolinux/isolinux.bin

Here is my syslinux.cfg in /dev/sda3

DEFAULT arch-recovery
UI menu.c32
MENU TITLE Recovery Partition
MENU COLOR border 30;44 #40ffffff #a0000000 std
MENU COLOR title 1;36;44 #9033ccff #a0000000 std
MENU COLOR sel 7;37;40 #e0ffffff #20ffffff all
MENU COLOR unsel 37;44 #50ffffff #a0000000 std
MENU COLOR help 37;40 #c0ffffff #a0000000 std
MENU COLOR timeout_msg 37;40 #80ffffff #00000000 std
MENU COLOR timeout 1;37;40 #c0ffffff #00000000 std
MENU COLOR msg07 37;40 #90ffffff #a0000000 std
MENU COLOR tabmsg 31;40 #30ffffff #00000000 std
LABEL arch-recovery
MENU LABEL Arch Linux Live CD
COM32 chain.c32
APPEND hd0 5
MENU LABEL HDT (Hardware Detection Tool)
COM32 hdt.c32
LABEL reboot
COM32 reboot.c32
COMBOOT poweroff.com


Example using Knoppix.

  • create a mountpoint to mount the ISO with loopback:

    mkdir /mnt/LiveISO
  • mount the image:

    mount -t iso9660 -o loop,ro /DOWNLOADS/Knoppix-3.7-en.iso /mnt/LiveISO
  • create a directory on the device where you are going to boot from:

    mkdir /mnt/hda4/KNOPPIX
  • copy the contents of the mounted image to that directory:

    cp /mnt/LiveISO/KNOPPIX/* /mnt/hda4/KNOPPIX/
  • copy kernel and initrd files to yor boot device:

    cp /mnt/LiveISO/boot/* /boot
  • Grub:

    title KNOPPIX  
    root (hd0,0)  
    kernel /linux26 ramdisk_size=100000 fromhd=/dev/hda4  
    initrd /minirt26.gz  
  • Lilo:

    append="ramdisk_size=100000 fromhd=/dev/hda4"

The basic idea is that you copy the contents of the iso to a partition. Then, in your current linux os, you copy the kernel and initrd images from the iso to your current boot directory. Last, you edit LILO so that it points to the kernel and initrd images you just copied, and make sure you append the "fromhd" line so that the "livecd" will know where the rest of the knoppix files are. I know that similar instructions worked with kanotix as well (which makes sense since it is knoppix based). The only possible problem for other isos (say non-livecds, for example) is that they may not have a "fromhd" option the way knoppix distros do.

Found here: Boot ISO image from hard disk?

| improve this answer | |
  • 1
    Maybe I'm not seeing it, but could you explain how what you copy-pasted answers the question here, specifically? – slhck Dec 28 '12 at 20:20
  • He used dd to make a bit-for-bit copy of his iso onto the /dev/sda5 partition. What he needs to do is copy specific files from the iso as well as other files from his existing install. It's also set up to boot directly from the partition without going through /dev/sda3 first. Unless he's trying to recover his /dev/sda1 partition with the newest install ISO, why would he want to do this? – Kruug Dec 28 '12 at 20:26
  • The reason I am booting through /dev/sda3 is incase I mess up my bootloader on /dev/sda1. I will have to try your idea and see if it works. BTW slhck, he is suggesting an alternate method that will not give me an error. – Wolfizen Dec 28 '12 at 21:59
  • What I can't figure out is why you can use dd to burn iso's to USB, but not hard drives? – Wolfizen Dec 28 '12 at 22:23
  • Possibly the difference of reading a USB drive as a CD-ROM vs reading an HDD as a CD-ROM. – Kruug Dec 28 '12 at 22:34

I wish to give a clear answer to the original question, restated here as "Why after dd_bitcopied_isoimage to /dev/sda5, is isolinux.bin missing or corrupted?" (no ersatz proposition to solve without answering!)

isolinux.bin is a bootloader for isofs_image. When the isoimage is created by mkisofs (or any clone like genisoimage, wodim, etc.) or more recent xorriso the physical position of isolinux.bin on that isofsimage is hard-coded into the master mbr or isohybrid-mbr, so that at boot the BIOS or similar firmware has access to it.

dd isoimage to /dev/sda keeps that exact position so it can boot.

dd isoimage to /dev/sda5 keeps that position with respect to /dev/sda5 but no more to /dev/sda where the mbr sits!!! Simply experiment with:

qemu-system-x_YYYY  /dev/sda5  

to understand it!

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.