Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 29 Oct 2019 00:07:03 -0700
From:      Frank Fenderbender <frankfenderbender@council124.org>
To:        freebsd-questions@freebsd.org
Subject:   n-boot systems, bootloaders, and grub
Message-ID:  <57ABB44D-96E6-45F5-9837-1B66EF4C30DF@council124.org>

next in thread | raw e-mail | index | archive | help
I am seeking clarification on using 'update-grub' and/or =
'grub-mkconfig'.

Here's the details upon which I am working.

   Systems: two Dell Precision 5820 Tower Workstations, each currently =
using 4 internal HDs.
   Primary/default OS on both systems: Ubuntu 18.04.
   Goal: add three (3) more operating systems (FreeBSD, Fedora, Debian =
added on one; Window10, GhostBSD, DragonflyBSD added onto the other).
   Required process: a step-wise installations with intermittent backup =
and and modification of GRUB (v2.x).

Okay, I've read about two methods of creating my N-boot system.

The essence of "Method 1" is:
$ sudo gedit /etc/default/grub
# menu will list ordered boot/bootloader options
# the "primary" will need to have the highest "GRUB_DEFAULT" number
# the list, with just a primary OS, starts with 0
# to add a secondary OS, add its section, and increment the primary #
# with four OSs, the primary OS ends up set as 3=20
# and the secondary OSs will be set at 0, 1, and 2
GRUB_DEFAULT=3D3
GRUB_DEFAULT=3D2
GRUB_DEFAULT=3D1
GRUB_DEFAULT=3D0
# the OS-adding and default-tweaking must be done one-at-a-time
# with the use of a tool, 'update-grub', in-between.

The second, method, which I am opting for, because it is said to be less =
complicated, is:

$ sudo gedit /etc/default/grub
# change variable from original
GRUB_DEFAULT=3D0
to
GRUB_DEFAULT=3Dsaved
# also, change the default time allowed in menu before the default
# for the primary OS starts, i.e., the one with the highest number,
# however, will that be added into the file by the 'grub-set-default'
# method below?
GRUB_TIMEOUT=3D15
# save the edit session
# update the grub.cfg file
$ sudo update-grub
# run command
$ sudo grub-set-default 'Ubuntu 18.04 (loader) (on /dev/sda1)'
# there is no longer a need to set a number, since the list option is =
explicit
# now, add other OSs for each OS and HD#
# '[OS name] (loader) (on /dev/sd[hdd#][partition#])', such as
# $ sudo grub-set-default 'Ubuntu 18.04 (loader) (on /dev/sda1)'
# $ sudo grub-set-default 'FreeBSd (loader) (on /dev/sda2)'
# $ sudo grub-set-default 'Fedora 12 (loader) (on /dev/sda3)'
# $ sudo grub-set-default 'Debian (loader) (on /dev/sda4)'

I'm leaning towards Method2, as it is said to be "safer".=20
No explanatory evidence for that statement was given.

I am using the following as references (versus the search results with =
uncertain starting points):
How Linux Works (2nd ed. - 2015) - by Brian Ward
Linux Administration: A Beginner's Guide (7th ed. - 2016) - by Wale =
Soyinka
Ubuntu 16.04 LTS Desktop Applications and Administration (2016) - by =
Richard Peterson
GNU Grub Reference Manual (2012) - by Matzigkeit, Okuji, Watson, Bennett

As I understand it so far, the UEFI partition on sda will be home to the =
one-and-only grub installation on the system (on sda in its /boot/grub =
directory's grub.cfg file).

After having its boot presented-list has received a valid selection =
input, it will direct the system boot process to the correct operating =
system /boot directory on either sda, sdb, sdc, or sdd.

I have partitions on sda set up as:

partition type mount-pt actual-size notes
--------- ------- ------------ ----------- ------
free space 1M for MBR backward-compatibility
/dev/sda1 fat32 /boot/efi 1G size input covers the preceding 'free =
space'
/dev/sda2 fat32 /biosgrub 10M
/dev/sda3 ext4 /boot 4G
/dev/sda4 ext4 / 300G "root partition", used for the OS
/dev/sda5 ext4 swap 12G
/dev/sda6 ext4 /usr 20G
/dev/sda7 ext4 /tmp 12G
/dev/sda8 ext4 /usr/local 50G
/dev/sda9 ext4 /home 450G

On sdb (and likewise, substituting "sdc" or "sdd" for the other =
secondary OSs)=20
the partitions are:

free space 2.1M
/dev/sdb1 fat32 /biosgrub 34M
/dev/sdb2 ext4 /boot 4.2G
/dev/sdb3 ext4 / 315G "root partition", used for the OS
/dev/sdb4 ext4 swap 13G
/dev/sdb5 ext4 /usr 20G
/dev/sdb6 ext4 /tmp 12G
/dev/sdb7 ext4 /usr/local 50G
/dev/sdb8 ext4 /home 450G

Although additional comments are welcomed offline, my question is based =
in seeing two recommendations for updating the "live" grub.cfg file,  =
after each install-step, via running a referred-to command on =
/use/default/grub in order to create that "live" file.=20

Two tools have been given, and, understanding their general use, I am =
trying to understand their specific use.

So, can you tell me what the difference(s) between, the =
[dis]advantage(s) of each, and the system/kernel requirement(s) of/for =
using the 'update-grub' and/or 'grub-mkconfig' commands?

I might guess that...
one is a specific to one OS (wrapped around Linux) over another;
it is the release of the Canonical Linux kernel (4.x versus 5.x);
it is more robust;
it reduces the number of "outside-of-the-tool" steps wherein higher =
possibility for error awaits.
That is just me guessing.

I've seen both commands referenced in reading about both methods.

I appreciate your review of this topic and any knowledge gleaned from =
your own n-boot setup experience.

Thanks much.
"Frank"








Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?57ABB44D-96E6-45F5-9837-1B66EF4C30DF>