Merge branch 'master' of https://github.com/clearlinux/clear-linux-documentation into webserverinstall-edits

This commit is contained in:
deb-intel
2018-05-20 11:22:07 -04:00
8 changed files with 229 additions and 604 deletions
@@ -11,7 +11,6 @@ the configuration, administration, and use of networks in the |CLOSIA|.
ipxe-install
dpdk
ovs-dpdk
network-bonding
custom-clear-container
vnc
@@ -1,354 +0,0 @@
.. _ovs-dpdk:
Enable DPDK support on OpenvSwitch
##################################
Enabling `DPDK`_ support on the `OpenvSwitch`_ project can yield significant
network performance improvements. To illustrate one such example, we'll cover
the simple use case shown on :ref:`figure 1<f1ovs>`, where one virtual
machine sends 1,000,000 HTTP requests to another virtual machine. The
connection between both VMs will be through a virtual bridge created by
different tools:
- Linux bridges.
- OpenvSwitch bridges.
- Custom-built of OpenvSwitch-DPDK bridges.
.. _f1ovs:
.. figure:: ./figures/use-case.png
Figure 1: Basic virtual network environment.
Requirements
============
#. The recommended release for this example is greater or equal to 13360,
it is possible to update the system with this command.
.. code-block:: bash
# swupd update
#. Install the following bundles: network-basic, kvm-host.
.. code-block:: bash
# swupd bundle-add network-basic
# swupd bundle-add kvm-host
#. Download a clear linux image and OVMF.fd file, this image will be used as
the guest VMs in the `Clear Linux downloads`_.
Using Linux Bridges
===================
#. Create a script named :file:`qemu-ifup` for a Linux bridge in a virtual
machine.
.. code-block:: bash
#!/bin/bash
set -x
switch=br0
if [ -n "$1" ];then
# tunctl -u `whoami` -t $1 (use ip tuntap instead!)
ip tuntap add $1 mode tap user `whoami`
ip link set $1 up
sleep 0.5s
brctl addif $switch $1
exit 0;
else
echo "Error: no interface specified"
exit 1
fi
#. Enable execute permission on the script, preserving its group permissions
with respect to other files.
.. code-block:: bash
# chmod a+x qemu-ifup
#. Create a bridge using the :command:`brctl` tool; you can verify whether
the bridge was successfully created by using ip tool.
.. code-block:: bash
# brctl addbr br0
.. note::
At this point, it is possible to add a NIC with
``brctl addif br0 <network interface>``, example:
.. code-block:: bash
# brctl addif br0 enp3s0f0
#. Set up the Linux bridge.
.. code-block:: bash
# ip link set dev br0 up
#. Run guest virtual machine A using the next configuration as reference,
where the **$IMAGE** var is the Clear Linux image name.
.. code-block:: bash
$ qemu-system-x86_64 \
-enable-kvm -m 1024 \
-bios OVMF.fd \
-smp cpus=2,cores=1 -cpu host \
-vga none -nographic \
-drive file="$IMAGE",if=virtio,aio=threads \
-net nic,macaddr=00:11:22:33:44:55,model=virtio -net tap,script=qemu-ifup \
-debugcon file:debug.log -global isa-debugcon.iobase=0x402
#. Run guest virtual machine B using the configuration from the previous
step; take care to update the MAC address.
#. Follow the instructions from the `Setting IP Address`_ section.
#. Alternatively, clean the previous environment, turn off the virtual
machines, and delete the bridge.
.. code-block:: bash
# ip link set dev br0 down
# brctl delbr br0
Using OpenvSwitch
=================
#. Start the OpenvSwitch service.
.. code-block:: bash
# systemctl start openvswitch.service
#. Create a bridge using the OpenvSwitch tool; you can verify whether or not
the bridge was successfully created by running ip tool.
.. code-block:: bash
# ovs-vsctl add-br br0
# ip a
#. Create an ``UP`` script named :file:`ovs-ifup` which can bring up the tap
devices.
.. code-block:: bash
#!/bin/sh
switch="br0"
/usr/bin/ifconfig $1 0.0.0.0 up
ovs-vsctl add-port ${switch} $1
#. Create a ``DOWN`` script named :file:`ovs-ifdown` which can bring up the
tap devices.
.. code-block:: bash
#!/bin/sh
switch="br0"
/usr/bin/ifconfig $1 0.0.0.0 down
ovs-vsctl del-port ${switch} $1
#. Enable execute permission on the scripts, preserving their group
permissions with respect to other files.
.. code-block:: bash
# chmod a+x ovs-ifdown
# chmod a+x ovs-ifup
#. Run guest virtual machine A using the next configuration as reference,
where **$IMAGE** var is the name of the Clear Linux\* OS for Intel
Architecture image. Notice the network configuration uses the up-down
scripts.
.. code-block:: bash
$ qemu-system-x86_64 \
-enable-kvm -m 1024 \
-bios OVMF.fd \
-smp cpus=2,cores=1 -cpu host \
-vga none -nographic \
-drive file="$IMAGE",if=virtio,aio=threads \
-net nic,model=virtio,macaddr=00:11:22:33:44:55 -net tap,script=ovs-ifup,downscript=ovs-ifdown \
-debugcon file:debug.log -global isa-debugcon.iobase=0x402
#. Run guest virtual machine B using the configuration from step 5, only
it's necessary to change the MAC address to something like *00:11:22:33:44:56*
#. Follow the instructions in the `Setting IP address`_ section.
#. Alternatively, clean the previous environment, turn off the virtual
machines, and delete the bridge.
.. code-block:: bash
# ovs-vsctl del-br br0
# ovs-vsctl show
Using Linux OpenvSwitch-DPDK
============================
#. Enable VT-d technology in the BIOS.
#. Enable VT-d in the host kernel command line, to enable VT-d in the host
kernel command line, the
:file:`clear-linux-native-{current-kernel-version}.conf`
file must be edited. Add ``iommu=pt intel_iommu=on`` to
the end of the line. The file is found within the UEFI boot partition.
.. code-block:: bash
# systemctl start boot.mount
# cd /boot/loader/entries/
#. Unmount the UEFI partition and reboot the machine.
.. code-block:: bash
# cd /
# systemctl stop boot.mount
# reboot
#. Set number of hugepages.
.. code-block:: bash
# echo 1024 > /sys/kernel/mm/hugepages/hugepages-2048kB/nr_hugepages
#. Allocate pages on NUMA machines.
.. code-block:: bash
# echo 1024 > /sys/devices/system/node/node0/hugepages/hugepages-2048kB/nr_hugepages
# echo 1024 > /sys/devices/system/node/node1/hugepages/hugepages-2048kB/nr_hugepages
#. Make memory available for the DPDK.
.. code-block:: bash
# mkdir -p /mnt/huge
# mount -t hugetlbfs nodev /mnt/huge
#. Download a clear linux image and OVMF.fd file, this image will be used as
the guest VMs in the `Clear Linux downloads`_.
#. Start the OpenvSwitch service.
.. code-block:: bash
# systemctl start openvswitch
#. OpenvSwitch must be configured to enable the DPDK functionality like core
mask, socket memory, and others. This example reproduces the environment
shown in figure 1.0. The `OpenvSwitch documentation`_ provides additional
information about DPDK configuration.
.. code-block:: bash
# ovs-vsctl --no-wait init
# ovs-vsctl --no-wait set Open_vSwitch . other_config:dpdk-lcore-mask=0x2
# ovs-vsctl --no-wait set Open_vSwitch . other_config:dpdk-socket-mem=2048
# ovs-vsctl --no-wait set Open_vSwitch . other_config:dpdk-init=true
#. Restart the OpenvSwitch service in order to update the new DPDK
configuration.
.. code-block:: bash
# systemctl restart openvswitch
#. Create a virtual bridge using openvswitch.
.. code-block:: bash
# ovs-vsctl add-br br0 -- set bridge br0 datapath_type=netdev
#. Add the vhost-dpdk ports to the bridge.
.. code-block:: bash
# ovs-vsctl add-port br0 vhost-user1 -- set Interface vhost-user1 type=dpdkvhostuser
# ovs-vsctl add-port br0 vhost-user2 -- set Interface vhost-user2 type=dpdkvhostuser
#. Run guest virtual machine A using the next configuration as reference,
where **$IMAGE** var is the name of the Clear Linux\* OS for Intel
Architecture image.
.. code-block:: bash
$ qemu-system-x86_64 \
-enable-kvm -m 1024 \
-bios OVMF.fd \
-smp 4 -cpu host \
-vga none -nographic \
-drive file="$IMAGE",if=virtio,aio=threads \
-chardev socket,id=char1,path=/run/openvswitch/vhost-user1 \
-netdev type=vhost-user,id=mynet1,chardev=char1,vhostforce \
-device virtio-net-pci,mac=00:00:00:00:00:01,netdev=mynet1 \
-object memory-backend-file,id=mem,size=1024M,mem-path=/dev/ hugepages,share=on \
-numa node,memdev=mem -mem-prealloc \
-debugcon file:debug.log -global isa-debugcon.iobase=0x402
#. Run guest virtual machine B, use the configuration from the previous step;
simply change the MAC address and the port socket. You can use
00:00:00:00:00:02 as a MAC address and vhost-user2 as a socket.
#. Follow the instructions from the `Setting IP address`_ section.
.. _Setting IP address:
Setting IP address
==================
#. Set an IP address to virtual machine for virtual machine A:
.. code-block:: bash
# ip addr add dev enp0s2 10.0.0.5/24
for virtual machine B:
.. code-block:: bash
# ip addr add dev enp0s2 10.0.0.6/24
#. Check if there is communication between both virtual machines using ping
tool.
#. Verify that Apache service is running:
.. code-block:: bash
# systemctl status httpd.service
# systemctl start httpd.service
Start httpd service only if it is inactive. Use apache benchmark to get
information about the network performance between both virtual machines.
.. code-block:: bash
# ab -n 1000000 -c 100 http://10.0.0.6/
.. _DPDK: http://dpdk.org/
.. _kvm: https://download.clearlinux.org/releases/
.. _Clear Linux downloads: https://download.clearlinux.org/image/
.. _OpenvSwitch: http://openvswitch.org/
.. _OpenvSwitch documentation: http://docs.openvswitch.org/en/latest/
@@ -1,7 +1,10 @@
.. _multi-boot-mint:
Install Mint\* 18.1 Serena MATE
*********************************
Install Linux Mint\* 18.1 *Serena* MATE
#######################################
This guide describes Linux Mint-specific details of the :ref:`multi-boot`
tutorial.
#. Start the Mint installer and follow the prompts.
@@ -10,7 +13,7 @@ Install Mint\* 18.1 “Serena” MATE
.. figure:: figures/multi-boot-mint-1.png
Figure 1: Mint: Installation type
Figure 1: Mint: Installation type.
#. Create a new root partition.
@@ -19,7 +22,7 @@ Install Mint\* 18.1 “Serena” MATE
.. figure:: figures/multi-boot-mint-2.png
Figure 2: Mint: Add partition
Figure 2: Mint: Add partition.
#. Click the :guilabel:`+` button.
@@ -28,7 +31,7 @@ Install Mint\* 18.1 “Serena” MATE
.. figure:: figures/multi-boot-mint-3.png
Figure 3: Mint: Configure new partition settings
Figure 3: Mint: Configure new partition settings.
#. Set :guilabel:`Use as` to :guilabel:`Ext4 journaling file system`.
@@ -36,10 +39,9 @@ Install Mint\* 18.1 “Serena” MATE
#. Click :guilabel:`OK`.
#. Share the same swap partition created by |CL| with the following
steps.
#. Share the swap partition created by |CL|.
#. Under :guilabel:`Device` column, select :file:`/dev/sda2`.
#. Under the :guilabel:`Device` column, select :file:`/dev/sda2`.
#. Click :guilabel:`Change`.
@@ -47,11 +49,11 @@ Install Mint\* 18.1 “Serena” MATE
.. figure:: figures/multi-boot-mint-4.png
Figure 4: Mint: Set swap partition
Figure 4: Mint: Set swap partition.
#. Follow the remaining prompts to complete the installation of Mint.
#. Follow the remaining prompts to complete the Mint installation.
#. At this point, the ability to boot |CL| is lost because `Grub`
#. At this point, you cannot boot |CL| because `Grub`
is the default boot loader. Follow these steps to make the |CL|
Systemd-Boot the default boot loader and add Mint as a boot option.
@@ -59,32 +61,26 @@ Install Mint\* 18.1 “Serena” MATE
#. Log in.
#. Get root permissions.
.. code-block:: console
$ sudo -s
#. Locate the Mint :file:`grub.cfg` file in the :file:`/boot/grub/` and
look for the :guilabel:`menuentry` section. The highlighted lines
identify the kernel, the :file:`initrd` files, the root partition UUID,
and the additional parameters used. Use this information to create a
new Systemd-Boot entry for Mint. See Figure 5.
#. Locate the Mint :file:`grub.cfg` file in the :file:`/boot/grub/`
directory and look for the :guilabel:`menuentry` section. In Figure 5, the
highlighted lines identify the kernel, the :file:`initrd` files, the root
partition UUID, and the additional parameters used. Use this information
to create a new Systemd-Boot entry for Mint.
.. figure:: figures/multi-boot-mint-5.png
Figure 5: Mint: grub.cfg
Figure 5: Mint: grub.cfg file.
#. Copy the kernel and :file:`initrd` to the EFI partition.
#. Copy the kernel and :file:`initrd` file to the EFI partition.
.. code-block:: console
.. code-block:: bash
# cp /boot/vmlinuz-4.4.0-53-generic /boot/efi
sudo cp /boot/vmlinuz-4.4.0-53-generic /boot/efi
# cp /boot/initrd.img-4.4.0-53-generic /boot/efi
sudo cp /boot/initrd.img-4.4.0-53-generic /boot/efi
#. Create a boot entry for Mint. The file must contain at least these
settings:
#. Create a boot entry for Mint. At a minimum, the file must contain
these settings:
+---------+------------------------------------+
| Setting | Description |
@@ -107,11 +103,9 @@ Install Mint\* 18.1 “Serena” MATE
.. note:: The root partition UUID used below is unique to this example.
.. code-block:: console
.. code-block:: bash
# cd /boot/efi/loader/entries
# vi mint.conf
sudoedit /boot/efi/loader/entries/mint.conf
Add the following lines to the :file:`mint.conf` file:
@@ -127,18 +121,19 @@ Install Mint\* 18.1 “Serena” MATE
#. Re-install Systemd-Boot to make it the default boot loader.
.. code-block:: console
.. code-block:: bash
# bootctl install --path /boot/efi
sudo bootctl install --path /boot/efi
.. note::
If an older version of Mint does not have the `bootctl` command,
skip this step and see :ref:`multi-boot-restore-bl` to restore the Clear
Linux Systemd-Boot boot loader.
skip this step and see :ref:`multi-boot-restore-bl` to restore
Systemd-Boot.
#. Reboot.
If you want to install other OSes, refer to :ref:`multi-boot` for details.
If you want to install other :abbr:`OSes (operating systems)`, refer to
:ref:`multi-boot` for details.
.. _systemd boot loader documentation:
@@ -1,11 +1,12 @@
.. _multi-boot-restore-bl:
Restore the Clear Linux boot loader
***********************************
###################################
The installation of a new operating system or an upgrade of an existing
operating system can result in making the |CL| Systemd-Boot no
longer the default boot loader. To restore it, follow the steps below.
This guide is part of the :ref:`multi-boot` tutorial. If you install a new
:abbr:`OS (operating system)` or upgrade an existing OS, the default boot
loader may change from |CL| Systemd-Boot. This guide describes how to restore
Systemd-Boot.
#. Boot the |CL| installer from a USB thumb drive. See :ref:`bootable-usb`.
@@ -14,43 +15,44 @@ longer the default boot loader. To restore it, follow the steps below.
.. figure:: figures/multi-boot-restore-bl-1.png
Figure 1: |CL|: Console
Figure 1: |CL|: Console.
#. Log in as *root*.
.. note::
Logging in for the first time as *root* through the console requires
setting a new password.
When you log in for the first time as *root* through the console, you must
set a new password.
#. Find the location of the |CL| EFI partition, in this example it is
#. Find the location of the |CL| EFI partition. In this example, it is
:file:`/dev/sda3`. See Figure 2.
.. code-block:: console
.. code-block:: bash
# fdisk l
fdisk -l
.. figure:: figures/multi-boot-restore-bl-2.png
Figure 2: |CL| - fdisk -l
Figure 2: |CL|: fdisk -l command.
#. Mount the EFI partition.
.. code-block:: console
.. code-block:: bash
# mount /dev/sda3 /mnt
mount /dev/sda3 /mnt
#. Re-install Systemd-Boot to make it the default boot loader.
.. code-block:: console
.. code-block:: bash
# bootctl install --path /mnt
bootctl install --path /mnt
#. Unmount the EFI partition.
.. code-block:: console
.. code-block:: bash
# umount /mnt
umount /mnt
#. Reboot.
If you want to install other OSes, refer to :ref:`multi-boot` for details.
If you want to install other :abbr:`OSes (operating systems)`, refer to
:ref:`multi-boot` for details.
@@ -1,7 +1,10 @@
.. _multi-boot-rhel:
Install Red Hat\* Enterprise Linux 7.4 Beta
*******************************************
###########################################
This guide describes Red Hat-specific details of the :ref:`multi-boot`
tutorial.
#. Start the Red Hat installer and follow the prompts.
@@ -10,27 +13,28 @@ Install Red Hat\* Enterprise Linux 7.4 Beta
.. figure:: figures/multi-boot-rhel-1.png
Figure 1: Red Hat: Installation summary
Figure 1: Red Hat: Installation summary.
#. In the :guilabel:`Device Selection` section, select a drive on which to
install the OS. See Figure 2.
.. figure:: figures/multi-boot-rhel-2.png
Figure 2: Red Hat: Installation destination
Figure 2: Red Hat: Installation destination.
#. Under the :guilabel:`Other Storage Options` section, choose
:guilabel:`I will configure partitioning`. See Figure 2.
#. Click :guilabel:`Done`.
#. Under :menuselection:`New Red Hat Enterprise Linux 7.4 Installation --> New mount points will use the following partitioning scheme` section,
#. Under the :menuselection:`New Red Hat Enterprise Linux 7.4 Installation
--> New mount points will use the following partitioning scheme` section,
select :menuselection:`Standard Partition` from the drop down list. See
Figure 3.
.. figure:: figures/multi-boot-rhel-3.png
Figure 3: Red Hat: New partition scheme
Figure 3: Red Hat: New partition scheme.
#. Create a new root partition.
@@ -41,7 +45,7 @@ Install Red Hat\* Enterprise Linux 7.4 Beta
.. figure:: figures/multi-boot-rhel-4.png
Figure 4: Red Hat: Create new root partition
Figure 4: Red Hat: Create new root partition.
#. Click :guilabel:`Add mount point`.
@@ -57,7 +61,7 @@ Install Red Hat\* Enterprise Linux 7.4 Beta
.. figure:: figures/multi-boot-rhel-5.png
Figure 5: Red Hat: Configure swap partition
Figure 5: Red Hat: Configure swap partition.
#. Share the EFI partition that was created by |CL|. See Figure 6.
@@ -71,46 +75,40 @@ Install Red Hat\* Enterprise Linux 7.4 Beta
.. figure:: figures/multi-boot-rhel-6.png
Figure 6: Red Hat: Configure EFI partition
Figure 6: Red Hat: Configure EFI partition.
#. Click :guilabel:`Done`.
#. Follow the remaining prompts to complete the installation of Red Hat.
#. Follow the remaining prompts to complete the Red Hat installation.
#. At this point, the ability to boot |CL| is lost because `Grub`
was set as the default boot loader. Follow these steps to make the |CL|
Systemd-Boot the default boot loader and add Red Hat as a boot option:
#. At this point, you cannot boot |CL| because `Grub` is the default boot
loader. Follow these steps to make the |CL| Systemd-Boot the default boot
loader and add Red Hat as a boot option:
#. Boot into Red Hat.
#. Log in.
#. Get root privilege with the following command:
.. code-block:: console
$ sudo -s
#. Locate Fedoras :file:`grub.cfg` file at the
#. Locate the Red Hat :file:`grub.cfg` file in the
:file:`/boot/efi/EFI/redhat/` directory and look for the primary Red
Hat :guilabel:`menuentry` section. The highlighted lines identify
the kernel and `initrd` filenames, root partition UUID, and
additional parameters used. This information is used to create a
new Systemd-Boot entry for Red Hat. See Figure 7.
Hat :guilabel:`menuentry` section. In Figure 7, the highlighted lines
identify the kernel and `initrd` filenames, root partition UUID, and
additional parameters used. Use this information to create a
new Systemd-Boot entry for Red Hat.
.. figure:: figures/multi-boot-rhel-7.png
Figure 7: Red Hat: grub.cfg
Figure 7: Red Hat: grub.cfg file.
#. Copy the kernel and `initrd` to the EFI partition.
#. Copy the kernel and :file:`initrd` file to the EFI partition.
.. code-block:: console
.. code-block:: bash
# cp /boot/vmlinuz-3.10.0-663.el7.x86_64 /boot/efi
sudo cp /boot/vmlinuz-3.10.0-663.el7.x86_64 /boot/efi
# cp /boot/initramfs-3.10.0-663.el7.x86_64.img /boot/efi
sudo cp /boot/initramfs-3.10.0-663.el7.x86_64.img /boot/efi
#. Create a boot entry for Red Hat. The file must, at a minimum, contain
#. Create a boot entry for Red Hat. At a minimum, the file must contain
these settings:
+---------+---------------------------------------------------+
@@ -134,24 +132,22 @@ Install Red Hat\* Enterprise Linux 7.4 Beta
.. note:: The root partition UUID used below is unique to this example.
.. code-block:: console
.. code-block:: bash
# cd /boot/efi/loader/entries
sudoedit /boot/efi/loader/entries/redhat.conf
# vi redhat.conf
Add the following lines to :file:`redhat.conf`
Add the following lines to the :file:`redhat.conf` file:
.. code-block:: console
title Red Hat Enterprise Linux 7.4 Beta
linux /vmlinuz-3.10.0-663.el7.x86\_64
linux /vmlinuz-3.10.0-663.el7.x86_64
initrd /initramfs-3.10.0-663.el7.x86\_64.img
initrd /initramfs-3.10.0-663.el7.x86_64.img
options root=UUID=30655c74-6cc1-4c55-8fcc-ac8bddcea4db ro
crashkernel=auto rhgb LANG=en\_US.UTF-8
crashkernel=auto rhgb LANG=en_US.UTF-8
#. Re-install Systemd-Boot to make it the default boot loader.
@@ -161,7 +157,8 @@ Install Red Hat\* Enterprise Linux 7.4 Beta
#. Reboot.
If you want to install other OSes, refer to :ref:`multi-boot` for details.
If you want to install other :abbr:`OSes (operating systems)`, refer to
:ref:`multi-boot` for details.
.. _systemd boot loader documentation:
@@ -1,7 +1,10 @@
.. _multi-boot-sles:
Install SUSE\* Linux Enterprise 12 SP2
**************************************
Install SUSE\* Linux Enterprise Server 12 SP2
#############################################
This guide describes SUSE-specific details of the :ref:`multi-boot`
tutorial.
#. Start the SUSE installer and follow the prompts.
@@ -10,14 +13,14 @@ Install SUSE\* Linux Enterprise 12 SP2
.. figure:: figures/multi-boot-sles-1.png
Figure 1: SUSE: Suggested partitioning
Figure 1: SUSE: Suggested partitioning.
**Optional:** Under :guilabel:`Available Storage on Linux` section,
right-click the SUSE :file:`/home` partition and delete it. In this example, it is :file:`/dev/sda8`. See Figure 2.
.. figure:: figures/multi-boot-sles-2.png
Figure 2: SUSE: Delete /home partition
Figure 2: SUSE: Delete /home partition.
#. Under :guilabel:`Available Storage on Linux` section, right-click the SUSE
root partition and resize it. In this example, :file:`/dev/sda7` is
@@ -25,13 +28,13 @@ Install SUSE\* Linux Enterprise 12 SP2
.. figure:: figures/multi-boot-sles-3.png
Figure 3: SUSE: Resize root partition
Figure 3: SUSE: Resize root partition.
#. Click :guilabel:`Accept`.
#. Follow the remaining prompts to complete the installation of SUSE.
#. Follow the remaining prompts to complete the SUSE installation.
#. At this point, |CL| cannot boot because `Grub`
#. At this point, you cannot boot |CL| because `Grub`
is the default boot loader. Follow these steps to make the |CL|
Systemd-Boot the default boot loader and add SUSE as a boot option:
@@ -39,32 +42,26 @@ Install SUSE\* Linux Enterprise 12 SP2
#. Log in.
#. Get root privileges with the following command:
.. code-block:: console
$ sudo -s
#. Locate SUSEs :file:`grub.cfg` in the :file:`/boot/grub2/` directory
and look for the primary SUSE :guilabel:`menuentry` section. The
highlighted lines identify the kernel, the :file:`initrd` filenames,
the root partition UUID, and the additional parameters used. Use this
information to create a new Systemd-Boot entry. See Figure 4.
#. Locate the SUSE :file:`grub.cfg` file in the :file:`/boot/grub2/` directory
and look for the primary SUSE :guilabel:`menuentry` section. In Figure 4, the
highlighted lines identify the kernel, the :file:`initrd` filenames, the
root partition UUID, and the additional parameters used. Use this information
to create a new Systemd-Boot entry for SUSE.
.. figure:: figures/multi-boot-sles-4.png
Figure 4: SUSE: grub.cfg
Figure 4: SUSE: grub.cfg file.
#. Copy the kernel and the :file:`initrd` file to the EFI partition.
.. code-block:: console
.. code-block:: bash
# cp /boot/vmlinuz-4.4.21-69-default /boot/efi
sudo cp /boot/vmlinuz-4.4.21-69-default /boot/efi
# cp /boot/initrd-4.4.21-69-default /boot/efi
sudo cp /boot/initrd-4.4.21-69-default /boot/efi
#. Create a boot entry for SUSE. The file must at least contain these
settings:
#. Create a boot entry for SUSE. At a minimum, the file must contain
these settings:
+---------+---------------------------------------+
| Setting | Description |
@@ -87,11 +84,9 @@ Install SUSE\* Linux Enterprise 12 SP2
.. note:: The root partition UUID used below is unique to this example.
.. code-block:: console
.. code-block:: bash
# cd /boot/efi/loader/entries
# vi suse.conf
sudoedit /boot/efi/loader/entries/suse.conf
Add the following lines to the :file:`suse.conf` file:
@@ -110,18 +105,19 @@ Install SUSE\* Linux Enterprise 12 SP2
#. Re-install Systemd-Boot to make it the default boot loader.
.. code-block:: console
.. code-block:: bash
# bootctl install --path /boot/efi
sudo bootctl install --path /boot/efi
.. note::
If an older version of SUSE does not have the `bootctl` command,
skip this step and see :ref:`multi-boot-restore-bl` to restore the |CL|
Systemd-Boot boot loader.
skip this step and see :ref:`multi-boot-restore-bl` to restore
Systemd-Boot.
#. Reboot.
If you want to install other OSes, refer to :ref:`multi-boot` for details.
If you want to install other :abbr:`OSes (operating systems)`, refer to
:ref:`multi-boot` for details.
.. _systemd boot loader documentation:
@@ -1,7 +1,10 @@
.. _multi-boot-ubuntu:
Install Ubuntu\* 16.04 LTS Desktop
**********************************
##################################
This guide describes Ubuntu-specific details of the :ref:`multi-boot`
tutorial.
#. Start the Ubuntu installer and follow the prompts.
@@ -10,7 +13,7 @@ Install Ubuntu\* 16.04 LTS Desktop
.. figure:: figures/multi-boot-ubuntu-1.png
Figure 1: Ubuntu: Installation type
Figure 1: Ubuntu: Installation type.
#. Create a new root partition.
@@ -19,7 +22,7 @@ Install Ubuntu\* 16.04 LTS Desktop
.. figure:: figures/multi-boot-ubuntu-2.png
Figure 2: Ubuntu: Add partition
Figure 2: Ubuntu: Add partition.
#. Click the :guilabel:`+` button on the lower left corner.
@@ -28,7 +31,7 @@ Install Ubuntu\* 16.04 LTS Desktop
.. figure:: figures/multi-boot-ubuntu-3.png
Figure 3: Ubuntu: Configure new root partition
Figure 3: Ubuntu: Configure new root partition.
#. Set :guilabel:`Use as` to :guilabel:`Ext4 journaling file system`.
@@ -39,54 +42,48 @@ Install Ubuntu\* 16.04 LTS Desktop
#. Under the :guilabel:`Format?` column, select the new partition to be
formatted, in this example :file:`/dev/sda8`.
#. Share the same swap partition created by |CL|.
#. Share the swap partition that was created by |CL|.
#. Under the :guilabel:`Device` column, select :file:`/dev/sda2`.
#. Click :guilabel:`Change`.
#. Confirm :guilabel:`Use as` is set to :guilabel:`Swap area`. See Figure 4.
#. Confirm :guilabel:`Use as` is set to :guilabel:`swap area`. See Figure 4.
.. figure:: figures/multi-boot-ubuntu-4.png
Figure 4: Ubuntu - Set swap partition
Figure 4: Ubuntu: Set swap partition.
#. Follow the remaining prompts to complete the installation of Ubuntu.
#. Follow the remaining prompts to complete the Ubuntu installation.
#. At this point, the ability to boot |CL| is lost because `Grub`
#. At this point, you cannot boot |CL| because `Grub`
is the default boot loader. Follow these steps to make the |CL|
Systemd-Boot the default boot loader and add Ubuntu as a boot option.
Systemd-Boot the default boot loader and add Ubuntu as a boot option:
#. Boot into Ubuntu.
#. Log in.
#. Get root permissions.
.. code-block:: console
$ sudo -s
#. Locate the Ubuntu :file:`grub.cfg` file in the :file:`/boot/grub/`
directory and look for the :guilabel:`menuentry` section. The
directory and look for the :guilabel:`menuentry` section. In Figure 5, the
highlighted lines identify the kernel, the :file:`initrd` files, the
root partition UUID, and the additional parameters used. Use this
information to create a new Systemd-Boot entry for Ubuntu. See Figure 5.
information to create a new Systemd-Boot entry for Ubuntu.
.. figure:: figures/multi-boot-ubuntu-5.png
Figure 5: Ubuntu: grub.cfg
Figure 5: Ubuntu: grub.cfg file.
#. Copy the kernel and :file:`initrd` to the EFI partition.
#. Copy the kernel and the :file:`initrd` file to the EFI partition.
.. code-block:: console
.. code-block:: bash
# cp /boot/vmlinuz-4.8.0-36-generic.efi.signed /boot/efi
sudo cp /boot/vmlinuz-4.8.0-36-generic.efi.signed /boot/efi
# cp /boot/initrd.img-4.8.0-36-generic /boot/efi
sudo cp /boot/initrd.img-4.8.0-36-generic /boot/efi
#. Create a boot entry for Ubuntu. The file must contain at least these
settings:
#. Create a boot entry for Ubuntu. At a minimum, the file must contain
these settings:
+---------+------------------------------------+
| Setting | Description |
@@ -109,11 +106,9 @@ Install Ubuntu\* 16.04 LTS Desktop
.. note:: The root partition UUID used below is unique to this example.
.. code-block:: console
.. code-block:: bash
# cd /boot/efi/loader/entries
# vi ubuntu.conf
sudoedit /boot/efi/loader/entries/ubuntu.conf
Add the following lines to the :file:`ubuntu.conf` file:
@@ -129,19 +124,19 @@ Install Ubuntu\* 16.04 LTS Desktop
#. Re-install Systemd-Boot to make it the default boot loader.
.. code-block:: console
.. code-block:: bash
# bootctl install --path /boot/efi
sudo bootctl install --path /boot/efi
.. note::
If an older version of Ubuntu does not have the `bootctl` command,
skip this step and see :ref:`multi-boot-restore-bl` to restore the |CL|
Systemd-Boot boot loader.
skip this step and see :ref:`multi-boot-restore-bl` to restore
Systemd-Boot.
#. Reboot.
If you want to install other OSes, refer to :ref:`multi-boot` for details.
If you want to install other :abbr:`OSes (operating systems)`, refer to
:ref:`multi-boot` for details.
.. _systemd boot loader documentation:
https://wiki.archlinux.org/index.php/Systemd-boot
@@ -3,19 +3,19 @@
Multi-boot Clear Linux with other operating systems
###################################################
Starting with version 16140, |CLOSIA| uses the Systemd-Boot boot loader,
which does not support multi-booting without manual manipulation. This
document shows how to modify the boot loader for |CL| to work with other
operating systems.
|CLOSIA| uses the Systemd-Boot boot loader, which does not support multi-
booting without manual manipulation. This tutorial shows how to configure the
|CL| boot loader to work with other :abbr:`OSes (operating systems)`.
Process overview
****************
The general process to install other operating systems for a
multi-booting computer is as follows:
The process to install other operating systems for a multi-booting computer is
described below. Install |CL| first, then install other operating systems in
any order.
#. Install |CL| first with a EFI partition large enough to store the kernels
of other operating systems and their initrds in the case of Linux\*
of other operating systems and their initrds, in the case of Linux
distributions.
#. Install the next operating system without creating its own EFI
@@ -31,12 +31,18 @@ multi-booting computer is as follows:
#. Make Systemd-Boot the default boot loader.
#. Repeat the previous steps for each additional operating system. Always
install |CL| first. Install other operating systems in any order.
#. Repeat the previous steps to install each additional operating system.
.. note::
This process is not guaranteed to work with all Linux distributions and
all their versions.
If you update any installed operating systems, be aware that:
* The default boot loader may change from |CL| Systemd-Boot. Perform the
steps in :ref:`multi-boot-restore-bl`.
* Linux kernels or `initrd` images may change. Keep their corresponding Systemd-Boot
:file:`/boot/efi/loader/entries/*.conf` files up-to-date.
This process is not guaranteed to work with all Linux distributions and all
their versions. The next section lists the OSes that we tested.
Tested operating systems
@@ -49,42 +55,36 @@ installation of the tested operating systems.
.. csv-table:: Table 1: OS specific installation information
:header: # , OS, Version, Partition Size [1], Swap Size [2], EFI Partition Size [3], Download Link
1,Clear Linux,16140,50GB,8GB,1GB,https://download.clearlinux.org/image/clear-15870-installer.img.xz
2,Windows ,Server 2016,50GB,N/A,Shared with #1,From Microsoft
3,RedHat,Server 7.4 Beta,45GB,Shared with #1,Shared with #1,From RedHat
4,SUSE,Server 12 SP2,45GB,Shared with #1,Shared with #1,From SUSE
5,Ubuntu,16.04.02 LTS Desktop,40GB,Shared with #1,Shared with #1,https://www.ubuntu.com/download/desktop
6,Mint,18.1 ?Serena? MATE,40GB,Shared with #1,Shared with #1,https://linuxmint.com/edition.php?id=228
1,Clear Linux,16140,50 GB,8 GB,1 GB,https://download.clearlinux.org/releases/16140/clear/
2,Windows,Server 2016,50 GB,N/A,Shared with #1,https://www.microsoft.com/en-us/cloud-platform/windows-server
3,Red Hat\*,Server 7.4 Beta,45 GB,Shared with #1,Shared with #1,https://access.redhat.com/downloads/
4,SUSE\*,Server 12 SP2,45 GB,Shared with #1,Shared with #1,https://www.suse.com/download-linux/
5,Ubuntu\*,16.04.02 LTS Desktop,40 GB,Shared with #1,Shared with #1,https://www.ubuntu.com/download/desktop
6,Linux Mint\*,18.1 *Serena* MATE,40 GB,Shared with #1,Shared with #1,https://linuxmint.com/edition.php?id=228
Table notes:
.. [#] Configure the partition size as desired.
.. [#] To save disk space, a single swap partition can be shared among
.. [#] To save disk space, share a single swap partition between
multiple Linux installations. Swap size was determined using these
`recommended swap partition sizes`_.
.. [#] This partition will hold the |CL| and other operating
systems kernel and boot information. The partition size is dependent on
the number of operating systems that will be installed. In general,
allocate about 100MB per operating system. For this demonstration, we used
1GB.
.. [#] The EFI partition holds the kernel and boot information for |CL| and
other operating systems. The partition size is dependent on the number
of operating systems to be installed. In general, allocate about 100 MB per
operating system. For this tutorial, we used 1 GB.
.. note::
Updating any installed operating systems will likely result
in the |CL| Systemd-Boot no longer being the default
boot loader. To restore it, see :ref:`multi-boot-restore-bl`.
.. note::
Updating any Linux installation may result in changes of their kernels or
initrds. Keep their corresponding Systemd-Boot
:file:`/boot/efi/loader/entries/*.conf` files up-to-update.
.. _multi-boot-detail-proc:
Detailed procedures
*******************
:ref:`multi-boot-cl` (below)
* :ref:`multi-boot-cl` (below)
.. toctree::
:maxdepth: 2
@@ -99,8 +99,20 @@ Detailed procedures
.. _multi-boot-cl:
Install the Clear Linux OS
**************************
Install Clear Linux OS
**********************
Navigation tips for text-based installation interfaces:
* Use the :kbd:`Up Arrow` and :kbd:`Down Arrow` keys to move between
the options on the screen.
* Use the :kbd:`Space` to select or highlight an option.
* Press :kbd:`Enter` to activate the selected option and to move ahead.
Installation details
====================
#. Create a bootable USB drive of the |CL| installer using one of the methods
below.
@@ -111,23 +123,12 @@ Install the Clear Linux OS
#. Start the |CL| installer and follow the prompts.
#. On the *Choose Installation Type* screen, choose *Manual (Advanced)*,
as shown in Figure 1.
#. On the :guilabel:`Choose Installation Type` screen, choose
:guilabel:`Manual (Advanced)`, as shown in Figure 1.
.. figure:: figures/multi-boot-01.png
Figure 1: |CL| installer: Choose installation type screen
.. note::
If you are not familiar with text-based installation
interfaces, here are some navigation tips:
* Use the :kbd:`Up Arrow` and :kbd:`Down Arrow` keys to move between
the options on the screen.
* Use the :kbd:`Space` to select or highlight an option.
* Press :kbd:`Enter` to activate the selected option and to move ahead.
Figure 1: |CL| installer: Choose installation type screen.
#. On the :guilabel:`Choose partitioning method` screen, choose
:guilabel:`Manually configure mounts and partitions`, as shown in
@@ -135,75 +136,75 @@ Install the Clear Linux OS
.. figure:: figures/multi-boot-02.png
Figure 2: |CL|: Choose partitioning method
Figure 2: |CL|: Choose partitioning method.
#. Select the drive, in this case :file:`/dev/sda` and press :kbd:`Enter` to
#. Select the drive, in this case :file:`/dev/sda`, and press :kbd:`Enter` to
go into the `cgdisk` partitioning tool. See Figure 3.
.. figure:: figures/multi-boot-03.png
Figure 3: |CL|: Choose drive to partition
Figure 3: |CL|: Choose drive to partition.
#. Create a new root partition.
#. Select :guilabel:`New`. See Figure 4.
#. Select :guilabel:`New`, as shown in Figure 4.
.. _multi-boot-04:
.. figure:: figures/multi-boot-04.png
Figure 4: |CL|: Create new partition
Figure 4: |CL|: Create new partition.
#. Accept the default first sector.
#. Specify the desired size of the partition. For this example, we
specified *50GB*. See Figure 5.
specified *50 GB*. See Figure 5.
.. figure:: figures/multi-boot-05.png
Figure 5: |CL|: New partition size
Figure 5: |CL|: New partition size.
#. Set the partition type to :guilabel:`8300 (Linux filesystem)`. See
Figure 6.
#. Set the partition type to :guilabel:`8300 (Linux filesystem)`, as shown
in Figure 6.
.. figure:: figures/multi-boot-06.png
Figure 6: |CL|: Set partition type
Figure 6: |CL|: Set partition type.
#. Name the partition :file:`CL-root`. This name makes it easier to
identify later. See Figure 7.
.. figure:: figures/multi-boot-07.png
Figure 7: |CL|: Name partition
Figure 7: |CL|: Name partition.
#. Create a new swap partition. See Figure 8.
#. Create a new swap partition as shown in Figure 8.
.. figure:: figures/multi-boot-08.png
Figure 8: |CL|: Create swap partition
Figure 8: |CL|: Create swap partition.
#. Select the `free space` partition located at the bottom of the column.
#. Select the *free space* partition located at the bottom of the column.
#. Select :guilabel:`New`. See :ref:`Figure 4<multi-boot-04>`.
#. Accept the default first sector.
#. Specify the desired size of the swap partition. For this example, we
used 8GB. See the `recommended swap partition sizes`_ for guidance.
used 8 GB. See the `recommended swap partition sizes`_ for guidance.
#. Set the partition type to :guilabel:`8200 (Linux swap)`.
#. Name the partition :file:`CL-swap`.
#. Create a new EFI partition. See Figure 9.
#. Create a new EFI partition as shown in Figure 9.
.. figure:: figures/multi-boot-09.png
Figure 9: |CL|: Create EFI partition
Figure 9: |CL|: Create EFI partition.
#. In the Partition Type column, select :guilabel:`free space` located at
the bottom of the column.
#. In the :guilabel:`Partition Type` column, select :guilabel:`free space`
located at the bottom of the column.
#. Select :guilabel:`New`. See :ref:`Figure 4<multi-boot-04>`.
@@ -212,7 +213,7 @@ Install the Clear Linux OS
#. Specify the desired size of the partition. For this example, we used
1024 MB. This partition will hold |CL|, the kernels of the other
operating systems, and their boot information. Its size depends on the
number of installed operating systems. In general, allocate about 100MB
number of installed operating systems. In general, allocate about 100 MB
per operating system. For this example, we used 1024 MB.
#. Set the partition type to :guilabel:`ef00 (EFI partition)`.
@@ -228,40 +229,34 @@ Install the Clear Linux OS
.. figure:: figures/multi-boot-10.png
Figure 10: |CL|: Set mount points
Figure 10: |CL|: Set mount points.
#. On the :guilabel:`User configuration` screen, select
:guilabel:`Create an administrative user`. See Figure 11.
:guilabel:`Create an administrative user`, as shown in Figure 11.
.. figure:: figures/multi-boot-11.png
Figure 11: |CL|: User configuration
Figure 11: |CL|: User configuration.
#. Select :guilabel:`Add user to sudoers?`. See Figure 12.
#. Select :guilabel:`Add user to sudoers?`, as shown in Figure 12.
.. figure:: figures/multi-boot-12.png
Figure 12: |CL|: Add user as sudoer
Figure 12: |CL|: Add user as sudoer.
#. Follow the remaining prompts to complete the installation and go through
the out-of-box-experience of |CL|.
#. Follow the remaining prompts to complete the installation and finish
the out-of-box-experience for |CL|.
#. Log in.
#. Get root privileges.
#. Add a Systemd-Boot timeout period or Systemd-Boot will not present the
boot menu of available OSes to choose from and will always boot |CL|.
.. code-block:: console
.. code-block:: bash
$ sudo -s
sudo clr-boot-manager set-timeout 20
#. Add a timeout period for Systemd-Boot to wait, otherwise it will not
present the boot menu and will always boot |CL|.
.. code-block:: console
# clr-boot-manager set-timeout 20
# clr-boot-manager update
sudo clr-boot-manager update
#. Reboot.