Ady
2013-Nov-24 03:34 UTC
[syslinux] Sysinux 6 will not boot ISOs on BIOS (i.e. pre-UEFI) systems
> I'm the developer of manjaroiso, the tool we use to build our install > medias for Manjaro Linux. > During our testings we found out, that syslinux6 won't work on older > hardware. I've a new Lenovo i7 notebook which booted up our images > just fine. Even with syslinux6. On my other PCs I got similar error > messages as Carl got.(snip)> > In manjaro-testing we have currently syslinux 6.02-6 but we tested it > with syslinux 6.02-4. > Changlog you can find here: > https://projects.archlinux.org/svntogit/packages.git/log/trunk?h=packa > ges/syslinux > > kind regards > > Phil > > On 11/23/2013 03:30 PM, Carl Duff wrote: > It occured with every BIOS system I tested on (none of them Dell): > > 1. HP G62 laptop (i3) > 2. Samsung RV520 (i3)(snip)> > > It is impossible to boot Linux-based ISOs that use Syslinux 6.02 > via CD or > > DVD on older - non-UEFI - systems. Any attempt to do so will result > in the > > following error message: ISOLINUX 6.02 ETCDisolinux: Disk error 01, > AX > > 4279, drive FE(snip)> > > > It is still possible to boot / install via USB data-stick, and in a > Virtual > > Machine. Where using a newer PC with UEFI, even in Legacy mode (and > with > > the UEFI partition completely removed), ISOs using Syslinux 6.02 > will still > > go through the UEFI menu. > >I have several comments, which might not solve the issue, but perhaps they are a starting point. 0_ Giving the current context, in the following comments when I refer to version 6.02, I mean the latest version available in Arch Linux (6.02-6 as I am writing this). This is relevant not only because Manjaro is based on Arch, but because the Syslinux package in Arch already contains patches that are not yet included in the official upstream archives for version 6.02 in kernel.org. 1_ Since you take the Syslinux files from the /bios/ subdirectory, and some mix up seems to happen in some EFI systems under "Compatibility Support Module" (CSM, aka Legacy BIOS mode), then at least one test should be performed without adding *any* EFI-related "stuff". Such testing ISO image should not contain grub-related booting files, nor Syslinux efi files, nor any of the EFI-related paths. In other words, a test with Syslinux 6.02 BIOS files (and paths) *only*. 2_ Since the same problematic systems seem to be booting OK from USB drives, the basic testing ISO should be ISOLINUX-only, not isohybrid. Avoiding isohybrid on this testing ISO could reduce the chance that somehow the normal ISOLINUX boot sectors might be screwed up. 3_ When building the ISO image, only one set of boot parameters should be used; those for ISOLINUX only. So, only one "eltorito_boot_image", no "eltorito-alt-boot", no "-eltorito-platform"... In other words, build the testing ISO for a BIOS-only system with ISOLINUX 6.02 BIOS files only. 4_ The only purpose of this testing ISO is to identify whether ISOLINUX 6.02 behaves differently than ISOLINUX 4.07, specially in those problematic systems. So isolinux.cfg should be as basic and simple as possible; no menus (e.g. no gfxboot, no [vesa]menu), no automatic boots (use 'prompt 1', no timeouts), no automatic 'DISPLAY' nor 'SAY' directives and the like, no screen resolutions in special / specific graphic mode... The initial screen should be able to display a copyright and version line regarding ISOLINUX and a "boot:" prompt; that's all. We all might have more comments / questions, depending on the results with such basic image. It may depend on the optical media used (CD vs. DVD), burning speed (I suggest 4x; for a minimal testing ISO, using higher speeds is not necessary and might produce bad results), and the condition of the hardware (old optical drives might produce bad optical media). My point is, we could narrow down the problem, depending on the result of a _minimal_ ISOLINUX 6.02 BIOS-only ISO / media in comparison with an equivalent ISOLINUX 4.07 ISO / media tested on the same problematic system. @Phil, Could you please also post which exact systems are failing with the "Disk error 01, AX = 4279, drive FE" (or similar) error? Thank you and Best Regards, Ady. PS: As others have mentioned, A: Because it messes up the order in which people normally read text, especially the archives of mailing lists. Q: Why is Top-posting such a bad thing? "No one ever says, 'I can't read that ASCII(plain text) e-mail you sent me.'"
Thomas Schmitt
2013-Nov-24 11:59 UTC
[syslinux] Sysinux 6 will not boot ISOs on BIOS (i.e. pre-UEFI) systems
Hi, i am experiencing strange boot failures after repacking the ISO image archlinux-2013.11.01-dual.iso without isohybrid and EFI: # mount -o loop archlinux-2013.11.01-dual.iso /mnt $ xorriso -as mkisofs \ -o arch_repacked.iso \ -c isolinux/boot.cat \ -b isolinux/isolinux.bin \ -no-emul-boot -boot-load-size 4 -boot-info-table \ -V "ARCH_201311" \ /mnt This gesture works well with other bootable ISOs. But when trying to boot the repacked archlinux, i do not get to the menu but rather see: ISOLINUX 6.02 ETCD [... copyright ...] No DEFAULT or UI configuration directive found! boot: To make it sure that not my own program xorriso is to blame, i tested again with debian-testing-amd64-netinst.iso. This one works fine after repacking. (strings isolinux.bin says "ISOLINUX 4.05 20131121") Then i tried mkisofs. Repacking is a bit more complicated but yields the same strange result when booting. # Bring isolinux.bin to a writable filesystem # (because mkisofs insists in patching the file on disk) cp /mnt/isolinux/isolinux.bin /home/thomas/test/isolinux.bin # Put it into the ISO image as boot image isolinux2.bin # (because mkisofs -R refuses to overwrite isolinux.bin from /mnt # by isolinux.bin from /home/thomas/test) mkisofs \ -o arch_repacked_mkisofs.iso \ -c isolinux/boot.cat \ -b isolinux/isolinux2.bin \ -no-emul-boot -boot-load-size 4 -boot-info-table \ -V "ARCH_201311" \ -R -graft-points \ /mnt \ /isolinux/isolinux2.bin=/home/thomas/test/isolinux.bin I believe that the El Torito stuff is not to blame because the boot image is obviously found by the BIOS. But then something is missing. The ISO filesystem ? The missing thing is not in the System Area. Overwriting the first 32 KB of the original ISO does not hamper its bootability from DVD. But repacking its content and writing new El Torito does. The repacked ISO images are mountable. Their isolinux/isolinux.cfg has DEFAULT loadconfig LABEL loadconfig CONFIG /arch/boot/syslinux/archiso.cfg The file arch/boot/syslinux/archiso.cfg is readable too. The boot image isolinux.bin gets to quite a high address by the repacking runs (263858 * 2KB in case of xorriso-1.3.2). But it did not help to apply option --sort-weight 2 /isolinux/isolinux.bin which pushed the isolinux.bin to address 43. (This weight will be default with upcomming xorriso-1.3.4). Any idea what i should do to find out the reason for not reading the configuration ? (I could edit config files or insert a different boot image if somebody guides me.) It would be helpful to have a smaller ISO image for experiments. Repacking lasts not long. But burning to DVD+RW is slow. Have a nice day :) Thomas
Thomas Schmitt
2013-Nov-24 12:00 UTC
[syslinux] Sysinux 6 will not boot ISOs on BIOS (i.e. pre-UEFI) systems
Hi, Ady wrote:> I wonder if isolinux.bin should be limited to max. 16 sectors (of > 2KiB each), as that's the default limit in mkisofs "-G > <generic_boot_image>" option.Option -G is not related to the El Torito boot image isolinux.bin. It inserts its data into the System Area of the ISO, which is indeed limited to 32 KiB. Use cases are MBR and other kinds of boot sector or partition table. CD/DVD booting via BIOS should ignore this area. Well ... i am experiencing strange things with repacked archlinux ISOs which have no MBR. So "should" might mean "does not". Have a nice day :) Thomas
Ady
2013-Nov-24 13:04 UTC
[syslinux] Sysinux 6 will not boot ISOs on BIOS (i.e. pre-UEFI) systems
> Hi, > > Ady wrote: > > I wonder if isolinux.bin should be limited to max. 16 sectors (of > > 2KiB each), as that's the default limit in mkisofs "-G > > <generic_boot_image>" option. > > Option -G is not related to the El Torito boot image isolinux.bin. > It inserts its data into the System Area of the ISO, which is > indeed limited to 32 KiB. > Use cases are MBR and other kinds of boot sector or partition table. > > CD/DVD booting via BIOS should ignore this area. > Well ... i am experiencing strange things with repacked archlinux > ISOs which have no MBR. So "should" might mean "does not". >Yes, we frequently see options like -b eltorito_boot_image -no-emul-boot and not -G. The reason I mentioned "-G" (instead of "-b") is because the limit of 16 sectors is mentioned under that "-G" option at http://cdrecord.berlios.de/private/man/mkisofs-2.0.html So, should the eltorito_boot_image for -no-emul-boot (isolinux.bin) be (better) limited to 16 sectors (for maximum compatibility, for any optical media type)? And, is there any method to reduce its size (which in Syslinux 6.02 is bigger than 32KiB)? Thanks and Best Regards, Ady.
Ady
2013-Nov-24 13:29 UTC
[syslinux] Sysinux 6 will not boot ISOs on BIOS (i.e. pre-UEFI) systems
> Their isolinux/isolinux.cfg has > DEFAULT loadconfig > LABEL loadconfig > CONFIG /arch/boot/syslinux/archiso.cfg > The file arch/boot/syslinux/archiso.cfg is readable too. >IIRC, Arch isolinux/isolinux.cfg should say: DEFAULT loadconfig LABEL loadconfig CONFIG /arch/boot/syslinux/archiso.cfg APPEND /arch/ Or it might be using relative paths: DEFAULT loadconfig LABEL loadconfig CONFIG ../syslinux/archiso.cfg APPEND ../ Or it might skip /boot/, to use /isolinux/ and /syslinux/ (no parent /boot/ directory): DEFAULT loadconfig LABEL loadconfig CONFIG /arch/syslinux/archiso.cfg APPEND /arch/ My point is, I think you should be seeing an 'APPEND' line too in that isolinux.cfg file. Additionally and FWIW, I don't know if the Arch ISO image you have is using exactly the same Syslinux package version available right now from Arch Linux (6.02-6 is less than a week old). Regards, Ady.
Thomas Schmitt
2013-Nov-24 14:16 UTC
[syslinux] Sysinux 6 will not boot ISOs on BIOS (i.e. pre-UEFI) systems
Hi, the riddle about the failing repacks is solved, thanks to ISOLINUX wiki: "does support long (level 2) ISO 9660 plain filenames" The archlinux ISO makes use of such names. So i have to follow the wiki advise "use the "-l" or "-iso-level 2" option to mkisofs" Thus, a CD-bootable archlinux ISO without isohybrid and EFI can be repacked by # mount -o loop archlinux-2013.11.01-dual.iso /mnt $ xorriso -as mkisofs \ -o arch_repacked.iso \ -c isolinux/boot.cat \ -b isolinux/isolinux.bin \ -no-emul-boot -boot-load-size 4 -boot-info-table \ -V "ARCH_201311" \ -iso-level 2 \ --sort-weight 2 /isolinux/isolinux.bin \ /mnt The option --sort-weight is added here in order to force isolinux.bin to a low block address. Just in case that 20078, as in the original image, is too high. -------------- I came to the helpful wiki when searching for instructions how to use the "boot:" prompt. Are there any ? -------------- As it seems that booting failed because some long filename was not found: Would it be possible to get an error message about missing files ? If not, then i propose to add option -iso-level 2 to the example in http://www.syslinux.org/wiki/index.php/ISOLINUX#How_Can_I_Make_a_Bootable_CD_With_ISOLINUX.3F -------------- Have a nice day :) Thomas
Maybe Matching Threads
- Sysinux 6 will not boot ISOs on BIOS (i.e. pre-UEFI) systems
- Sysinux 6 will not boot ISOs on BIOS (i.e. pre-UEFI) systems
- Sysinux 6 will not boot ISOs on BIOS (i.e. pre-UEFI) systems
- Sysinux 6 will not boot ISOs on BIOS (i.e. pre-UEFI) systems
- Sysinux 6 will not boot ISOs on BIOS (i.e. pre-UEFI) systems