diff options
Diffstat (limited to 'pcr/xen/xen.install')
-rw-r--r-- | pcr/xen/xen.install | 140 |
1 files changed, 140 insertions, 0 deletions
diff --git a/pcr/xen/xen.install b/pcr/xen/xen.install new file mode 100644 index 000000000..f629e6643 --- /dev/null +++ b/pcr/xen/xen.install @@ -0,0 +1,140 @@ +xen_boot() { + cat << __EOF__ +You are not running xen unless you boot xen. +Possible Xen boot paths: +EFI boot -> grubx64.efi -> multiboot2 -> [xen.gz, vmlinuz, ramdisk] +BIOS boot -> grub -> multiboot(2) -> [xen.gz, vmlinuz, ramdisk] + +EFI boot -> xen.efi + +########## +grub multiboot2 preparation: +Install grub: https://wiki.parabola.nu/index.php/GRUB + +At this time, some modifications are needed to 20_linux_xen. +These are included in this package as 21_linux_xen + +Set the values needed for your configuration in /etc/default/grub +Detailed here: https://www.gnu.org/software/grub/manual/html_node/Simple-configuration.html +Needed: +GRUB_CMDLINE_XEN +GRUB_CMDLINE_LINUX_XEN_REPLACE +These values are not required but can be used; they are appended to the previous values, then this is used for the non-recovery (default) entry: +GRUB_CMDLINE_XEN_DEFAULT +GRUB_CMDLINE_LINUX_XEN_REPLACE_DEFAULT + +run grub-mkconfig + +To boot xen as default: +suggested: inspect and use this config to boot with. Check if the xen entry works as expected +find the id of the xen entry and set this as DEFAULT in /etc/default/grub. +This may look something like: +GRUB_DEFAULT="xen-gnulinux-simple-a-unique-id-from-your-grub-goes-here" + +run grub-mkconfig + +########## + +Direct EFI boot preperation: +Create a xen.cfg file in the same directory as xen.efi. +These need to be in ESP, or in a directory accessible from you EFI bootloader. +Put settings relevant to your system into xen.cfg +Detailed here: https://xenbits.xen.org/docs/4.9-testing/misc/efi.html +Needed: +kernel +ramdisk +Add the xen.efi file to your EFI bootloader (such as Refind). +And / or add the xen.efi file to you EFI boot options (efibootmgr). +__EOF__ +} + +install_msg() { + cat << __EOF__ +===> IMPORTANT NOTICES: + +In order to complete the installation, and enable Xen, +at the very least you must: +1. Configure your bootloader to boot Xen: +__EOF__ + xen_boot + cat << __EOF__ +2. Issue the following commands to allow you to create and start VMs: + + systemctl enable xen-qemu-dom0-disk-backend.service + systemctl enable xen-init-dom0.service + systemctl enable xenconsoled.service + + Other optional services are: + systemctl enable xen-watchdog.service + +3. If you want some domains to automatically start up/shutdown, run the following: + systemctl enable xendomains.service + +For more information refer to the Wiki: + https://wiki.parabola.nu/index.php/Xen + +__EOF__ +} + +upgrade_msg() { + cat << __EOF__ +Xen 4.9 +Release notes +http://wiki.xen.org/wiki/Xen_Project_4.9_Release_Notes +Feature list +http://wiki.xen.org/wiki/Xen_Project_4.9_Feature_List +__EOF__ +} + +upgrade_msg_grub_multiboot2() { + cat << __EOF__ +########## +Xen 4.9 can now use grub>=2.02 multiboot2. +If you previously booted using xen.efi, you have an alternative. +If you previously relied on the packaged 09_xen for grub-mkconfig: +It is now removed. +You will need to do the following under grub multiboot2 preparation: +########## +__EOF__ + xen_boot +} + +post_install() { + install_msg + upgrade_msg + systemd-tmpfiles --create +} + +post_upgrade() { + if [[ "$2" < 4.9.0 || "$2" == *'4.9.0rc'* ]]; then + upgrade_msg + fi + if [[ "$2" < 4.9.0 || "$2" == *'4.9.0rc'* ]]; then + upgrade_msg_grub_multiboot2 + fi + systemd-tmpfiles --create +} + +pre_remove() { + systemctl stop xendomains.service + systemctl stop xen-watchdog.service + systemctl stop xenconsoled.service + systemctl stop xen-init-dom0.service + systemctl stop xen-qemu-dom0-disk-backend.service + + systemctl disable xendomains.service + systemctl disable xen-watchdog.service + systemctl disable xenconsoled.service + systemctl disable xen-init-dom0.service + systemctl disable xen-qemu-dom0-disk-backend.service +} + +post_remove() { + cat << __EOF__ +===> IMPORTANT NOTICE: + +In order to finish removing Xen, you will need to modify +your bootloader configuration files to load your Linux-libre +kernel instead of Xen kernel. +__EOF__ +} |