by RickJ » Fri Jan 19, 2018 3:17 am
Thanks for your help.
I've tried the v3 trial and had more success. I can see that makeHDD has been (oddly) tweaked to get round some of the coding issues, and I've been able to create bootable media. I don't think the failure of 2.99 to boot was actually the fault of the make scripts, as I'd managed to manually work round the script issues. Looks like I shall have to upgrade to v3.
I've also tried makeGRUB, and it boots but has an odd problem. It gets to "Configuring system clock" then hangs. It can be cancelled with Ctrl+C, then a manual startx command opens IFL. The first time it hung I waited then hit CTRL+ALT+DEL, at which point the IFL screen appeared, but then of course it shut down and re-booted. It's the same with both net and non-net builds. Booting off other media never has that problem.
The scripting issues are essentially the result of massive over-use of quotes in the code. E.g.
if [ "$ptype" = "6" ] || [ "$ptype" = "e" ]; then # FAT16
Literals in Shell don't need quotes, everything is a literal by default (i.e. unless the syntax implies it's something else). Quoting a variable preserves embedded spaces, and is only potentially needed in this situation if there's a possibility that ptype is blank - which here it can't be. Because single-digit output from sfdisk has a leading space, the value of ptype is actually ' 6'. This code (and all similar) should be:
if [ $ptype = 6 ] || [ $ptype = e ]; then # FAT16
(or better still use "select ... case").
I can see the work-round added to strip ptype, the rather strange:
ptype=${ptype// /}
why not just:
ptype=$ptype
I got another strange error running makeHDD from the syslinux command:
plain floppy: device "/proc/3955/fd/3" busy (Resource temporarily unavailable):
Cannot initialize 'S:'
Bad target s:/ldlinux.sys
(there's no floppy, and no device 'S:' !)
This didn't happen when running syslinux directly from the command prompt, so I disabled the command in makeHDD and ran it manually after the script completed, which was fine. I've since discovered this appears to be a known bug in my version of syslinux, though I have no idea why it works on the command line and not in a script! I think this will be resolved in the 18.04 LTS Ubuntu release.
I've been using IFL v2 and BootIt NG for quite a while now for regular image backups etc, but recently got a new machine with UEFI so had to start again. When I get the full version of v3, I assume I can just update files on my boot media to switch from the trial version rather than re-create?
Are there any plans (is it even possible?) for a new version of BooIt that's UEFI compatible?
Best regards
Rick Jones