MultiBooting Puppies with Other Distros

Booting, installing, newbie
Post Reply
Message
Author
peterw
Posts: 430
Joined: Wed 19 Jul 2006, 12:12
Location: UK

MultiBooting Puppies with Other Distros

#1 Post by peterw »

This may help others who duel and multi boot Linux distros. If grub4dos does not boot some full installations distros then read on.

Up to this week my go to bootloader when mixing various Puppies and various regular Distros (such as an Ubuntu and Manjaro) has been grub4dos because it understands frugal installs as well as full distro installations. Or should I say it did. I have had instances when grub4dos would boot the Puppies and Ubuntu but was not guaranteed to provide the boot conditions for Manjaro and Sparky. Puzzling - and if I remember it correctly it started the boot process for them but then complained about file system not recognised.

I tried various solutions and eventually gave in to use Grub2 and added the menuentry's shown below to /etc/grub.d/40_custom and rerun the grub install procedure. If you don't want to rerun the grub install then you can add the script as above and at /boot/grub/grub.cfg insert it as well as shown below. NB For Slacko64, I had to add the extra bits as shown and I don't understand why.

You should note that these are Puppy frugal installs with the details kept in directories/folders.
I was using an ex-Cromebook (Acer C720) with modified BIOS set and an upgraded SSD.

### BEGIN /etc/grub.d/40_custom ###
# This file provides an easy way to add custom menu entries. Simply type the
# menu entries you want to add after this comment. Be careful not to change
# the 'exec tail' line above.
menuentry "Puppy Slacko 6.3.2" {
set root='(hd0,1)'
linux /slacko/vmlinuz
initrd /slacko/initrd.gz
}

menuentry "Puppy Slacko64 sda1" {
set root=(hd0,1)
linux /slacko64/vmlinuz rootfstype=ramfs root=/dev/sda1 psubdir=slacko64
initrd /slacko64/initrd.gz
}
menuentry "lxpup" {
set root='(hd0,1)'
linux /lxpup/vmlinuz rootfstype=ramfs root=/dev/sda1 psubdir=lxpup
initrd /lxpup/initrd.gz
}
menuentry "Fatdog-720" {
set root='(hd0,1)'
linux /fatdog-720/vmlinuz
initrd /fatdog-720/initrd
}
### END /etc/grub.d/40_custom ###

User avatar
Mike Walsh
Posts: 6351
Joined: Sat 28 Jun 2014, 12:42
Location: King's Lynn, UK.

#2 Post by Mike Walsh »

Hi, peterw.

I don't know what your own personal experience has been, but I've found it's easier to allow each full, 'normal' distro (i.e., not Puppies) to install GRUB2 ('cos they all use it) to its own Master Boot Record (MBR) or partition boot sector (PBR), then chain into GRUB2 from Grub4DOS.

I say that because alongside a HDD full of Pups, I run Anti-X 16.1 on a separate, small SSD. I allowed Anti-X to install GRUB2 to the MBR of that SSD, then 'chained' to it from Grub4DOS with this stanza:-

Code: Select all

# Full installed Linux

title AntiX 16.1 (sdb1/boot) 
  chainloader (hd1)+1 
  rootnoverify (hd1)
When I first mentioned this on the Forum (I was looking for answers at the time), Bill (rcrsn51) reckoned I had the syntax all wrong. However, this was set-up according to instructions on the Grub4DOS site:-

http://diddy.boot-land.net/grub4dos/Grub4dos.htm

.....and works exactly the way it's supposed to. I guess it's likely that as with so much other Linux stuff, there's different ways you can write that stanza; some being more 'accepted' than others!

------------------------------------------------------

This boots a full Linux install on a separate drive from that where your bootloader actually resides. I don't know whether it would work for PBRs (partition boot sector) as opposed to the MBR (the Master Boot Record), but I've heard affirmations from a small number of folk over the last few years that this does in fact work.

I haven't read anything like all of the Grub4DOS 'manual'; it's quite possible there's instructions for utilising the PBR instead. Worth a look, perhaps..?

EDIT:- Yes, here we are:-

http://diddy.boot-land.net/grub4dos/files/boot.htm#pbs

Instructions for Windoze, mainly, though it does say it's also applicable to Mac & Linux.

Works for me, anyhow.


Mike. :wink:

peterw
Posts: 430
Joined: Wed 19 Jul 2006, 12:12
Location: UK

Using grub4dos to boot all Distros

#3 Post by peterw »

Hi Mike

Thanks for that. I was aware of chainloading but did not try it on this occasion. I will do that tonight and let you know how it goes for me.

User avatar
Mike Walsh
Posts: 6351
Joined: Sat 28 Jun 2014, 12:42
Location: King's Lynn, UK.

#4 Post by Mike Walsh »

Hi, peterw.

Okay. Don't forget, too, that Grub numbers drives starting from '0':-

sda = hd0
sdb = hd1
sdc = hd2, etc.

BUT: It numbers partitions from '1' as usual.

(In my own case, because I just use the entire 32 GB SSD as a single partition, that's why my chainloader only lists hd1 (sdb). It's booting the drive, as opposed to a specific partition. If it had been sdb2, say, it would have been hd1,2. And so on...)

I made no end of cock-ups in the early days due to that one, single fact. Took me a wee while to drill it through my thick skull..!

--------------------------------------------------------------------

I don't bother setting up a dedicated 'swap' partition on the SSD for Anti-X. The main HDD has a large swap area, and my external 3TB Seagate Expansion drive also has a large swap partition, too. Anti-X is perfectly capable of 'seeing them'.....as a result, it has around 10 GB of swap to choose from...

It'll be a cold, hard day in Hell before I'll ever use GRUB2 again. Most mainstream distros use it by default.....and many of their users seems to think it's the best thing since sliced bread; as far as I'm concerned, they can keep it, too..! Personally, I hate it with a passion... Horrible thing! Image


Mike. :wink:
Last edited by Mike Walsh on Thu 15 Mar 2018, 16:13, edited 1 time in total.

User avatar
rufwoof
Posts: 3690
Joined: Mon 24 Feb 2014, 17:47

#5 Post by rufwoof »

grub4dos is great, but also having (and chainloading to) grub2 is good as grub2 supports additional functionality that grub4dos doesn't support. For instance my setup is puppy as a admin CD boot choice, Debian stable as my daily desktop, and OpenBSD as our server. With grub2 you can boot a OpenBSD bsd.rd (ramdisk i.e. to update or reinstall), so under Debian I can download the latest bsd.rd to the / folder and reboot to load/start that via the grub2 menu, whilst grub4dos doesn't support booting that bsd.rd, only booting the installed OpenBSD.

i.e. amongst others my grub4dos menu.lst contains

title chain grub2
find --set-root /boot/grub/i386-pc/core.img
kernel /boot/grub/i386-pc/core.img
boot

title BSD sda4
root (hd0,3)
makeactive
chainloader +1
boot


whilst grub2 contains a kopenbsd command boot choice of

menuentry 'OpenBSD bsd.rd' {
kopenbsd /bsd.rd
}

I also like ext3 format for a data partition as that can be mounted by Linux as though it were a ext4 (so good recovery in the event of power cut or whatever), but can also be mounted as though a ext2 from OpenBSD (so can read/write from either Linux or BSD).
[size=75]( ͡° ͜ʖ ͡°) :wq[/size]
[url=http://murga-linux.com/puppy/viewtopic.php?p=1028256#1028256][size=75]Fatdog multi-session usb[/url][/size]
[size=75][url=https://hashbang.sh]echo url|sed -e 's/^/(c/' -e 's/$/ hashbang.sh)/'|sh[/url][/size]

willithepuppy
Posts: 31
Joined: Sat 10 Mar 2018, 19:57

#6 Post by willithepuppy »

I also use the solution suggested by peterw and am satisfied with it. Non puppy's like WinXX are running in virtual machines. That's enough for me.

peterw
Posts: 430
Joined: Wed 19 Jul 2006, 12:12
Location: UK

Trying more various menu entries - grub4dos

#7 Post by peterw »

Hi All

Have tried various combinations of grub4dos entries to get Sparky to boot. And, I had similar problems with Manjaro but not with Mint and Ubuntu's.

Every time I try I get "Error 13: Invalid or unsupprted executable format".

I have used grub4dos with Sparky and Manjaro in the past and there has not been an issue. It seems something recent.

Below are some of the grub4dos entries I have tried. Any suggested changes will be also tried.

title SparkyLinux (sda3)
uuid xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
kernel /vmlinuz mem=1950m root=/dev/sda3 ro
initrd /initrd.img

title SparkyLinux (sda3)
chainloader (hd0,3)+1
rootnoverify (hd0)

title SparkyLinux (sda3)
chainloader (hd0,3)+1
boot

title Boot MBR of First Hard Disk
chainloader (hd0)+1
rootnoverify (hd0)

title chain grub2
find --set-root /boot/grub/i386-pc/core.img
kernel /boot/grub/i386-pc/core.img
boot

title chain grub2
find --set-root /boot/grub/i386-pc/core.img
kernel /boot/grub/i386-pc/core.img rw
initrd /boot/grub

boot

title Linux Mint 18.3 Sylvia (sda5)
uuid xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
kernel /vmlinuz mem=1950m root=/dev/sda5 ro
initrd /initrd.img

For clarity here is the partitioning
sda 8:0 0 119.2G 0 disk
├─sda4 8:4 0 2.2G 0 part [SWAP]
├─sda2 8:2 0 1K 0 part
├─sda5 8:5 0 47.5G 0 part
├─sda3 8:3 0 46.8G 0 part
└─sda1 8:1 0 22.7G 0 part /initrd/mnt/dev_save

Post Reply