summaryrefslogtreecommitdiff
path: root/pcr/xen/xen.install
diff options
context:
space:
mode:
Diffstat (limited to 'pcr/xen/xen.install')
-rw-r--r--pcr/xen/xen.install140
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__
+}