Yellow Rabbit

Updating isolinux files and image building

Repairing the isolinux bootloader for Acer C720

It turned out that the antiX Linux installer does not want to be friends with my Acer C720: the installer runs into the so-called bootloop. The reason lies in the peculiarities of the Sea BIOS, which takes its 16M memory, which leads to the collapse of syslinux.

This is fixed in version 6.04 of syslinux, but what do I do now with the old distribution on my hands? We will replace syslinux with ISO.

New syslinux

We take away and unpack the new syslinux:


wget https://www.kernel.org/pub/linux/utils/boot/syslinux/Testing/6.04/syslinux-6.04-pre1.tar.gz
tar zxvpf syslinux-6.04-pre1.tar.gz

From this directory we will then take the latest versions of the files.

Preparing the image

We mount and copy the contents of the installation disk to the directory dst - the root of the new installation image. I had an installation image on the flash drive /dev/sdb


mkdir dst /mnt/dst
mount -t iso9660 /dev/sdb /mnt/dst
cp -a /mnt/dst ./
umount /mnt/dst
cd dst

Take away the boot sector.


dd if=/dev/sdb bs=512 count=1 of=isohdpfx.bin

Replace files with new versions

We need to copy the files from the directory with the new version of syslinux to dst/boot/isolinux/ List of files to copy:


./bios/com32/chain/chain.c32
./bios/com32/gfxboot/gfxboot.c32
./bios/core/isolinux.bin
./bios/com32/elflink/ldlinux/ldlinux.c32
./bios/com32/lib/libcom32.c32
./bios/com32/cmenu/libmenu/libmenu.c32
./bios/com32/libutil/libutil.c32
./bios/com32/menu/menu.c32

In the file dst/boot/isolinux/version we write the new version 6.04.

Gathering the image

Run a small script in the parent directory dst


#!/bin/sh
MBR_FILE=isohdpfx.bin
xorriso -as mkisofs \
        -iso-level 3 \
        -R -J -pad \
        -full-iso9660-filenames \
        -volid "antiXlive" \
        -eltorito-boot boot/isolinux/isolinux.bin \
        -eltorito-catalog boot/isolinux/isolinux.cat \
        -no-emul-boot -boot-load-size 4 -boot-info-table \
        -isohybrid-mbr ${MBR_FILE} \
        -eltorito-alt-boot \
        -e boot/grub/efi.img \
        -no-emul-boot -isohybrid-gpt-basdat \
        -output antix-core-c720.iso \
        ./dst

As a result, we get a new ISO antix-core-c720.iso, which we can write back to the flash and boot from it.