[Libguestfs] [PATCH 8/8] v2v: linux: correctly reconfigure the initrd on Debian

Pino Toscano ptoscano at redhat.com
Wed Aug 10 09:05:19 UTC 2016


On Tuesday, 9 August 2016 13:55:53 CEST Tomáš Golembiovský wrote:
> On Mon,  8 Aug 2016 18:38:55 +0200
> Pino Toscano <ptoscano at redhat.com> wrote:
> 
> > Use the canonical way to regenerate the initrd images for all the
> > installed kernels, i.e. reconfigure the initramfs-tools which will
> > trigger the kernel postinst scripts.
> > ---
> >  v2v/convert_linux.ml | 4 +++-
> >  1 file changed, 3 insertions(+), 1 deletion(-)
> > 
> > diff --git a/v2v/convert_linux.ml b/v2v/convert_linux.ml
> > index cfe46b8..a556ce6 100644
> > --- a/v2v/convert_linux.ml
> > +++ b/v2v/convert_linux.ml
> > @@ -866,7 +866,9 @@ let rec convert ~keep_serial_console (g : G.guestfs) inspect source rcaps =
> >          ignore (g#command (Array.of_list args))
> >        in
> >  
> > -      if g#is_file ~followsymlinks:true "/sbin/dracut" then
> > +      if family = `Debian_family then
> > +        ignore (g#command ([| "dpkg-reconfigure"; "--frontend=noninteractive"; "initramfs-tools" |]))
> > +      else 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
> >          run_dracut_command "/usr/bin/dracut"
> 
> It might be better to call update-initramfs directly. I don't know, is
> using dpkg-reconfigure maybe safer across distributions? The slight
> advantage of calling update-initramfs is that we can turn on verbose
> mode, just like for dracut:
> 
>       let run_update_initramfs_command () =
>         let args =
>           "update-initramfs"  ::
>             (if verbose () then [ "-v" ] else [])
>           @ [ "-c"; "-k"; mkinitrd_kv ]
>         in
>         ignore (g#command (Array.of_list args))
>       in
> 
> The other advantage is that we can provide the kernel version we want.
> The default is to update the initramfs for the latest kernel, which in
> theory might not be the one we want if it were missing virtio drivers
> (not sure if this can happen). According to ordering we do any kernel
> without virtio drivers is worse than any kernel with virtio drivers.

Makes sense, I'll drop my patch and leave it to you.

> What we can also do is specify list of modules we require. Similar to
> what we do for dracut/mkinitrd. Debian uses a file for that:
> 
>         (* The modules to add to initrd are defined in a file. *)
>         ignore (g#sh "sh -c 'echo \\# Added by virt-v2v >> /etc/initramfs-tools/modules'");
>         let cmd = (sprintf "sh -c 'echo %s >> /etc/initramfs-tools/modules'"
>           (String.concat " " modules)) in
>         ignore (g#sh cmd);

If we want to do that, then please use the write_append API for this.

Thanks,
-- 
Pino Toscano
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: This is a digitally signed message part.
URL: <http://listman.redhat.com/archives/libguestfs/attachments/20160810/bbedcfd9/attachment.sig>


More information about the Libguestfs mailing list