WelcomeWelcome | FAQFAQ | DownloadsDownloads | WikiWiki

Author Topic: How to make a legacy bios/uefi dual boot usb stick with syslinux  (Read 25823 times)

Offline Juanito

  • Administrator
  • Hero Member
  • *****
  • Posts: 14583
Re: How to make a legacy bios/uefi dual boot usb stick with syslinux
« Reply #15 on: November 28, 2019, 03:44:41 AM »
Does your tc-7.x installation boot on the new laptop?

core*.gz = rootfs*.gz + modules*.gz

Offline polikuo

  • Hero Member
  • *****
  • Posts: 714
Re: How to make a legacy bios/uefi dual boot usb stick with syslinux
« Reply #16 on: December 06, 2019, 06:39:46 AM »
This looks interesting.
I've had problems trying to install <grub2-forUEFI>.
Since I'm still using Ver7.2 of TC64: I thought to update to ver10,
while installing for the newProblematic UEFI laptop.
Since oldLaptop:V7.2 boots with no problems, and good font-size etc. I
thought to start from a known good state.
 Could I use these existing partitions of my "Ver7.2 of TC64 BakUpStik",
and just loses the "MBR",
and rename the dirs which I want to keep for BakUps?
Device      Boot    Start       End   Sectors   Size  Id Type
/dev/sdc1   *        2048   4689547   4687500   2.2G   c W95 FAT32 (LBA)
/dev/sdc2           4689548  15630335  10940788   5.2G  83 Linux?
In general, to boot UEFI properly, you'll need GPT (GUID Partition Table).
That usually means losing your data during conversion.
However, it may not be a requirement depends on your motherboard.
If you wanna preserve your MBR partition table, you could copy all the UEFI firmwares and go for a shot. (Recommended)
The second method is force convert to GPT via a M$ machine and hope for the best.
You could convert a MBR disk to GPT without losing data. (not sure about USB, especially one with multiple partitions.)
In command prompt, run "diskpart", "list disk", "select disk X", "convert gpt"

So far I've had no explanation of how syslinux & grub can have different
"kernel and initrd" files: eg: isolinux.cfg = 2 files:
    KERNEL /boot/vmlinuz64
    INITRD /boot/corepure64.gz
but, *2/EFI/BOOT/grub/grub.cfg  = 3 files ?! :
linux /boot/vmlinuz64v10 ...
initrd /boot/corepure64v10.gz /boot/modules64.gz
 What is the modules*.gz which syslinux doesn't need ?

Hi, I could see several misunderstandings / mistakes here.

isolinux.cfg is designed for CDs, the precedence of syslinux.cfg in ISOLINUX is lower.
If you boot from a standard isolinux CD, isolinux.cfg would be used unless it couldn't find one.
It would then fall back to syslinux.cfg
However, if the boot media is not a CD, isolinux.cfg would not be used.
(Which is the case in my tutorial. It uses syslinux.cfg)
Unless, you somehow made your disk / USB Isohybrid.
(A feature I never use.)

isolinux.cfg = 2 files:
Sometimes grub & syslinux could chain-load to each other.
IIRC, for grub to load a syslinux ISO, an extra isolinux.cfg is required.
If you somehow made a loop, you could have several files:
isolinux --> grub --> isolinux --> grub --> isolinux ....

initrd /boot/corepure64v10.gz /boot/modules64.gz
Multiple filenames are separated by commas.
Otherwise, IIRC, it would only load the first argument.
In your case, a core*.gz will suffice.

What is the modules*.gz
Answered by Juanito:
core*.gz = rootfs*.gz + modules*.gz
Please refer to distribution files.
In SYSLINUX syntax, either
INITRD /path/to/core*.gz
INITRD /path/to/rootfs*.gz,/path/to/modules*.gz
is OK.
Note that whether the keyword [INITRD] is in capital letters or not does not matter, I prefer capital ones.  :)