[Pkg-ganeti-devel] Bug#853167: ganeti-instance-debootstrap: OS installations fails because sfdisk believes the disk is in use

Apollon Oikonomopoulos apoikos at debian.org
Wed May 3 13:13:06 UTC 2017


Hi Martin,

Apologies for the late response.

Here's a preliminary root cause analysis:

On Mon, 30 Jan 2017 13:33:33 +0100 Martin Weinelt <hexa at darmstadt.ccc.de> wrote:
> This disk is currently in use - repartitioning is probably a bad idea.
> Umount all file systems, and swapoff all swap partitions on this disk.
> Use the --no-reread flag to suppress this check.
> 
> sfdisk: Use the --force flag to overrule all checks.
> ```

In util-linux 2.26, a safeguard was added to sfdisk to try to detect if 
a disk is in use before partitioning. It does so by issuing the 
BLKRRPART ioctl, which instructs the kernel to re-read the partition 
table, which will fail if the disk is currently in use, and this is what 
sfdisk looks for.

However, this operation will also fail with -EINVAL in a number of 
cases, including when devices are declared to the kernel as 
unpartitionable, i.e. with bdev->minors == 1. And this is how DRBD 
declares its own devices. IOW, BLKRRPART on DRBD devices will *always* 
fail, regardless whether the device is in use or not.

> 
> Adding `--force` to the sfdisk call in /usr/share/ganeti/os/debootstrap/common.sh:98
> will allow for completion of the os installation.
> Adding `--no-reread` didn't change a thing for me.

In theory, `--no-reread` should work. I tested it manually here, can you 
please give it a try again? I would prefer to add `--no-reread` rather 
than `--force`, if the former works.

Regards,
Apollon



More information about the Pkg-ganeti-devel mailing list