Tomáš Golembiovský
2016-Sep-20 10:55 UTC
[Libguestfs] [PATCH v5] v2v: linux: correctly reconfigure the initrd on Debian
Using update-initramfs is the native way of updating initrd on Debian based systems. To add some modules to the image we can list them in file /etc/initramfs-tools/modules. Signed-off-by: Tomáš Golembiovský <tgolembi@redhat.com> --- v2v/convert_linux.ml | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/v2v/convert_linux.ml b/v2v/convert_linux.ml index 08f4b2a..6b4197d 100644 --- a/v2v/convert_linux.ml +++ b/v2v/convert_linux.ml @@ -478,6 +478,15 @@ let rec convert ~keep_serial_console (g : G.guestfs) inspect source rcaps ignore (g#command (Array.of_list args)) in + let run_update_initramfs_command () + let args + "/usr/sbin/update-initramfs" :: + (if verbose () then [ "-v" ] else []) + @ [ "-c"; "-k"; mkinitrd_kv ] + in + ignore (g#command (Array.of_list args)) + in + if g#is_file ~followsymlinks:true "/sbin/dracut" then run_dracut_command "/sbin/dracut" else if g#is_file ~followsymlinks:true "/usr/bin/dracut" then @@ -491,6 +500,29 @@ let rec convert ~keep_serial_console (g : G.guestfs) inspect source rcaps "-k"; kernel.ki_vmlinuz |] ) ) + else if family = `Debian_family then ( + if not (g#is_file ~followsymlinks:true "/usr/sbin/update-initramfs") then + error (f_"unable to rebuild initrd (%s) because update-initramfs was not found in the guest") + initrd; + + if List.length modules > 0 then ( + (* The modules to add to initrd are defined in: + * /etc/initramfs-tools/modules + * File format is same as modules(5). + *) + let path = "/files/etc/initramfs-tools/modules" in + g#aug_transform "modules" "/etc/initramfs-tools/modules"; + Linux.augeas_reload g; + g#aug_set (sprintf "%s/#comment[last()+1]" path) + "The following modules were added by virt-v2v"; + List.iter ( + fun m -> g#aug_clear (sprintf "%s/%s" path m) + ) modules; + g#aug_save (); + ); + + run_update_initramfs_command () + ) else if g#is_file ~followsymlinks:true "/sbin/mkinitrd" then ( let module_args = List.map (sprintf "--with=%s") modules in let args -- 2.9.3
Pino Toscano
2016-Sep-22 16:46 UTC
Re: [Libguestfs] [PATCH v5] v2v: linux: correctly reconfigure the initrd on Debian
On Tuesday, 20 September 2016 12:55:42 CEST Tomáš Golembiovský wrote:> Using update-initramfs is the native way of updating initrd on Debian > based systems. > > To add some modules to the image we can list them in file > /etc/initramfs-tools/modules. > > Signed-off-by: Tomáš Golembiovský <tgolembi@redhat.com> > ---LGTM, pushed. Thanks, -- Pino Toscano
Maybe Matching Threads
- [PATCH v4] v2v: linux: correctly reconfigure the initrd on Debian
- [PATCH v3 1/2] v2v: linux: correctly reconfigure the initrd on Debian
- [PATCH 1/2] v2v: linux: correctly reconfigure the initrd on Debian
- [PATCH 1/2] v2v: linux: correctly reconfigure the initrd on Debian
- Re: [PATCH 8/8] v2v: linux: correctly reconfigure the initrd on Debian