puppylinux-woof-CE / woof-CE

woof - the Puppy builder
GNU General Public License v2.0
399 stars 288 forks source link

bootflash and syslinux (and gpt and uefi stuff) #1124

Closed wdlkmpx closed 6 years ago

wdlkmpx commented 6 years ago

this is a messy situation that requires an immediate fix.

bootflash requires syslinux 3.xx i'm don't know whether it works with syslinux 4+

in my experience i only used bootflash as a last resort, a buggy last resort, when everything else failed. i've tried to make it work several times, and if my very old pc does not boot properly with wee.mbr, it doesn't with syslinux stuff either.

there's also isobooter, but i haven't tried it. i think these 2 utilities do some weird and unwanted stuff to make the most old and obsolete hardware to boot usb drives.. i don't know.

i was actually shocked that my 2004 mainboard with a 2006 bios revision booted my 8gb usb flash drive containing my compiled wee.mbr + grub4dos 2017-12-20 .. and a NTFS partition.. shocking !

so maybe bootflash can be heavily simplified with wee.mbr and to target bios 2005+... i have an older bios that won't boot a flash usb drive no matter what (syslinux, wee.mbr).

woof supports i686+, so mainboards made in 2000-2004 should stick to using optical or hard drives to boot wce OSes..

there is also gpt and uefi stuff, do the current scripts work in such situations?

there is also code to format a device as a floppy, my old 2004 mainboard is designed to see usb flash drives as USB-FDD or something but will not boot with syslinux no matter what, even when formatted as a FDD by bootflash, it does boot with wee.mbr.

the following iso has a standard syslinux 4.07 build for puppy (a .petbuild)... does it work it properly with bootflash?

http://01micko.com/wdlkmpx/stretch-7.0.0b1-uefi-devx.iso

wdlkmpx commented 6 years ago

another option is to remove bootflash and make grub4dosconfig part of the rootfs #1000 and the only supported grldr can be copied by 3builddistro from boot/grub4dos to rootfs/usr/share/grub4dos

the eufi installer and stuff should always be part of a puppy build even if not booting with eufi, so anyone can produce eufi-enabled installs

the logic for rootfs-packages should be revised.

gyrog commented 6 years ago

A note on isoBooter: It's magic is making use of facilities provided by "grub4dos". i.e. it sets-up the ".iso" file as a new dummy partition called "sdx4". It then either boots this "partition" or boots using the files in this "partition". So it depends on "grub4dos", the partition "sdx4" being available, and the USB device being bootable. Note: "grub4dos" does not work with "uefi" it depends on a "bios" boot.

I find isoBooter a very simply way of doing a first boot test of a new iso. If it were not part of puppy, out of the box, I would install it. Fortunately the "uefi/bios" of my desktop supports booting in "compatibility mode".

I am not familiar with "bootflash", or what it does. Will it work with a "uefi" boot?

wdlkmpx commented 6 years ago

Bootflash formats the flash driv3 using makebootfat and fdisk. An option is given to copy the cont3nts of an iso, but this last step is still primitive and the whole thing is buggy and it's basically designed for very problematic old bios. Probably not suitable for uefi boot and a candidate for deletion ..

gyrog commented 6 years ago

Unless others can provide a justification for keeping it, I see no problem in deleting bootflash. And I also see no problem with grub4dosconfig as part of rootfs, including the best possible grldr. I still find it quite usefull in a non uefi boot environment.

mavrothal commented 6 years ago

the following iso has a standard syslinux 4.07 build for puppy (a .petbuild)... does it work it properly with bootflash?

http://01micko.com/wdlkmpx/stretch-7.0.0b1-uefi-devx.iso

Tried a couple of times to download and failed halfway with a network error. Can you acrually download it OK?

Regarding bootflash, I think it should be the preferred mode/utility of installation as for the majority of (non-forum members) puppy users, puppylinux is a portable/rescue/additional OS. At least as it is presented in various reviews. So a reliable USB installer should see a lot of use.

wdlkmpx commented 6 years ago

I don't think bootflash is reliable and most of its functionality seems to be broken in modern p, those exotic options dont work, there was a forum thread about this. I edited it and gave it eye candy and more readilibity, but thats not enough. In fact it was a mistake

Even puppyinstaller can adopt its core functionality with just a few lines and install wee.mbr, which is normally used to boot grldr. In other words this can also be done with grub4dosconfig.. i never use syslinux, the only use case i see for it is in hybrid isos. So there is bias here, but a bias that will simplify scripts to the max

gyrog commented 6 years ago

Yes, we need a reliable USB installer, that preferrably can produce a uefi and/or non-uefi bootable installation. I have no idea if bootflash can be that installer.

I do know that grub4dos is a reliable non-uefi boot loader, I've relied on it for years. I can see no reason why grub4dos should not be used as a replacement for sysinux, if syslinux is a problem.

wdlkmpx commented 6 years ago

The problem is the code that handles makebootfat and syslinux, im not going to attempt to fix it, in fact i think i already have but failed. It sill expects that stuff in the iso shold be <= 250MB.. this is easily fixable

Someone said that most options are not working properly in recent puppies, they tried the same app in an old and a recent puppy and the recent puppy produced worse results.. or bad results to put it simply

wdlkmpx commented 6 years ago

The only useful code in bootflash is the code to automatically format and partition a usbdrive, enable the boot flag.. i don't remember but something similar is in puppyinstaller?. Anyway, that code could go in puppyinstaller directly, but with wee.mbr.. 500+ lines in puppyinstaller will be gone.

But wee only supports vfat, ntfs and ext2-4 (ext4 without the 64-bit flag required for for 19473974394758495876 TB drives). I'll try to contact tinybit to let him now about the current issues with wee.mbr (does not compile with gcc 6, does not support ext4 b4-bit flg), etc.

So that's the only limitation, basic linux and win fs. There are probably people installing p in some other partition fs.

But for a portable, rescue little linux distro, wee.mbr + grldr is enough (for non-eufi) boot. That's p for me, a rescue distro.

I'm not sure if i should start the process as i'm running out of time again and this is something that usually just do for myself

wdlkmpx commented 6 years ago

Today bootflash dies.. and i'll explain why.

It's broken in dpup, slacko14.x, tahrpup64, xenial, artful. Apparently only tahrpup32 uses syslinux 3. but it's broken there as well.

bootflash cannot work with syslinux 4 and everything fails. i see errors, including "Invalid ldlinux.sys." "Invalid ldlinux.bss." i patched makebootfat a bit, but it's still broken for me. it's certainly not worth the time.

http://www.murga-linux.com/puppy/viewtopic.php?t=107604&sid=f96edec8b37e6691531e0be31f048771

wdlkmpx commented 6 years ago

Hmm maybe not today, i fixed a couple issues but it's still not enough