diff --git a/source/_figures/multi-boot/dual-boot-linux-01.png b/source/_figures/multi-boot/dual-boot-linux-01.png new file mode 100644 index 00000000..a4a0d2ba Binary files /dev/null and b/source/_figures/multi-boot/dual-boot-linux-01.png differ diff --git a/source/_figures/multi-boot/dual-boot-linux-02.png b/source/_figures/multi-boot/dual-boot-linux-02.png new file mode 100644 index 00000000..dc610221 Binary files /dev/null and b/source/_figures/multi-boot/dual-boot-linux-02.png differ diff --git a/source/_figures/multi-boot/dual-boot-linux-03.png b/source/_figures/multi-boot/dual-boot-linux-03.png new file mode 100644 index 00000000..7120b7d4 Binary files /dev/null and b/source/_figures/multi-boot/dual-boot-linux-03.png differ diff --git a/source/_figures/multi-boot/dual-boot-linux-04.png b/source/_figures/multi-boot/dual-boot-linux-04.png new file mode 100644 index 00000000..6e297d2e Binary files /dev/null and b/source/_figures/multi-boot/dual-boot-linux-04.png differ diff --git a/source/_figures/multi-boot/dual-boot-linux-05.png b/source/_figures/multi-boot/dual-boot-linux-05.png new file mode 100644 index 00000000..262306e1 Binary files /dev/null and b/source/_figures/multi-boot/dual-boot-linux-05.png differ diff --git a/source/_figures/multi-boot/dual-boot-linux-06.png b/source/_figures/multi-boot/dual-boot-linux-06.png new file mode 100644 index 00000000..41e9fbe9 Binary files /dev/null and b/source/_figures/multi-boot/dual-boot-linux-06.png differ diff --git a/source/_figures/multi-boot/dual-boot-linux-07.png b/source/_figures/multi-boot/dual-boot-linux-07.png new file mode 100644 index 00000000..6e541be8 Binary files /dev/null and b/source/_figures/multi-boot/dual-boot-linux-07.png differ diff --git a/source/_figures/multi-boot/dual-boot-linux-08.png b/source/_figures/multi-boot/dual-boot-linux-08.png new file mode 100644 index 00000000..776feacf Binary files /dev/null and b/source/_figures/multi-boot/dual-boot-linux-08.png differ diff --git a/source/_figures/multi-boot/dual-boot-linux-09.png b/source/_figures/multi-boot/dual-boot-linux-09.png new file mode 100644 index 00000000..f3e0bef3 Binary files /dev/null and b/source/_figures/multi-boot/dual-boot-linux-09.png differ diff --git a/source/_figures/multi-boot/dual-boot-linux-10.png b/source/_figures/multi-boot/dual-boot-linux-10.png new file mode 100644 index 00000000..7a7e142c Binary files /dev/null and b/source/_figures/multi-boot/dual-boot-linux-10.png differ diff --git a/source/_figures/multi-boot/dual-boot-linux-11.png b/source/_figures/multi-boot/dual-boot-linux-11.png new file mode 100644 index 00000000..040d0fe5 Binary files /dev/null and b/source/_figures/multi-boot/dual-boot-linux-11.png differ diff --git a/source/_figures/multi-boot/dual-boot-linux-12.png b/source/_figures/multi-boot/dual-boot-linux-12.png new file mode 100644 index 00000000..2a26e29d Binary files /dev/null and b/source/_figures/multi-boot/dual-boot-linux-12.png differ diff --git a/source/get-started/bare-metal-install-desktop.rst b/source/get-started/bare-metal-install-desktop.rst index bef2ae3f..5ede7c13 100644 --- a/source/get-started/bare-metal-install-desktop.rst +++ b/source/get-started/bare-metal-install-desktop.rst @@ -19,6 +19,8 @@ installation: * :ref:`system-requirements` * :ref:`compatibility-check` +.. _preliminary-steps-install-desktop: + Preliminary steps ***************** @@ -56,6 +58,8 @@ these steps. #. Reboot the target system. +.. _preliminary-steps-install-desktop-end: + #. Select :guilabel:`Clear Linux OS` in the boot menu, shown in Figure 1. .. figure:: /_figures/bare-metal-install-desktop/bare-metal-install-desktop-01.png diff --git a/source/tutorials/multi-boot/dual-boot-linux.rst b/source/tutorials/multi-boot/dual-boot-linux.rst new file mode 100644 index 00000000..1e522813 --- /dev/null +++ b/source/tutorials/multi-boot/dual-boot-linux.rst @@ -0,0 +1,282 @@ +.. _dual-boot-linux: + +Dual-boot |CL-ATTR| with Another GRUB-based Linux\* Distro +########################################################## + +In this tutorial, we show how to install another GRUB-based Linux\* distro +alongside |CL|. To do so, we resize the existing Linux root partition to +make enough room to install |CL|. Then we configure the |CL| bootloader, +:command:`systemd-boot`, which enables you to dual-boot |CL| and an existing +Linux distro. Although we use Ubuntu\* 19.04 Desktop as the example here, +these instructions also work for other distros such as Mint Linux, Kubuntu\*, Fedora\*, CentOS\*, among others. + +.. contents:: + :local: + :depth: 1 + +Prerequisites +************* + +* Ubuntu 19.04 Desktop is already installed. +* There is no unallocated space available, but there is free space + on the Ubuntu root partition. +* Follow the Preliminary steps that follow below. + +.. include:: ../../get-started/bare-metal-install-desktop.rst + :start-after: preliminary-steps-install-desktop: + :end-before: install-on-target-start: + +Install |CL| with Advanced Installation +*************************************** + +#. Shut down the Ubuntu OS before proceeding. + +#. Boot up the |CL| live desktop image, and click the penguin + icon, at left, to launch the installer. + +#. Complete the :guilabel:`Required Options` until you reach + :guilabel:`Select Installation Media`. See Figure 1. + + .. figure:: ../../_figures/multi-boot/dual-boot-linux-01.png + :scale: 100% + :alt: Required options + + Figure 1: Required options + +#. Click :guilabel: `Select Installation Media`. + +#. Select the “Advanced Installation” option. See Figure 2. + + .. figure:: ../../_figures/multi-boot/dual-boot-linux-02.png + :scale: 100% + :alt: Advanced Installation + + Figure 2: Advanced Installation + +#. Click :guilabel:`Partition Media` to start the GParted tool. + +#. Shrink the Ubuntu root partition to free up some space for |CL|. + + a. Select the Ubuntu root partition (in this example: /dev/sda2). + Right-click it and select “Resize/Move”. See Figure 3. + + .. figure:: ../../_figures/multi-boot/dual-boot-linux-03.png + :scale: 100% + :alt: Ubuntu root partition + + Figure 3: Ubuntu root partition + + #. In the :guilabel:`New size (MiB)` field, reduce the size of the root + partition, leaving at least 22GB free. This allows enough space to + create a swap partition (250MB) and root partition (approx. 21GB) for + |CL|. + + .. note:: + + The resulting free space appears in the “Free space following + (MiB)”. Click the “Resize/Move” button. See Figure 4. + + .. figure:: ../../_figures/multi-boot/dual-boot-linux-04.png + :scale: 100% + :alt: Resize Ubuntu root + + Figure 4: Resize Ubuntu root + + #. Click the green checkmark button to proceed. See Figure 5. + + .. figure:: ../../_figures/multi-boot/dual-boot-linux-05.png + :scale: 100% + :alt: New unallocated space + + Figure 5: New unallocated space + +#. Share the existing EFI system partition by designating as such. + + a. Right-click the :guilabel:`EFI System Partition` (e.g., /dev/sda1) + and select :guilabel:`Name Partition`. + + #. Set the name to “CLR_BOOT”. See Figure 6 and Figure 7. + + .. figure:: ../../_figures/multi-boot/dual-boot-linux-06.png + :scale: 100% + :alt: Name CLR_BOOT partition + + Figure 6: Name CLR_BOOT partition + + .. figure:: ../../_figures/multi-boot/dual-boot-linux-07.png + :scale: 100% + :alt: Resulting CLR_BOOT main screen + + Figure 7: Resulting CLR_BOOT main screen + +#. Create a swap partition for |CL|. + + a. Right-click the “unallocated” partition and select :guilabel:`New` + to add a new partition. + + #. Enter “250” in the :guilabel:`New Size (MiB)` field to create a + 250MB swap space. + + #. Enter “CLR_SWAP” in the :guilabel:`Partition name` field and select + “linux-swap” as the “File system” type. + + #. Click the “Add” button. See Figure 8. + + .. figure:: ../../_figures/multi-boot/dual-boot-linux-08.png + :scale: 100% + :alt: Create CLR_SWAP partition + + Figure 8: Create CLR_SWAP partition + +#. Create |CL| root partition. + + a. Right-click “unallocated” partition again and select :guilabel:`New` + to add a new partition. + + #. Create a partition that is at least 21GB, enter “CLR_ROOT” in the + :guilabel:`Partition name` field, and select a :guilabel:`File system` + type of your choice. + + #. Click the “Add” button. See Figure 9. + + .. figure:: ../../_figures/multi-boot/dual-boot-linux-09.png + :scale: 100% + :alt: Create CLR_ROOT partition + + Figure 9: Create CLR_ROOT partition + +#. Click the green checkmark button to create the newly-defined partitions. + See Figure 10. + + .. figure:: ../../_figures/multi-boot/dual-boot-linux-10.png + :scale: 100% + :alt: Partitions to be created + + Figure 10: Partitions to be created + +#. Close the GParted window, and the |CL| installer will reappear with + the newly-defined partitions to use. See Figure 11. + + .. figure:: ../../_figures/multi-boot/dual-boot-linux-11.png + :scale: 100% + :alt: |CL| installer partitions defined + + Figure 11: |CL| installer partitions defined + +#. Complete the remaining steps of :guilabel:`Required Options` to + to install |CL|. Complete any :guilabel:`Advanced Options` as desired. + +Ways to boot |CL| +***************** + +Although we installed |CL| last, Ubuntu is still the default boot OS. There are several ways to boot |CL|: + +#. Use your BIOS “Boot Menu” to select and boot |CL|. + This is temporary and will not make |CL| the default boot OS. + +#. Make systemd-boot, the boot loader that |CL| uses, the default + boot loader to boot |CL| and chain-boot GRUB; therefore, boot + Ubuntu. Follow the next section to implement this. + +Make systemd-boot Default Bootloader and chain-boot GRUB +******************************************************** + +#. Boot up the |CL| installer image. +#. Open a terminal window. +#. Identify the EFI system partition, Ubuntu root partition, and |CL| root + partition. + + .. code-block:: bash + + sudo fdisk -l + + Example output: + + .. code-block:: console + + clrlinux@clr-live~ $ sudo fdisk -l + ... + + Disk /dev/sda: 335.4 GiB, 360080695296 bytes, 703282608 sectors + Disk model: INTEL SSDSCKKF36 + Units: sectors of 1 * 512 = 512 bytes + Sector size (logical/physical): 512 bytes / 512 bytes + I/O size (minimum/optimal): 512 bytes / 1048576 bytes + Disklabel type: gpt + Disk identifier: D5CB69E9-2C27-4A16-9552-3CD6BFA5DA77 + + Device Start End Sectors Size Type + /dev/sda1 2048 1050623 1048576 512M EFI System + /dev/sda2 1050624 498481151 497430528 237.2G Linux filesystem + /dev/sda3 498481152 498993151 512000 250M Linux swap + /dev/sda4 498993152 703281151 204288000 97.4G Linux root (x86-64) + ... + + The above example output contains these partitions: + + * /dev/sda1 is the EFI system partition originally created by Ubuntu + and shared with |CL| + * /dev/sda2 is the Ubuntu root partition + * /dev/sda3 is the swap partition for |CL| + * /dev/sda4 is the |CL| root partition + + The remaining steps will work with these partitions. + +#. Mount these partitions + + .. code-block:: bash + + sudo mkdir /mnt/clearlinux + sudo mount /dev/sda4 /mnt/clearlinux/ + sudo mount /dev/sda1 /mnt/clearlinux/boot + +#. Make systemd-boot the default bootloader + + .. code-block:: bash + + sudo bootctl install --esp-path=/mnt/clearlinux/boot + +#. Add a timeout to systemd-boot so that it will present the menu of + bootable OSes and give you time to select the one you want to boot. + + .. code-block:: bash + + sudo clr-boot-manager set-timeout 20 --path=/mnt/clearlinux + sudo clr-boot-manager update --path=/mnt/clearlinux + +#. Add a system-boot boot entry for GRUB. + + .. code-block:: bash + + sudo tee -a /mnt/clearlinux/boot/loader/entries/grub.conf << EOF + title GRUB menu + efi /EFI/ubuntu/grubx64.efi + EOF + +#. Umount all partitions. + + .. code-block:: bash + + sudo umount /mnt/clearlinux/boot /mnt/clearlinux + +#. Reboot. + + .. code-block:: bash + + sudo reboot + +#. Remove the |CL| installer USB thumb drive. + +#. You should be presented with the :command:`systemd-boot` menu. + See Figure 12. + + .. figure:: ../../_figures/multi-boot/dual-boot-linux-12.png + :scale: 100% + :alt: systemd-boot menu showing GRUB + + Figure 12: systemd-boot menu showing GRUB + +.. _download the live desktop image: https://clearlinux.org/downloads + +.. _Downloads: https://clearlinux.org/downloads +