From 1dbb055bc6b97c3394d36039e7e8608bd1d7f61a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marcus=20Sch=C3=A4fer?= Date: Wed, 30 Oct 2024 14:23:46 +0100 Subject: [PATCH 1/2] Install migration live image to /migration-image This change helps to run migrations on systems which stores /usr/share in a special way, e.g. as LVM volume or other type that cannot be read via the loopback grub or kexec method. This Fixes #277 --- grub.d/99_migration | 2 +- image/package/suse-migration-rpm.changes | 10 ++++++++++ image/package/suse-migration-rpm/image.spec.in | 6 +++--- tools/run_migration | 2 +- 4 files changed, 15 insertions(+), 5 deletions(-) diff --git a/grub.d/99_migration b/grub.d/99_migration index 7d433449..bf85f090 100644 --- a/grub.d/99_migration +++ b/grub.d/99_migration @@ -14,7 +14,7 @@ else ) ${CLASS}" fi -migration_iso=$(echo /usr/share/migration-image/*-Migration.*.iso) +migration_iso=$(echo /migration-image/*-Migration.*.iso) root_device=$( lsblk -p -n -r -o NAME,MOUNTPOINT | grep -E "/$" | uniq | cut -f1 -d" " diff --git a/image/package/suse-migration-rpm.changes b/image/package/suse-migration-rpm.changes index a87cc667..19fa1c5b 100644 --- a/image/package/suse-migration-rpm.changes +++ b/image/package/suse-migration-rpm.changes @@ -1,3 +1,13 @@ +------------------------------------------------------------------- +Wed Oct 30 13:21:08 UTC 2024 - Marcus Schäfer + +- Install migration live image to /migration-image + + This change helps to run migrations on systems which stores + /usr/share in a special way, e.g. as LVM volume or other + type that cannot be read via the loopback grub or kexec + method + ------------------------------------------------------------------- Thu Nov 14 10:11:04 UTC 2019 - Marcus Schaefer diff --git a/image/package/suse-migration-rpm/image.spec.in b/image/package/suse-migration-rpm/image.spec.in index 132dda95..aaa66e13 100644 --- a/image/package/suse-migration-rpm/image.spec.in +++ b/image/package/suse-migration-rpm/image.spec.in @@ -22,9 +22,9 @@ This package contains the Migration Live System. %build %install -install -d -m 755 $RPM_BUILD_ROOT/usr/share/migration-image +install -d -m 755 $RPM_BUILD_ROOT/migration-image install -d -m 755 $RPM_BUILD_ROOT/%{_sbindir} -cp %{SOURCE0} $RPM_BUILD_ROOT/usr/share/migration-image +cp %{SOURCE0} $RPM_BUILD_ROOT/migration-image cp %{_sbindir}/run_migration $RPM_BUILD_ROOT/%{_sbindir} %post @@ -35,7 +35,7 @@ rm -rf $RPM_BUILD_ROOT %files %defattr(-, root, root) -/usr/share/migration-image +/migration-image %{_sbindir}/run_migration %changelog diff --git a/tools/run_migration b/tools/run_migration index 0f0e5d53..cb6b1ba0 100755 --- a/tools/run_migration +++ b/tools/run_migration @@ -39,7 +39,7 @@ function get_migration_image { # """ # Search for migration ISO file # """ - echo /usr/share/migration-image/*-Migration.*.iso + echo /migration-image/*-Migration.*.iso } function get_system_root_device { From 76e11025758f68fbeac8e3b5ce80588feeac53e2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marcus=20Sch=C3=A4fer?= Date: Wed, 30 Oct 2024 17:02:39 +0100 Subject: [PATCH 2/2] Load lvm module in grub mode If the DMS live ISO loopback boot runs on a machine that has root (/) on LVM we need to load lvm in grub to be able to read from the root of the toplevel volume --- grub.d/99_migration | 1 + 1 file changed, 1 insertion(+) diff --git a/grub.d/99_migration b/grub.d/99_migration index bf85f090..672fc699 100644 --- a/grub.d/99_migration +++ b/grub.d/99_migration @@ -74,6 +74,7 @@ if grub_file_is_not_garbage "${migration_iso}"; then "/@/boot/grub2/x86_64-efi" printf " insmod loopback\n" fi + printf " insmod lvm\n" printf " insmod %s\n" "${image_fs_type}" printf " search --no-floppy --fs-uuid --set=root %s\n" "${image_fs_uuid}" printf " set isofile='%s'\n" \