[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: Boot into Xen on debian11
On 7/19/22 10:42 AM, Bruno wrote: > >> Hello. >> >> Is there a way to boot into Xen on debian11 installing Xen the way >> documented, please? >> >> Multiboot2 is not doing the trick with initrd. Is there a workaround or a >> way to? >> >> Do we need a patch to grub to make Xen usable on this scenario? Does anyone >> boot into Xen? On debian? Debian11, please? >> >> I have posted it on stackexchange: >> >> https://unix.stackexchange.com/q/710400/375983 >> >> |Linux xd 5.10.0-16-amd64 #1 SMP Debian 5.10.127-1 (2022-06-30) x86_64 >> GNU/Linux | >> >> On my debian11, I have installed |xen-hypervisor-4.14-amd64|, >> |xen-hypervisor-common|, |xen-system-amd64|, and |xen-utils-4.14| >> >> But I cannot boot into Xen, please help. >> >> Theoretically, after installing Xen, according to >> https://wiki.debian.org/Xen ;, I should only run: >> >> |dpkg-divert --divert /etc/grub.d/08_linux_xen --rename >> /etc/grub.d/20_linux_xen update-grub | >> >> Unfortunately, boot breaks and grub mailing list had a very deep debate on >> it last March-April - apparently multiboot2 will NOT do the trick: >> >> https://www.mail-archive.com/grub-devel@xxxxxxx/msg32020.html >> >> *I need some help, please. Is this inconclusive? Is there a work-around I >> could use (some partial boot on Xen and manually loading on the prompt the >> rest of what is needed for Xen to work)? How should I proceed? I will try to >> register this on grub, debian xen packages and Xen as requests/bugs - any >> further ideas on actions, please?* >> >> The discussion on grub mailing list points to this: >> >> https://wiki.debian.org/DebianInstaller/NetbootFirmware#The_Solution:_Add_Firmware_to_Initramfs >> >> This seems very complicated and risky… is this the way forward? >> >> Did anyone patch grub2 to be able to support what’s needed for Xen, please? >> >> Note: I’m using pure Xen, NOT Eve. >> I am trying to help. The default Xen boot settings on Debian work for me. That is, it uses multiboot2 to boot Xen, and module2 to load the Linux kernel and the initrd, and it works fine with Debian 11. However, my system does not have an nvidia card, which sometimes might not be friendly with free software like Debian. I do think, however, that you should not need to do anything fancy or risky to get the necessary firmware and kernel modules onto your initrd using Debian, except that you will probably need to use packages from the contrib and non-free areas of Debian's package repositories. I think you should use the contrib and non-free packages from the Debian packages repository if you are not already using it, and then try to install the missing firmware (it looks like you are missing firmware for both the i915 and the nouveau drivers.). For how to do this, you might need to post a message to debian-user@xxxxxxxxxxxxxxxx because I have not needed to do it myself. Also, if it still does not work, try running 'sudo update-initramfs -k 5.10.0-16-amd64' to re-generate your initramfs after installing the missing firmware and possibly installing proprietary nvidia drivers before trying it again, but I think the Debian packaging system will automatically do that for you when you install the missing non-free firmware and non-free kernel modules. Hope this helps, Chuck >> |/etc/default/grub| file contents: >> >> |# If you change this file, run 'update-grub' afterwards to update # >> /boot/grub/grub.cfg. # For full documentation of the options in this file, >> see: # info -f grub -n 'Simple configuration' GRUB_DEFAULT=0 GRUB_TIMEOUT=5 >> GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian` >> GRUB_CMDLINE_LINUX_DEFAULT="quiet" GRUB_CMDLINE_LINUX="" # Uncomment to >> enable BadRAM filtering, modify to suit your needs # This works with Linux >> (no patch required) and with any kernel that obtains # the memory map >> information from GRUB (GNU Mach, kernel of FreeBSD ...) >> #GRUB_BADRAM="0x01234567,0xfefefefe,0x89abcdef,0xefefefef" # Uncomment to >> disable graphical terminal (grub-pc only) #GRUB_TERMINAL=console # The >> resolution used on graphical terminal # note that you can use only modes >> which your graphic card supports via VBE # you can see them in real GRUB >> with the command `vbeinfo' #GRUB_GFXMODE=640x480 # Uncomment if you don't >> want GRUB to pass "root=UUID=xxx" parameter to Linux >> #GRUB_DISABLE_LINUX_UUID=true # Uncomment to disable generation of recovery >> mode menu entries #GRUB_DISABLE_RECOVERY="true" # Uncomment to get a beep at >> grub start #GRUB_INIT_TUNE="480 440 1" | >> >> |/boot/grub/grub.cfg| file contents: >> >> |# # DO NOT EDIT THIS FILE # # It is automatically generated by >> grub-mkconfig using templates # from /etc/grub.d and settings from >> /etc/default/grub # ### BEGIN /etc/grub.d/00_header ### if [ -s >> $prefix/grubenv ]; then set have_grubenv=true load_env fi if [ >> "${next_entry}" ] ; then set default="${next_entry}" set next_entry= >> save_env next_entry set boot_once=true else set default="Debian GNU/Linux, >> with Xen hypervisor" fi if [ x"${feature_menuentry_id}" = xy ]; then >> menuentry_id_option="--id" else menuentry_id_option="" fi export >> menuentry_id_option if [ "${prev_saved_entry}" ]; then set >> saved_entry="${prev_saved_entry}" save_env saved_entry set prev_saved_entry= >> save_env prev_saved_entry set boot_once=true fi function savedefault { if [ >> -z "${boot_once}" ]; then saved_entry="${chosen}" save_env saved_entry fi } >> function load_video { if [ x$feature_all_video_module = xy ]; then insmod >> all_video else insmod efi_gop insmod efi_uga insmod ieee1275_fb insmod vbe >> insmod vga >> insmod video_bochs insmod video_cirrus fi } if [ x$feature_default_font_path >> = xy ] ; then font=unicode else insmod part_gpt insmod ext2 if [ >> x$feature_platform_search_hint = xy ]; then search --no-floppy --fs-uuid >> --set=root 0123abcd else search --no-floppy --fs-uuid --set=root 0123abcd fi >> font="/usr/share/grub/unicode.pf2" fi if loadfont $font ; then set >> gfxmode=auto load_video insmod gfxterm set locale_dir=$prefix/locale set >> lang=en_GB insmod gettext fi terminal_output gfxterm if [ "${recordfail}" = >> 1 ] ; then set timeout=30 else if [ x$feature_timeout_style = xy ] ; then >> set timeout_style=menu set timeout=5 # Fallback normal timeout code in case >> the timeout_style feature is # unavailable. else set timeout=5 fi fi ### END >> /etc/grub.d/00_header ### | >> |### BEGIN /etc/grub.d/05_debian_theme ### insmod part_gpt insmod ext2 if [ >> x$feature_platform_search_hint = xy ]; then search --no-floppy --fs-uuid >> --set=root 0123abcd else search --no-floppy --fs-uuid --set=root 0123abcd fi >> insmod png if background_image >> /usr/share/desktop-base/homeworld-theme/grub/grub-4x3.png; then set >> color_normal=white/black set color_highlight=black/white else set >> menu_color_normal=cyan/blue set menu_color_highlight=white/blue fi ### END >> /etc/grub.d/05_debian_theme ### ### BEGIN /etc/grub.d/08_linux_xen ### >> menuentry 'Debian GNU/Linux, with Xen hypervisor' --class debian --class >> gnu-linux --class gnu --class os --class xen $menuentry_id_option >> 'xen-gnulinux-simple-0123abcd' { insmod part_gpt insmod ext2 if [ >> x$feature_platform_search_hint = xy ]; then search --no-floppy --fs-uuid >> --set=root 0123abcd else search --no-floppy --fs-uuid --set=root 0123abcd fi >> echo 'Loading Xen 4.14-amd64 ...' if [ "$grub_platform" = "pc" -o >> "$grub_platform" = "" ]; then >> xen_rm_opts= else xen_rm_opts="no-real-mode edd=off" fi multiboot2 >> /xen-4.14-amd64.gz placeholder ${xen_rm_opts} echo 'Loading Linux >> 5.10.0-16-amd64 ...' module2 /vmlinuz-5.10.0-16-amd64 placeholder >> root=UUID=0123abcd ro quiet echo 'Loading initial ramdisk ...' module2 >> --nounzip /initrd.img-5.10.0-16-amd64 } submenu 'Advanced options for Debian >> GNU/Linux (with Xen hypervisor)' $menuentry_id_option >> 'gnulinux-advanced-0123abcd' { submenu 'Xen hypervisor, version 4.14-amd64' >> $menuentry_id_option 'xen-hypervisor-4.14-amd64-0123abcd' { menuentry >> 'Debian GNU/Linux, with Xen 4.14-amd64 and Linux 5.10.0-16-amd64' --class >> debian --class gnu-linux --class gnu --class os --class xen >> $menuentry_id_option 'xen-gnulinux-5.10.0-16-amd64-advanced-0123abcd' { >> insmod part_gpt insmod ext2 if [ x$feature_platform_search_hint = xy ]; then >> search --no-floppy --fs-uuid --set=root 0123abcd else search --no-floppy >> --fs-uuid --set=root 0123abcd fi echo 'Loading Xen 4.14-amd64 ...' if [ >> "$grub_platform" = "pc" -o "$grub_platform" = "" ]; then xen_rm_opts= else >> xen_rm_opts="no-real-mode edd=off" fi multiboot2 /xen-4.14-amd64.gz >> placeholder ${xen_rm_opts} echo 'Loading Linux 5.10.0-16-amd64 ...' module2 >> /vmlinuz-5.10.0-16-amd64 placeholder root=UUID=0123abcd ro quiet echo >> 'Loading initial ramdisk ...' module2 --nounzip /initrd.img-5.10.0-16-amd64 >> } menuentry 'Debian GNU/Linux, with Xen 4.14-amd64 and Linux 5.10.0-16-amd64 >> (recovery mode)' --class debian --class gnu-linux --class gnu --class os >> --class xen $menuentry_id_option >> 'xen-gnulinux-5.10.0-16-amd64-recovery-0123abcd' { insmod part_gpt insmod >> ext2 if [ x$feature_platform_search_hint = xy ]; then search --no-floppy >> --fs-uuid --set=root 0123abcd else search --no-floppy --fs-uuid --set=root >> 0123abcd fi echo 'Loading Xen 4.14-amd64 ...' if [ "$grub_platform" = "pc" >> -o "$grub_platform" = "" ]; then xen_rm_opts= else xen_rm_opts="no-real-mode >> edd=off" fi multiboot2 /xen-4.14-amd64.gz placeholder >> ${xen_rm_opts} echo 'Loading Linux 5.10.0-16-amd64 ...' module2 >> /vmlinuz-5.10.0-16-amd64 placeholder root=UUID=0123abcd ro single echo >> 'Loading initial ramdisk ...' module2 --nounzip /initrd.img-5.10.0-16-amd64 >> } } submenu 'Xen hypervisor, version 4.14-amd64.efi' $menuentry_id_option >> 'xen-hypervisor-4.14-amd64.efi-0123abcd' { menuentry 'Debian GNU/Linux, with >> Xen 4.14-amd64.efi and Linux 5.10.0-16-amd64' --class debian --class >> gnu-linux --class gnu --class os --class xen $menuentry_id_option >> 'xen-gnulinux-5.10.0-16-amd64-advanced-0123abcd' { insmod part_gpt insmod >> ext2 if [ x$feature_platform_search_hint = xy ]; then search --no-floppy >> --fs-uuid --set=root 0123abcd else search --no-floppy --fs-uuid --set=root >> 0123abcd fi echo 'Loading Xen 4.14-amd64.efi ...' if [ "$grub_platform" = >> "pc" -o "$grub_platform" = "" ]; then xen_rm_opts= else >> xen_rm_opts="no-real-mode edd=off" fi multiboot2 /xen-4.14-amd64.efi >> placeholder ${xen_rm_opts} echo 'Loading Linux 5.10.0-16-amd64 ...' >> module2 /vmlinuz-5.10.0-16-amd64 placeholder root=UUID=0123abcd ro quiet >> echo 'Loading initial ramdisk ...' module2 --nounzip >> /initrd.img-5.10.0-16-amd64 } menuentry 'Debian GNU/Linux, with Xen >> 4.14-amd64.efi and Linux 5.10.0-16-amd64 (recovery mode)' --class debian >> --class gnu-linux --class gnu --class os --class xen $menuentry_id_option >> 'xen-gnulinux-5.10.0-16-amd64-recovery-0123abcd' { insmod part_gpt insmod >> ext2 if [ x$feature_platform_search_hint = xy ]; then search --no-floppy >> --fs-uuid --set=root 0123abcd else search --no-floppy --fs-uuid --set=root >> 0123abcd fi echo 'Loading Xen 4.14-amd64.efi ...' if [ "$grub_platform" = >> "pc" -o "$grub_platform" = "" ]; then xen_rm_opts= else >> xen_rm_opts="no-real-mode edd=off" fi multiboot2 /xen-4.14-amd64.efi >> placeholder ${xen_rm_opts} echo 'Loading Linux 5.10.0-16-amd64 ...' module2 >> /vmlinuz-5.10.0-16-amd64 placeholder root=UUID=0123abcd ro single echo >> 'Loading initial ramdisk ...' module2 --nounzip /initrd.img-5.10.0-16-amd64 } >> } } ### END /etc/grub.d/08_linux_xen ### ### BEGIN /etc/grub.d/10_linux ### >> function gfxmode { set gfxpayload="${1}" } set linux_gfx_mode= export >> linux_gfx_mode menuentry 'Debian GNU/Linux' --class debian --class gnu-linux >> --class gnu --class os $menuentry_id_option 'gnulinux-simple-0123abcd' { >> load_video insmod gzio if [ x$grub_platform = xxen ]; then insmod xzio; >> insmod lzopio; fi insmod part_gpt insmod ext2 if [ >> x$feature_platform_search_hint = xy ]; then search --no-floppy --fs-uuid >> --set=root 0123abcd else search --no-floppy --fs-uuid --set=root 0123abcd fi >> echo 'Loading Linux 5.10.0-16-amd64 ...' linux /vmlinuz-5.10.0-16-amd64 >> root=UUID=0123abcd ro quiet echo 'Loading initial ramdisk ...' initrd >> /initrd.img-5.10.0-16-amd64 } submenu 'Advanced options for Debian >> GNU/Linux' $menuentry_id_option 'gnulinux-advanced-0123abcd' { menuentry >> 'Debian GNU/Linux, with Linux 5.10.0-16-amd64' --class debian --class >> gnu-linux --class gnu --class os $menuentry_id_option >> 'gnulinux-5.10.0-16-amd64-advanced-0123abcd' { load_video insmod gzio if [ >> x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi insmod >> part_gpt insmod ext2 if [ x$feature_platform_search_hint = xy ]; then search >> --no-floppy --fs-uuid --set=root 0123abcd else search --no-floppy --fs-uuid >> --set=root 0123abcd fi echo 'Loading Linux 5.10.0-16-amd64 ...' linux >> /vmlinuz-5.10.0-16-amd64 root=UUID=0123abcd ro quiet echo 'Loading initial >> ramdisk ...' initrd /initrd.img-5.10.0-16-amd64 } menuentry 'Debian >> GNU/Linux, with Linux 5.10.0-16-amd64 (recovery mode)' --class debian >> --class gnu-linux --class gnu --class os $menuentry_id_option >> 'gnulinux-5.10.0-16-amd64-recovery-0123abcd' { load_video insmod gzio if [ >> x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi insmod >> part_gpt insmod ext2 if [ x$feature_platform_search_hint = xy ]; then search >> --no-floppy --fs-uuid --set=root 0123abcd else search --no-floppy --fs-uuid >> --set=root 0123abcd fi echo 'Loading Linux >> 5.10.0-16-amd64 ...' linux /vmlinuz-5.10.0-16-amd64 root=UUID=0123abcd ro >> single echo 'Loading initial ramdisk ...' initrd /initrd.img-5.10.0-16-amd64 >> } } | >> |### END /etc/grub.d/10_linux ### ### BEGIN /etc/grub.d/30_os-prober ### ### >> END /etc/grub.d/30_os-prober ### ### BEGIN /etc/grub.d/30_uefi-firmware ### >> menuentry 'System setup' $menuentry_id_option 'uefi-firmware' { fwsetup } >> ### END /etc/grub.d/30_uefi-firmware ### ### BEGIN /etc/grub.d/40_custom ### >> # This file provides an easy way to add custom menu entries. Simply type the >> # menu entries you want to add after this comment. Be careful not to change >> # the 'exec tail' line above. ### END /etc/grub.d/40_custom ### ### BEGIN >> /etc/grub.d/41_custom ### if [ -f ${config_directory}/custom.cfg ]; then >> source ${config_directory}/custom.cfg elif [ -z "${config_directory}" -a -f >> $prefix/custom.cfg ]; then source $prefix/custom.cfg; fi ### END >> /etc/grub.d/41_custom ###|
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |