[Libguestfs] virt-resize: support to MBR logical partitions and some question

Hu Tao hutao at cn.fujitsu.com
Mon Jun 9 09:36:33 UTC 2014


On Wed, Jun 04, 2014 at 10:02:55AM +0100, Richard W.M. Jones wrote:
> 
> On Wed, Jun 04, 2014 at 10:21:41AM +0800, Hu Tao wrote:
> > Hi,
> > 
> > I'm adding support to resizing logical partitions(patch is in progess).
> > But encounter an error when adding a logical partition in dest image:
> > 
> >   virt-resize: libguestfs error: part_add: parted: /dev/sdb: Warning: The resulting partition is not properly aligned for best performance.
> >   Error: Error informing the kernel about modifications to partition /dev/sdb5 -- Device or resource busy.  This means Linux won't know about any changes you made to /dev/sdb5 until you reboot -- so you shouldn't mount it or use it in any way before rebooting.
> >   Error: Failed to add partition 5 (Device or resource busy)
> > 
> > The error is actually no harm since the logical partition has been added
> > successfully, and I don't want to inform kernel at all. But it prevents
> > virt-resize from adding further logical partitions.
> > 
> > I can ignore the error when adding logical partitions manually using parted.
> > The question is, is there any way to ignore such errors in virt-resize?
> 
> This may indicate a bug in the daemon.
> 
> Normally after parted runs, it tries to get the kernel to re-read
> partition tables.  This can fail because for several reasons -- for
> example, because a partition is mounted (and for many other reasons,
> including udev and/or the kernel just getting confused.
> 
> We try to avoid this if we can by various tricks, eg. see use of
> udev_settle function in the daemon.

It seems udev_settle() doesn't help in the case. I think I need to digg
more of the code for a sulation.

> 
> Can you come up with a minimal reproducer (eg. using just guestfish
> commands)?  If so, then file a bug.

No, because guestfish doens't support adding logical partition but the
problem is reproduced with logical partition only.

> 
> >From virt-resize code you can catch and ignore exceptions, but this is
> potentially dangerous since it doesn't distinguish between this
> "harmless" error and other actual errors.
> 
> I'm on holiday at the moment, but I'll try to offer help and advice on
> modifying virt-resize when I can.  I'm back next week.

Cool!

Hu




More information about the Libguestfs mailing list