"Cannot find previous partition on disk /dev/sda"

I’ve been trying to convert some nodes from BIOS to UEFI boot. Every time I try, I get:

An error occured handling 'sda-part2': RuntimeError - Cannot find previous partition on disk /dev/sda
        finish: cmd-install/stage-partitioning/builtin/cmd-block-meta: FAIL: configuring partition: sda-part2

Since it appears to be a partition error, I have tried to wipe any partitions in rescue mode, but I still get the same error:

$ sudo dd if=/dev/zero of=/dev/sda bs=512 count=64K
65536+0 records in
65536+0 records out
33554432 bytes (34 MB, 32 MiB) copied, 0.539459 s, 62.2 MB/s

$ sudo dd if=/dev/zero of=/dev/sda bs=512 count=64K seek=468796592
65536+0 records in
65536+0 records out
33554432 bytes (34 MB, 32 MiB) copied, 0.546694 s, 61.4 MB/s

$ sudo gdisk /dev/sda
GPT fdisk (gdisk) version 1.0.8

Partition table scan:
  MBR: not present
  BSD: not present
  APM: not present
  GPT: not present

Creating new GPT entries in memory.
Command (? for help): x
Expert command (? for help): z
About to wipe out GPT on /dev/sda. Proceed? (Y/N): y
GPT data structures destroyed! You may now partition the disk using fdisk or
other utilities.
Blank out MBR? (Y/N): y

$ sudo sync

Here’s the full installation output:

curtin: Installation started. (23.1.1-1100-g95345797-0ubuntu1~ubuntu22.04.1)
third party drivers not installed or necessary.
start: cmd-install/stage-partitioning/builtin/cmd-block-meta: curtin command block-meta
get_path_to_storage_volume for volume sda({'grub_device': True, 'id': 'sda', 'model': 'SSDSC2KG240G8R', 'name': 'sda', 'ptable': 'gpt', 'serial': '55cd2e41509c75c8', 'type': 'disk', 'wipe': 'superblock'})
Processing serial 55cd2e41509c75c8 via udev to 55cd2e41509c75c8
lookup_disks found: ['wwn-0x55cd2e41509c75c8', 'scsi-355cd2e41509c75c8']
Running command ['udevadm', 'info', '--query=property', '--export', '/dev/sda'] with allowed return codes [0] (capture=True)
/dev/sda is multipath device? False
Running command ['udevadm', 'info', '--query=property', '--export', '/dev/sda'] with allowed return codes [0] (capture=True)
/dev/sda is multipath device member? False
block.lookup_disk() returning path /dev/sda
Running command ['partprobe', '/dev/sda'] with allowed return codes [0, 1] (capture=False)
Running command ['udevadm', 'settle'] with allowed return codes [0] (capture=False)
TIMED udevadm_settle(): 0.115
devsync happy - path /dev/sda now exists
return volume path /dev/sda
get_path_to_storage_volume for volume sda-part2({'device': 'sda', 'id': 'sda-part2', 'name': 'sda-part2', 'number': 2, 'size': '240048406528B', 'type': 'partition', 'uuid': '5d937cef-3b7d-4350-b3cb-3713bc65a015', 'wipe': 'superblock'})
get_path_to_storage_volume for volume sda({'grub_device': True, 'id': 'sda', 'model': 'SSDSC2KG240G8R', 'name': 'sda', 'ptable': 'gpt', 'serial': '55cd2e41509c75c8', 'type': 'disk', 'wipe': 'superblock'})
Processing serial 55cd2e41509c75c8 via udev to 55cd2e41509c75c8
lookup_disks found: ['wwn-0x55cd2e41509c75c8', 'scsi-355cd2e41509c75c8']
Running command ['udevadm', 'info', '--query=property', '--export', '/dev/sda'] with allowed return codes [0] (capture=True)
/dev/sda is multipath device? False
Running command ['udevadm', 'info', '--query=property', '--export', '/dev/sda'] with allowed return codes [0] (capture=True)
/dev/sda is multipath device member? False
block.lookup_disk() returning path /dev/sda
Running command ['partprobe', '/dev/sda'] with allowed return codes [0, 1] (capture=False)
Running command ['udevadm', 'settle'] with allowed return codes [0] (capture=False)
TIMED udevadm_settle(): 0.099
devsync happy - path /dev/sda now exists
return volume path /dev/sda
block-meta: extracted devices to clear: ['/dev/sda']
Declared block devices: ['/dev/sda']
clearing devices=['/dev/sda']
start: cmd-install/stage-partitioning/builtin/cmd-block-meta/clear-holders: removing previous storage devices
Running command ['mdadm', '--assemble', '--scan', '-v'] with allowed return codes [0, 1, 2] (capture=True)
mdadm assemble scan results:

mdadm: looking for devices for further assembly
mdadm: no recogniseable superblock on /dev/sda
mdadm: no recogniseable superblock on /dev/loop3
mdadm: no recogniseable superblock on /dev/loop2
mdadm: no recogniseable superblock on /dev/loop1
mdadm: no recogniseable superblock on /dev/loop0
mdadm: No arrays found in config file or automatically

Running command ['mdadm', '--detail', '--scan', '-v'] with allowed return codes [0, 1] (capture=True)
mdadm detail scan after assemble:


Running command ['udevadm', 'settle'] with allowed return codes [0] (capture=False)
TIMED udevadm_settle(): 0.012
Detected multipath support, reload maps
Running command ['multipath', '-r'] with allowed return codes [0] (capture=False)
Verifying /dev/mapper/mpath* files are symlinks
Running command ['dmsetup', 'ls', '-o', 'blkdevname'] with allowed return codes [0] (capture=True)
Running command ['pvscan', '--config', 'devices{ filter = [ "a|/dev/mapper/mpath.*|", "a|/dev/mapper/dm_crypt-.*|", "r|.*|" ] }'] with allowed return codes [0] (capture=True)
Running command ['vgscan', '--config', 'devices{ filter = [ "a|/dev/mapper/mpath.*|", "a|/dev/mapper/dm_crypt-.*|", "r|.*|" ] }'] with allowed return codes [0] (capture=True)
Running command ['vgchange', '--activate=y', '--config', 'devices{ filter = [ "a|/dev/mapper/mpath.*|", "a|/dev/mapper/dm_crypt-.*|", "r|.*|" ] }'] with allowed return codes [0] (capture=True)
Running command ['udevadm', 'settle'] with allowed return codes [0] (capture=False)
TIMED udevadm_settle(): 0.028
Loading kernel module bcache via modprobe
Running command ['modprobe', '--use-blacklist', 'bcache'] with allowed return codes [0] (capture=False)
Generating device storage trees for path(s): ['/dev/sda']
devname '/sys/class/block/sda' had holders: []
/dev/sda is multipath device partition? False
/dev/sda is multipath device partition? False
/dev/sda is multipath device partition? False
Current device storage tree:
sda
Shutdown Plan:
{'level': 0, 'device': '/sys/class/block/sda', 'dev_type': 'disk'}
shutdown running on holder type: 'disk' syspath: '/sys/class/block/sda'
Running command ['lsblk', '--noheadings', '--bytes', '--pairs', '--output=ALIGNMENT,DISC-ALN,DISC-GRAN,DISC-MAX,DISC-ZERO,FSTYPE,GROUP,KNAME,LABEL,LOG-SEC,MAJ:MIN,MIN-IO,MODE,MODEL,MOUNTPOINT,NAME,OPT-IO,OWNER,PHY-SEC,RM,RO,ROTA,RQ-SIZE,SIZE,STATE,TYPE,UUID', '/dev/sda'] with allowed return codes [0] (capture=True)
get_blockdev_sector_size: info:
{
 "sda": {
  "ALIGNMENT": "0",
  "DISC-ALN": "0",
  "DISC-GRAN": "4096",
  "DISC-MAX": "134217216",
  "DISC-ZERO": "0",
  "FSTYPE": "",
  "GROUP": "disk",
  "KNAME": "sda",
  "LABEL": "",
  "LOG-SEC": "512",
  "MAJ:MIN": "8:0",
  "MIN-IO": "4096",
  "MODE": "brw-rw----",
  "MODEL": "SSDSC2KG240G8R",
  "MOUNTPOINT": "",
  "NAME": "sda",
  "OPT-IO": "0",
  "OWNER": "root",
  "PHY-SEC": "4096",
  "RM": "0",
  "RO": "0",
  "ROTA": "0",
  "RQ-SIZE": "256",
  "SIZE": "240057409536",
  "STATE": "running",
  "TYPE": "disk",
  "UUID": "",
  "device_path": "/dev/sda"
 }
}
get_blockdev_sector_size: (log=512, phys=4096)
Running command ['fdasd', '--table', '/dev/sda'] with allowed return codes [0] (capture=False)
Running command ['lsblk', '--noheadings', '--bytes', '--pairs', '--output=ALIGNMENT,DISC-ALN,DISC-GRAN,DISC-MAX,DISC-ZERO,FSTYPE,GROUP,KNAME,LABEL,LOG-SEC,MAJ:MIN,MIN-IO,MODE,MODEL,MOUNTPOINT,NAME,OPT-IO,OWNER,PHY-SEC,RM,RO,ROTA,RQ-SIZE,SIZE,STATE,TYPE,UUID'] with allowed return codes [0] (capture=True)
Checking if /dev/sda is a swap device
Found swap magic: b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
Running command ['udevadm', 'info', '--query=property', '--export', '/dev/sda'] with allowed return codes [0] (capture=True)
/dev/sda is multipath device? False
Running command ['udevadm', 'info', '--query=property', '--export', '/dev/sda'] with allowed return codes [0] (capture=True)
/dev/sda is multipath device member? False
wiping superblock on /dev/sda
wiping /dev/sda attempt 1/4
Running command ['wipefs', '--all', '--force', '/dev/sda'] with allowed return codes [0] (capture=False)
wiping 1M on /dev/sda at offsets [0, -1048576]
successfully wiped device /dev/sda on attempt 1/4
devname '/sys/class/block/sda' had holders: []
/dev/sda is multipath device partition? False
/dev/sda is multipath device partition? False
/dev/sda is multipath device partition? False
finish: cmd-install/stage-partitioning/builtin/cmd-block-meta/clear-holders: SUCCESS: removing previous storage devices
blockmeta: detected storage config, using mode=custom
start: cmd-install/stage-partitioning/builtin/cmd-block-meta: configuring disk: sda
get_path_to_storage_volume for volume sda({'grub_device': True, 'id': 'sda', 'model': 'SSDSC2KG240G8R', 'name': 'sda', 'ptable': 'gpt', 'serial': '55cd2e41509c75c8', 'type': 'disk', 'wipe': 'superblock'})
Processing serial 55cd2e41509c75c8 via udev to 55cd2e41509c75c8
lookup_disks found: ['wwn-0x55cd2e41509c75c8', 'scsi-355cd2e41509c75c8']
Running command ['udevadm', 'info', '--query=property', '--export', '/dev/sda'] with allowed return codes [0] (capture=True)
/dev/sda is multipath device? False
Running command ['udevadm', 'info', '--query=property', '--export', '/dev/sda'] with allowed return codes [0] (capture=True)
/dev/sda is multipath device member? False
block.lookup_disk() returning path /dev/sda
Running command ['partprobe', '/dev/sda'] with allowed return codes [0, 1] (capture=False)
Running command ['udevadm', 'settle'] with allowed return codes [0] (capture=False)
TIMED udevadm_settle(): 0.087
devsync happy - path /dev/sda now exists
return volume path /dev/sda
Running command ['wipefs', '--all', '--force', '/dev/sda'] with allowed return codes [0] (capture=False)
wiping 1M on /dev/sda at offsets [0, -1048576]
labeling device: '/dev/sda' with 'gpt' partition table
Running command ['wipefs', '--all', '--force', '/dev/sda'] with allowed return codes [0] (capture=False)
wiping 1M on /dev/sda at offsets [0, -1048576]
devname '/dev/sda' had holders: []
get_path_to_storage_volume for volume sda({'grub_device': True, 'id': 'sda', 'model': 'SSDSC2KG240G8R', 'name': 'sda', 'ptable': 'gpt', 'serial': '55cd2e41509c75c8', 'type': 'disk', 'wipe': 'superblock'})
Processing serial 55cd2e41509c75c8 via udev to 55cd2e41509c75c8
lookup_disks found: ['wwn-0x55cd2e41509c75c8', 'scsi-355cd2e41509c75c8']
Running command ['udevadm', 'info', '--query=property', '--export', '/dev/sda'] with allowed return codes [0] (capture=True)
/dev/sda is multipath device? False
Running command ['udevadm', 'info', '--query=property', '--export', '/dev/sda'] with allowed return codes [0] (capture=True)
/dev/sda is multipath device member? False
block.lookup_disk() returning path /dev/sda
Running command ['partprobe', '/dev/sda'] with allowed return codes [0, 1] (capture=False)
Running command ['udevadm', 'settle'] with allowed return codes [0] (capture=False)
TIMED udevadm_settle(): 0.090
devsync happy - path /dev/sda now exists
return volume path /dev/sda
Running command ['blkid', '-o', 'export', '/dev/sda'] with allowed return codes [0, 2] (capture=True)
Running command ['udevadm', 'info', '--query=property', '--export', '/dev/sda'] with allowed return codes [0] (capture=True)
Creating dname udev rule '['SUBSYSTEM=="block"', 'ACTION=="add|change"', 'ENV{DEVTYPE}=="disk"', 'ENV{ID_WWN_WITH_EXTENSION}=="0x55cd2e41509c75c8"', 'ENV{ID_WWN}=="0x55cd2e41509c75c8"', 'ENV{ID_SERIAL}=="355cd2e41509c75c8"', 'ENV{ID_SERIAL_SHORT}=="55cd2e41509c75c8"', 'SYMLINK+="disk/by-dname/sda"\n']'
Creating dname udev rule '['SUBSYSTEM=="block"', 'ACTION=="add|change"', 'ENV{DEVTYPE}=="partition"', 'ENV{ID_WWN_WITH_EXTENSION}=="0x55cd2e41509c75c8"', 'ENV{ID_WWN}=="0x55cd2e41509c75c8"', 'ENV{ID_SERIAL}=="355cd2e41509c75c8"', 'ENV{ID_SERIAL_SHORT}=="55cd2e41509c75c8"', 'SYMLINK+="disk/by-dname/sda-part%n"\n']'
finish: cmd-install/stage-partitioning/builtin/cmd-block-meta: SUCCESS: configuring disk: sda
start: cmd-install/stage-partitioning/builtin/cmd-block-meta: configuring partition: sda-part2
get_path_to_storage_volume for volume sda({'grub_device': True, 'id': 'sda', 'model': 'SSDSC2KG240G8R', 'name': 'sda', 'ptable': 'gpt', 'serial': '55cd2e41509c75c8', 'type': 'disk', 'wipe': 'superblock'})
Processing serial 55cd2e41509c75c8 via udev to 55cd2e41509c75c8
lookup_disks found: ['wwn-0x55cd2e41509c75c8', 'scsi-355cd2e41509c75c8']
Running command ['udevadm', 'info', '--query=property', '--export', '/dev/sda'] with allowed return codes [0] (capture=True)
/dev/sda is multipath device? False
Running command ['udevadm', 'info', '--query=property', '--export', '/dev/sda'] with allowed return codes [0] (capture=True)
/dev/sda is multipath device member? False
block.lookup_disk() returning path /dev/sda
Running command ['partprobe', '/dev/sda'] with allowed return codes [0, 1] (capture=False)
Running command ['udevadm', 'settle'] with allowed return codes [0] (capture=False)
TIMED udevadm_settle(): 0.099
devsync happy - path /dev/sda now exists
return volume path /dev/sda
Running command ['lsblk', '--noheadings', '--bytes', '--pairs', '--output=ALIGNMENT,DISC-ALN,DISC-GRAN,DISC-MAX,DISC-ZERO,FSTYPE,GROUP,KNAME,LABEL,LOG-SEC,MAJ:MIN,MIN-IO,MODE,MODEL,MOUNTPOINT,NAME,OPT-IO,OWNER,PHY-SEC,RM,RO,ROTA,RQ-SIZE,SIZE,STATE,TYPE,UUID', '/dev/sda'] with allowed return codes [0] (capture=True)
get_blockdev_sector_size: info:
{
 "sda": {
  "ALIGNMENT": "0",
  "DISC-ALN": "0",
  "DISC-GRAN": "4096",
  "DISC-MAX": "134217216",
  "DISC-ZERO": "0",
  "FSTYPE": "",
  "GROUP": "disk",
  "KNAME": "sda",
  "LABEL": "",
  "LOG-SEC": "512",
  "MAJ:MIN": "8:0",
  "MIN-IO": "4096",
  "MODE": "brw-rw----",
  "MODEL": "SSDSC2KG240G8R",
  "MOUNTPOINT": "",
  "NAME": "sda",
  "OPT-IO": "0",
  "OWNER": "root",
  "PHY-SEC": "4096",
  "RM": "0",
  "RO": "0",
  "ROTA": "0",
  "RQ-SIZE": "256",
  "SIZE": "240057409536",
  "STATE": "running",
  "TYPE": "disk",
  "UUID": "",
  "device_path": "/dev/sda"
 }
}
get_blockdev_sector_size: (log=512, phys=4096)
sda logical_block_size_bytes: 512
An error occured handling 'sda-part2': RuntimeError - Cannot find previous partition on disk /dev/sda
finish: cmd-install/stage-partitioning/builtin/cmd-block-meta: FAIL: configuring partition: sda-part2
TIMED BLOCK_META: 1.949
finish: cmd-install/stage-partitioning/builtin/cmd-block-meta: FAIL: curtin command block-meta
Traceback (most recent call last):
  File "/curtin/curtin/commands/main.py", line 202, in main
    ret = args.func(args)
  File "/curtin/curtin/log.py", line 97, in wrapper
    return log_time("TIMED %s: " % msg, func, *args, **kwargs)
  File "/curtin/curtin/log.py", line 79, in log_time
    return func(*args, **kwargs)
  File "/curtin/curtin/commands/block_meta.py", line 124, in block_meta
    return meta_custom(args)
  File "/curtin/curtin/commands/block_meta.py", line 2209, in meta_custom
    handler(command, storage_config_dict, context)
  File "/curtin/curtin/commands/block_meta.py", line 1024, in partition_handler
    raise RuntimeError(
RuntimeError: Cannot find previous partition on disk /dev/sda
Cannot find previous partition on disk /dev/sda
curtin: Installation failed with exception: Unexpected error while running command.
Command: ['curtin', 'block-meta', 'custom']
Exit code: 3
Reason: -
Stdout: start: cmd-install/stage-partitioning/builtin/cmd-block-meta: curtin command block-meta
        get_path_to_storage_volume for volume sda({'grub_device': True, 'id': 'sda', 'model': 'SSDSC2KG240G8R', 'name': 'sda', 'ptable': 'gpt', 'serial': '55cd2e41509c75c8', 'type': 'disk', 'wipe': 'superblock'})
        Processing serial 55cd2e41509c75c8 via udev to 55cd2e41509c75c8
        lookup_disks found: ['wwn-0x55cd2e41509c75c8', 'scsi-355cd2e41509c75c8']
        Running command ['udevadm', 'info', '--query=property', '--export', '/dev/sda'] with allowed return codes [0] (capture=True)
        /dev/sda is multipath device? False
        Running command ['udevadm', 'info', '--query=property', '--export', '/dev/sda'] with allowed return codes [0] (capture=True)
        /dev/sda is multipath device member? False
        block.lookup_disk() returning path /dev/sda
        Running command ['partprobe', '/dev/sda'] with allowed return codes [0, 1] (capture=False)
        Running command ['udevadm', 'settle'] with allowed return codes [0] (capture=False)
        TIMED udevadm_settle(): 0.115
        devsync happy - path /dev/sda now exists
        return volume path /dev/sda
        get_path_to_storage_volume for volume sda-part2({'device': 'sda', 'id': 'sda-part2', 'name': 'sda-part2', 'number': 2, 'size': '240048406528B', 'type': 'partition', 'uuid': '5d937cef-3b7d-4350-b3cb-3713bc65a015', 'wipe': 'superblock'})
        get_path_to_storage_volume for volume sda({'grub_device': True, 'id': 'sda', 'model': 'SSDSC2KG240G8R', 'name': 'sda', 'ptable': 'gpt', 'serial': '55cd2e41509c75c8', 'type': 'disk', 'wipe': 'superblock'})
        Processing serial 55cd2e41509c75c8 via udev to 55cd2e41509c75c8
        lookup_disks found: ['wwn-0x55cd2e41509c75c8', 'scsi-355cd2e41509c75c8']
        Running command ['udevadm', 'info', '--query=property', '--export', '/dev/sda'] with allowed return codes [0] (capture=True)
        /dev/sda is multipath device? False
        Running command ['udevadm', 'info', '--query=property', '--export', '/dev/sda'] with allowed return codes [0] (capture=True)
        /dev/sda is multipath device member? False
        block.lookup_disk() returning path /dev/sda
        Running command ['partprobe', '/dev/sda'] with allowed return codes [0, 1] (capture=False)
        Running command ['udevadm', 'settle'] with allowed return codes [0] (capture=False)
        TIMED udevadm_settle(): 0.099
        devsync happy - path /dev/sda now exists
        return volume path /dev/sda
        block-meta: extracted devices to clear: ['/dev/sda']
        Declared block devices: ['/dev/sda']
        clearing devices=['/dev/sda']
        start: cmd-install/stage-partitioning/builtin/cmd-block-meta/clear-holders: removing previous storage devices
        Running command ['mdadm', '--assemble', '--scan', '-v'] with allowed return codes [0, 1, 2] (capture=True)
        mdadm assemble scan results:
        
        mdadm: looking for devices for further assembly
        mdadm: no recogniseable superblock on /dev/sda
        mdadm: no recogniseable superblock on /dev/loop3
        mdadm: no recogniseable superblock on /dev/loop2
        mdadm: no recogniseable superblock on /dev/loop1
        mdadm: no recogniseable superblock on /dev/loop0
        mdadm: No arrays found in config file or automatically
        
        Running command ['mdadm', '--detail', '--scan', '-v'] with allowed return codes [0, 1] (capture=True)
        mdadm detail scan after assemble:
        
        
        Running command ['udevadm', 'settle'] with allowed return codes [0] (capture=False)
        TIMED udevadm_settle(): 0.012
        Detected multipath support, reload maps
        Running command ['multipath', '-r'] with allowed return codes [0] (capture=False)
        Verifying /dev/mapper/mpath* files are symlinks
        Running command ['dmsetup', 'ls', '-o', 'blkdevname'] with allowed return codes [0] (capture=True)
        Running command ['pvscan', '--config', 'devices{ filter = [ "a|/dev/mapper/mpath.*|", "a|/dev/mapper/dm_crypt-.*|", "r|.*|" ] }'] with allowed return codes [0] (capture=True)
        Running command ['vgscan', '--config', 'devices{ filter = [ "a|/dev/mapper/mpath.*|", "a|/dev/mapper/dm_crypt-.*|", "r|.*|" ] }'] with allowed return codes [0] (capture=True)
        Running command ['vgchange', '--activate=y', '--config', 'devices{ filter = [ "a|/dev/mapper/mpath.*|", "a|/dev/mapper/dm_crypt-.*|", "r|.*|" ] }'] with allowed return codes [0] (capture=True)
        Running command ['udevadm', 'settle'] with allowed return codes [0] (capture=False)
        TIMED udevadm_settle(): 0.028
        Loading kernel module bcache via modprobe
        Running command ['modprobe', '--use-blacklist', 'bcache'] with allowed return codes [0] (capture=False)
        Generating device storage trees for path(s): ['/dev/sda']
        devname '/sys/class/block/sda' had holders: []
        /dev/sda is multipath device partition? False
        /dev/sda is multipath device partition? False
        /dev/sda is multipath device partition? False
        Current device storage tree:
        sda
        Shutdown Plan:
        {'level': 0, 'device': '/sys/class/block/sda', 'dev_type': 'disk'}
        shutdown running on holder type: 'disk' syspath: '/sys/class/block/sda'
        Running command ['lsblk', '--noheadings', '--bytes', '--pairs', '--output=ALIGNMENT,DISC-ALN,DISC-GRAN,DISC-MAX,DISC-ZERO,FSTYPE,GROUP,KNAME,LABEL,LOG-SEC,MAJ:MIN,MIN-IO,MODE,MODEL,MOUNTPOINT,NAME,OPT-IO,OWNER,PHY-SEC,RM,RO,ROTA,RQ-SIZE,SIZE,STATE,TYPE,UUID', '/dev/sda'] with allowed return codes [0] (capture=True)
        get_blockdev_sector_size: info:
        {
         "sda": {
          "ALIGNMENT": "0",
          "DISC-ALN": "0",
          "DISC-GRAN": "4096",
          "DISC-MAX": "134217216",
          "DISC-ZERO": "0",
          "FSTYPE": "",
          "GROUP": "disk",
          "KNAME": "sda",
          "LABEL": "",
          "LOG-SEC": "512",
          "MAJ:MIN": "8:0",
          "MIN-IO": "4096",
          "MODE": "brw-rw----",
          "MODEL": "SSDSC2KG240G8R",
          "MOUNTPOINT": "",
          "NAME": "sda",
          "OPT-IO": "0",
          "OWNER": "root",
          "PHY-SEC": "4096",
          "RM": "0",
          "RO": "0",
          "ROTA": "0",
          "RQ-SIZE": "256",
          "SIZE": "240057409536",
          "STATE": "running",
          "TYPE": "disk",
          "UUID": "",
          "device_path": "/dev/sda"
         }
        }
        get_blockdev_sector_size: (log=512, phys=4096)
        Running command ['fdasd', '--table', '/dev/sda'] with allowed return codes [0] (capture=False)
        Running command ['lsblk', '--noheadings', '--bytes', '--pairs', '--output=ALIGNMENT,DISC-ALN,DISC-GRAN,DISC-MAX,DISC-ZERO,FSTYPE,GROUP,KNAME,LABEL,LOG-SEC,MAJ:MIN,MIN-IO,MODE,MODEL,MOUNTPOINT,NAME,OPT-IO,OWNER,PHY-SEC,RM,RO,ROTA,RQ-SIZE,SIZE,STATE,TYPE,UUID'] with allowed return codes [0] (capture=True)
        Checking if /dev/sda is a swap device
        Found swap magic: b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
        Running command ['udevadm', 'info', '--query=property', '--export', '/dev/sda'] with allowed return codes [0] (capture=True)
        /dev/sda is multipath device? False
        Running command ['udevadm', 'info', '--query=property', '--export', '/dev/sda'] with allowed return codes [0] (capture=True)
        /dev/sda is multipath device member? False
        wiping superblock on /dev/sda
        wiping /dev/sda attempt 1/4
        Running command ['wipefs', '--all', '--force', '/dev/sda'] with allowed return codes [0] (capture=False)
        wiping 1M on /dev/sda at offsets [0, -1048576]
        successfully wiped device /dev/sda on attempt 1/4
        devname '/sys/class/block/sda' had holders: []
        /dev/sda is multipath device partition? False
        /dev/sda is multipath device partition? False
        /dev/sda is multipath device partition? False
        finish: cmd-install/stage-partitioning/builtin/cmd-block-meta/clear-holders: SUCCESS: removing previous storage devices
        blockmeta: detected storage config, using mode=custom
        start: cmd-install/stage-partitioning/builtin/cmd-block-meta: configuring disk: sda
        get_path_to_storage_volume for volume sda({'grub_device': True, 'id': 'sda', 'model': 'SSDSC2KG240G8R', 'name': 'sda', 'ptable': 'gpt', 'serial': '55cd2e41509c75c8', 'type': 'disk', 'wipe': 'superblock'})
        Processing serial 55cd2e41509c75c8 via udev to 55cd2e41509c75c8
        lookup_disks found: ['wwn-0x55cd2e41509c75c8', 'scsi-355cd2e41509c75c8']
        Running command ['udevadm', 'info', '--query=property', '--export', '/dev/sda'] with allowed return codes [0] (capture=True)
        /dev/sda is multipath device? False
        Running command ['udevadm', 'info', '--query=property', '--export', '/dev/sda'] with allowed return codes [0] (capture=True)
        /dev/sda is multipath device member? False
        block.lookup_disk() returning path /dev/sda
        Running command ['partprobe', '/dev/sda'] with allowed return codes [0, 1] (capture=False)
        Running command ['udevadm', 'settle'] with allowed return codes [0] (capture=False)
        TIMED udevadm_settle(): 0.087
        devsync happy - path /dev/sda now exists
        return volume path /dev/sda
        Running command ['wipefs', '--all', '--force', '/dev/sda'] with allowed return codes [0] (capture=False)
        wiping 1M on /dev/sda at offsets [0, -1048576]
        labeling device: '/dev/sda' with 'gpt' partition table
        Running command ['wipefs', '--all', '--force', '/dev/sda'] with allowed return codes [0] (capture=False)
        wiping 1M on /dev/sda at offsets [0, -1048576]
        devname '/dev/sda' had holders: []
        get_path_to_storage_volume for volume sda({'grub_device': True, 'id': 'sda', 'model': 'SSDSC2KG240G8R', 'name': 'sda', 'ptable': 'gpt', 'serial': '55cd2e41509c75c8', 'type': 'disk', 'wipe': 'superblock'})
        Processing serial 55cd2e41509c75c8 via udev to 55cd2e41509c75c8
        lookup_disks found: ['wwn-0x55cd2e41509c75c8', 'scsi-355cd2e41509c75c8']
        Running command ['udevadm', 'info', '--query=property', '--export', '/dev/sda'] with allowed return codes [0] (capture=True)
        /dev/sda is multipath device? False
        Running command ['udevadm', 'info', '--query=property', '--export', '/dev/sda'] with allowed return codes [0] (capture=True)
        /dev/sda is multipath device member? False
        block.lookup_disk() returning path /dev/sda
        Running command ['partprobe', '/dev/sda'] with allowed return codes [0, 1] (capture=False)
        Running command ['udevadm', 'settle'] with allowed return codes [0] (capture=False)
        TIMED udevadm_settle(): 0.090
        devsync happy - path /dev/sda now exists
        return volume path /dev/sda
        Running command ['blkid', '-o', 'export', '/dev/sda'] with allowed return codes [0, 2] (capture=True)
        Running command ['udevadm', 'info', '--query=property', '--export', '/dev/sda'] with allowed return codes [0] (capture=True)
        Creating dname udev rule '['SUBSYSTEM=="block"', 'ACTION=="add|change"', 'ENV{DEVTYPE}=="disk"', 'ENV{ID_WWN_WITH_EXTENSION}=="0x55cd2e41509c75c8"', 'ENV{ID_WWN}=="0x55cd2e41509c75c8"', 'ENV{ID_SERIAL}=="355cd2e41509c75c8"', 'ENV{ID_SERIAL_SHORT}=="55cd2e41509c75c8"', 'SYMLINK+="disk/by-dname/sda"\n']'
        Creating dname udev rule '['SUBSYSTEM=="block"', 'ACTION=="add|change"', 'ENV{DEVTYPE}=="partition"', 'ENV{ID_WWN_WITH_EXTENSION}=="0x55cd2e41509c75c8"', 'ENV{ID_WWN}=="0x55cd2e41509c75c8"', 'ENV{ID_SERIAL}=="355cd2e41509c75c8"', 'ENV{ID_SERIAL_SHORT}=="55cd2e41509c75c8"', 'SYMLINK+="disk/by-dname/sda-part%n"\n']'
        finish: cmd-install/stage-partitioning/builtin/cmd-block-meta: SUCCESS: configuring disk: sda
        start: cmd-install/stage-partitioning/builtin/cmd-block-meta: configuring partition: sda-part2
        get_path_to_storage_volume for volume sda({'grub_device': True, 'id': 'sda', 'model': 'SSDSC2KG240G8R', 'name': 'sda', 'ptable': 'gpt', 'serial': '55cd2e41509c75c8', 'type': 'disk', 'wipe': 'superblock'})
        Processing serial 55cd2e41509c75c8 via udev to 55cd2e41509c75c8
        lookup_disks found: ['wwn-0x55cd2e41509c75c8', 'scsi-355cd2e41509c75c8']
        Running command ['udevadm', 'info', '--query=property', '--export', '/dev/sda'] with allowed return codes [0] (capture=True)
        /dev/sda is multipath device? False
        Running command ['udevadm', 'info', '--query=property', '--export', '/dev/sda'] with allowed return codes [0] (capture=True)
        /dev/sda is multipath device member? False
        block.lookup_disk() returning path /dev/sda
        Running command ['partprobe', '/dev/sda'] with allowed return codes [0, 1] (capture=False)
        Running command ['udevadm', 'settle'] with allowed return codes [0] (capture=False)
        TIMED udevadm_settle(): 0.099
        devsync happy - path /dev/sda now exists
        return volume path /dev/sda
        Running command ['lsblk', '--noheadings', '--bytes', '--pairs', '--output=ALIGNMENT,DISC-ALN,DISC-GRAN,DISC-MAX,DISC-ZERO,FSTYPE,GROUP,KNAME,LABEL,LOG-SEC,MAJ:MIN,MIN-IO,MODE,MODEL,MOUNTPOINT,NAME,OPT-IO,OWNER,PHY-SEC,RM,RO,ROTA,RQ-SIZE,SIZE,STATE,TYPE,UUID', '/dev/sda'] with allowed return codes [0] (capture=True)
        get_blockdev_sector_size: info:
        {
         "sda": {
          "ALIGNMENT": "0",
          "DISC-ALN": "0",
          "DISC-GRAN": "4096",
          "DISC-MAX": "134217216",
          "DISC-ZERO": "0",
          "FSTYPE": "",
          "GROUP": "disk",
          "KNAME": "sda",
          "LABEL": "",
          "LOG-SEC": "512",
          "MAJ:MIN": "8:0",
          "MIN-IO": "4096",
          "MODE": "brw-rw----",
          "MODEL": "SSDSC2KG240G8R",
          "MOUNTPOINT": "",
          "NAME": "sda",
          "OPT-IO": "0",
          "OWNER": "root",
          "PHY-SEC": "4096",
          "RM": "0",
          "RO": "0",
          "ROTA": "0",
          "RQ-SIZE": "256",
          "SIZE": "240057409536",
          "STATE": "running",
          "TYPE": "disk",
          "UUID": "",
          "device_path": "/dev/sda"
         }
        }
        get_blockdev_sector_size: (log=512, phys=4096)
        sda logical_block_size_bytes: 512
        An error occured handling 'sda-part2': RuntimeError - Cannot find previous partition on disk /dev/sda
        finish: cmd-install/stage-partitioning/builtin/cmd-block-meta: FAIL: configuring partition: sda-part2
        TIMED BLOCK_META: 1.949
        finish: cmd-install/stage-partitioning/builtin/cmd-block-meta: FAIL: curtin command block-meta
        Traceback (most recent call last):
          File "/curtin/curtin/commands/main.py", line 202, in main
            ret = args.func(args)
          File "/curtin/curtin/log.py", line 97, in wrapper
            return log_time("TIMED %s: " % msg, func, *args, **kwargs)
          File "/curtin/curtin/log.py", line 79, in log_time
            return func(*args, **kwargs)
          File "/curtin/curtin/commands/block_meta.py", line 124, in block_meta
            return meta_custom(args)
          File "/curtin/curtin/commands/block_meta.py", line 2209, in meta_custom
            handler(command, storage_config_dict, context)
          File "/curtin/curtin/commands/block_meta.py", line 1024, in partition_handler
            raise RuntimeError(
        RuntimeError: Cannot find previous partition on disk /dev/sda
        Cannot find previous partition on disk /dev/sda
        
Stderr: ''

This happens no matter which image we try to install, including the default Ubuntu 22 image.

Have you recommissioned after the change, before the deploy?

I did not recommission, no. But I did find that this works:

  • Put machine in “Ready” mode.
  • Click on Storage tab.
  • Beside each entry in the Filesystems table, click the arrow under ACTIONS and Remove Filesystem.
  • Once all filesystems are removed, click Change Storage Layout and pick Flat.

I’ll try a recommission next.

Recommissioning also worked. Thanks!

This topic was automatically closed 2 days after the last reply. New replies are no longer allowed.