Using update-initramfs is the native way of updating initrd on Debian based systems.
Signed-off-by: Tomáš Golembiovský <[email protected]> --- v2v/convert_linux.ml | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/v2v/convert_linux.ml b/v2v/convert_linux.ml index 47fec9e..103728b 100644 --- a/v2v/convert_linux.ml +++ b/v2v/convert_linux.ml @@ -865,6 +865,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 @@ -878,6 +887,18 @@ 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; + + (* The modules to add to initrd are defined in a file. *) + let modules = String.concat "\n" modules in + let modules = "#\n# Added by virt-v2v\n" ^ modules ^ "\n" in + ignore (g#write_append "/etc/initramfs-tools/modules" modules); + + 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.2 _______________________________________________ Libguestfs mailing list [email protected] https://www.redhat.com/mailman/listinfo/libguestfs
