SUSE / suse-migration-services

GNU General Public License v3.0
7 stars 11 forks source link

DMS fails on EFI systems (grub setup incorrect, also kexec --load needs -s flag) #174

Closed tserong closed 4 years ago

tserong commented 4 years ago

When booting via grub, it seems EFI systems need to use "linuxefi" and "initrdefi" instead of "linux" and "initrd" in the grub config. Also, at least in the btrfs case, it looks like it needs a "btrfs-mount-subvol / /boot/grub2/x86_64-efi /@/boot/grub2/x86_64-efi" line, and/or "insmod ($root)/usr/share/grub2/x86_64-efi/loopback.mod". See https://bugzilla.suse.com/show_bug.cgi?id=1173532 for further details.

I tried using run_migration to avoid grub entirely, but it turns out that kexec --load in that script will fail with "kexec_load failed: operation not permitted", and needs the -s flag added to use the newer KEXEC_FILE_LOAD syscall instead of KEXEC_LOAD (I tried adding -a, to automatically try one then the other, but -a isn't supported by kexec on SLE 12 SP3, so that's no good). I'm not sure if it's safe to always just add -s, or if we should add it as an argument to run_migration.

schaefi commented 4 years ago

When booting via grub, it seems EFI systems need to use "linuxefi" and "initrdefi" ..

all of this grub crap has been addressed in kiwi even though the mess in grub should finally be fixed. For details see: https://github.com/OSInside/kiwi/pull/1456 and https://github.com/OSInside/kiwi/pull/1398. The respective bugzilla issues are bsc#1165960 and bsc#1168480 and we submitted kiwi to SLE15 and SLE12-SP5. Thus this should not be an issue given the image was build with a kiwi version that has this fixes

I tried using run_migration to avoid grub entirely, but it turns out that kexec --load in that script will fail with "kexec_load failed: operation not permitted", and needs the -s flag added to use the newer KEXEC_FILE_LOAD syscall instead of KEXEC_LOAD

Thanks. I think that's something we should take into account and just use the "-s" flag