diff --git a/src/mkvm/storage.py b/src/mkvm/storage.py index 2bb6b3a..f0c0916 100644 --- a/src/mkvm/storage.py +++ b/src/mkvm/storage.py @@ -135,9 +135,12 @@ def partition_gpt(blockdev, partitions): raise DiskError('Failed to partition disk: {}'.format(msg)) -def pvscan(): +def pvscan(dev=None): + cmd = ['pvscan'] + if dev: + cmd += ('--cache', dev) try: - output = subprocess.check_output(['pvscan'], stderr=subprocess.STDOUT) + output = subprocess.check_output(cmd, stderr=subprocess.STDOUT) if output: log.debug('pvscan:\n{}'.format(output.decode().rstrip())) except subprocess.CalledProcessError as e: diff --git a/src/mkvm/vmdesc.py b/src/mkvm/vmdesc.py index 09fbb1c..6bceba3 100644 --- a/src/mkvm/vmdesc.py +++ b/src/mkvm/vmdesc.py @@ -372,8 +372,7 @@ class VirtualMachine(object): storage.partition_gpt(self._disk.blockdev, self.partitions) def _partition_lvm(self): - blockdev = self._disk.blockdev - storage.pvscan() + storage.pvscan(self._disk.blockdev) pvs = [] if self.partitions: partitions = self._disk.partitions @@ -381,7 +380,7 @@ class VirtualMachine(object): if part.get('type') == 0x8e00: pvs.append(partitions[idx]) else: - pvs.append(blockdev) + pvs.append(self._disk.blockdev) storage.create_lvm_pv(*pvs) storage.create_lvm_vg(self.vg_name, *pvs) for vol in self.volumes: