Difference between revisions of "Xen installation"

From ERIKA WIKI
Jump to: navigation, search
Line 67: Line 67:
 
Note that in case of error for enabling xendomains service, remove <code>/etc/init.d/xendomains</code>.
 
Note that in case of error for enabling xendomains service, remove <code>/etc/init.d/xendomains</code>.
  
== Grub setup ==
+
Finally, update grub and reboot:
The final step to install Xen hypervisor, strictly depends on the chosen boot options:
 
<ol>
 
<li> Using Grub-PC
 
<li> UEFI boot manager
 
</ol>
 
 
 
<b>[OPTION 1] Grub-pc</b><br>
 
Update grub and reboot:
 
 
   # udate-grub
 
   # udate-grub
  # reboot
 
 
<b>[OPTION 2] UEFI boot manager</b><br>
 
Create the Xen UEFI entry as follows:
 
  # mkdir /boot/efi/EFI/xen
 
  # cp /usr/lib64/efi/xen.efi /boot/efi/EFI/xen
 
  # cp /boot/vmlinuz-$VERSION /boot/efi/EFI/xen
 
  # cp /boot/initrd.img-$VERSION /boot/efi/EFI/xen/
 
where $VERSION is the chosen version of the Linux kernel and initramdisk that MUST reside in the same directory as <code>xen.efi</code>.
 
 
Create the <code>xen.cfg</code> file in <code>/boot/efi/EFI/xen/</code>:
 
 
  [global]
 
  default=ubuntu
 
  [ubuntu]
 
  options=console=vga,com1 com1=115200,8n1 iommu=verbose ucode=scan flask=disabled conring_size=2097152  loglvl=all
 
  kernel=vmlinuz-$VERSION root=UUID=$ROOT_UUID ro quiet vt.handoff=7 console=hvc0
 
  ramdisk=initrd.img-$VERSION
 
 
where <code>$VERSION</code> is the chosen version moved into <code>/boot/efi/EFI/xen</code> and <code>ROOT_UUID</code> is the identifier of the Ubuntu partition (note: command used <code>cat /proc/cmdline</code>).
 
 
Create the Xen entry in the UEFI boot manager:
 
  # efibootmgr -w -L Xen -l "\EFI\Xen\xen.efi" -c
 
 
Reorder the UEFI boot order so that Xen will be the default choice. More in detail, launch  <code>efibootmgr</code> commant to get the current order.
 
  # efibootmgr
 
  BootCurrent: 0000
 
  Timeout: 5 seconds
 
  BootOrder: 0000,0001,0002
 
  Boot0000* ubuntu
 
  Boot0001* Hard Drive
 
  Boot0002* Xen
 
 
In this example, Xen has boot number 0002. So, in order to change the UEFI boot order, launch the following commad:
 
  # efibootmgr -o 0002,0000,0001
 
 
Then, reboot:
 
 
   # reboot
 
   # reboot

Revision as of 08:49, 6 May 2019

The section contains the instruction to install Xen hypervisor on platform x86_64 with one of the following operating system:

  • Ubuntu 16.04
  • Ubuntu 18.04.1 LTS

Build Dependencies

Install the following packages:

 # apt update && apt dist-upgrade #update/upgrade the kernel
 # apt install build-essential
 # apt install bcc bin86 gawk bridge-utils iproute2 
 # apt install libcurl4 libcurl4-openssl-dev bzip2 module-init-tools transfig tgif
 # apt install texinfo texlive-latex-base texlive-latex-recommended texlive-fonts-extra texlive-fonts-recommended
 # apt install pciutils-dev mercurial
 # apt install make gcc libc6-dev zlib1g-dev python python-dev python-twisted 
 # apt install libncurses5-dev patch libsdl-dev libjpeg-dev
 # apt install libvncserver-dev
 # apt install iasl libbz2-dev e2fslibs-dev git-core uuid-dev 
 # apt install ocaml ocaml-findlib libx11-dev bison flex xz-utils libyajl-dev
 # apt install gettext libpixman-1-dev libaio-dev markdown pandoc
 # apt install libc6-dev-i386
 # apt install lzma lzma-dev liblzma-dev #for rombios
 # apt install libsystemd-dev 

Retrieve the GRUB version

The Xen installation strictly depends on the installed Grub version: grub-pc or grub-efi. In order to retrieve the grub version, launch the following command:

 $ dpkg --get-selections | grep grub

Xen Installation

Retrieve Xen source
Clone the Xen repository and switch to the chosen version (i.e., RELEASE 4.11):

 $ git clone https://github.com/xen-project/xen.git
 $ cd xen
 $ git checkout RELEASE-4.11.0 -b RELEASE-4.11.0

In the following part of the tutorial, we refer to the Xen repository path as $XENPATH.

Configure
Configure:

 $ $XENPATH/configure --enable-systemd

In case of Xen EFI (as for example in Ubuntu 18.04.01), add the option --enable-targets=x86_64-pep as follows:

 $ $XENPATH/configure --enable-systemd --enable-targets=x86_64-pep

Build and install
Build all components (hypervisor, tools, docs, stubdomains, etc):

 $ cd $XENPATH
 $ make dist

Install (as root):

 # make install

Enable the Xen services
Reload dynamic libraries:

 # /sbin/ldconfig

Enable systemd Xen services:

 # systemctl enable xen-qemu-dom0-disk-backend.service
 # systemctl enable xen-init-dom0.service
 # systemctl enable xenconsoled.service
 # systemctl enable xenstored.service
 # systemctl enable xendomains.service

Note that in case of error for enabling xendomains service, remove /etc/init.d/xendomains.

Finally, update grub and reboot:

 # udate-grub
 # reboot