Ubuntu 20.04 server install fails during partitioning - SUBIQUITY FAILURE
SUBIQUITY FAILURE. (I can't make new tags - so I get to shout more here, sorry)
I'm upgrading my server from Ubuntu 18.04.4 LTS "desktop" image to 20.04 LTS server.
/boot on /dev/sda1 (ext4) / on /dev/sda3 (ext4) user-data on a ZFS pool.
After going through the process to select the existing partitions and comitting to it, the subiquity installer fails consistently on creating /dev/sda1.
This can't be an uncommon scenario, to reuse (and reformat) the partitions in place?
I've tried to save the logs from this (and submitted all logs from three attempts to Canonical), but they are nowhere to be found on the USB stick, and there is no casper-rw file (despite setting up 4GB of persistent storage). So it's really hard to provide the data to fix the problem.
Fortunately, I have backups of the root and boot partitions, so I will dd them back in place to get the system running again.
Update: dd'ed back root&boot, system is up running 18.04.4 again.
transcript from crash log:
get_blockdev_sector_size: (log=512, phys=512)
sda logical_block_size_bytes: 512
Verifying /dev/sda1 exists
Verifying /dev/sda1 size, expecting 1023000064 bytes, found 1023000064 bytes
Running command ['sfdisk', '--dump', '/dev/sda'] with allowed return codes [0] (capture=True)
An error occured handling 'partition-sda1': ValueError - dictionary update sequence element #3 has length 1; 2 is required
finish: cmd-install/stage-partitioning/builtin/cmd-block-meta: FAIL: configuring partition: partition-sda1
TIMED BLOCK_META: 4.140
finish: cmd-install/stage-partitioning/builtin/cmd-block-meta: FAIL: curtin command block-meta
Traceback (most recent call last):
File "/snap/subiquity/1772/lib/python3.6/site-packages/curtin/commands/main.py", line 202, in main
ret = args.func(args)
File "/snap/subiquity/1772/lib/python3.6/site-packages/curtin/log.py", line 97, in wrapper
return log_time("TIMED %s: " % msg, func, *args, **kwargs)
File "/snap/subiquity/1772/lib/python3.6/site-packages/curtin/log.py", line 79, in log_time
return func(*args, **kwargs)
File "/snap/subiquity/1772/lib/python3.6/site-packages/curtin/commands/block_meta.py", line 105, in block_meta
return meta_custom(args)
File "/snap/subiquity/1772/lib/python3.6/site-packages/curtin/commands/block_meta.py", line 1878, in meta_custom
handler(command, storage_config_dict)
File "/snap/subiquity/1772/lib/python3.6/site-packages/curtin/commands/block_meta.py", line 850, in partition_handler
partition_verify(part_path, info)
File "/snap/subiquity/1772/lib/python3.6/site-packages/curtin/commands/block_meta.py", line 754, in partition_verify
verify_ptable_flag(devpath, info['flag'])
File "/snap/subiquity/1772/lib/python3.6/site-packages/curtin/commands/block_meta.py", line 733, in verify_ptable_flag
info = block.sfdisk_info(devpath)
File "/snap/subiquity/1772/lib/python3.6/site-packages/curtin/block/__init__.py", line 290, in sfdisk_info
return _sfdisk_parse(out.splitlines())
File "/snap/subiquity/1772/lib/python3.6/site-packages/curtin/block/__init__.py", line 261, in _sfdisk_parse
for item in rhs.replace(' ', '').split(',')))
ValueError: dictionary update sequence element #3 has length 1; 2 is required
dictionary update sequence element #3 has length 1; 2 is required
curtin: Installation failed with exception: Unexpected error while running command.
Command: ['curtin', 'block-meta', 'simple']
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 partition-sda1({'device': 'disk-sda', 'size': 1023000064, 'wipe': 'superblock', 'flag': 'linux', 'number': 1, 'preserve': True, 'grub_device': False, 'type': 'partition', 'id': 'partition-sda1'})
get_path_to_storage_volume for volume disk-sda({'ptable': 'msdos', 'serial': 'Samsung_SSD_850_EVO_250GB_S2R4NX0H523042A', 'wwn': '0x5002538d40e8f355', 'path': '/dev/sda', 'preserve': True, 'name': '', 'grub_device': True, 'type': 'disk', 'id': 'disk-sda'})
Processing serial 0x5002538d40e8f355 via udev to 0x5002538d40e8f355
lookup_disks found: ['wwn-0x5002538d40e8f355', 'wwn-0x5002538d40e8f355-part3', 'wwn-0x5002538d40e8f355-part1', 'wwn-0x5002538d40e8f355-part2']
Running command ['udevadm', 'info', '--query=property', '--export', '/dev/sda'] with allowed return codes [0] (capture=True)
/dev/sda is multipath device? False
Running command ['multipath', '-c', '/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.139
devsync happy - path /dev/sda now exists
return volume 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.127
devsync happy - path /dev/sda now exists
return volume path /dev/sda1
get_path_to_storage_volume for volume partition-sda3({'device': 'disk-sda', 'size': 32768000000, 'wipe': 'superblock', 'flag': 'linux', 'number': 3, 'preserve': True, 'grub_device': False, 'type': 'partition', 'id': 'partition-sda3'})
get_path_to_storage_volume for volume disk-sda({'ptable': 'msdos', 'serial': 'Samsung_SSD_850_EVO_250GB_S2R4NX0H523042A', 'wwn': '0x5002538d40e8f355', 'path': '/dev/sda', 'preserve': True, 'name': '', 'grub_device': True, 'type': 'disk', 'id': 'disk-sda'})
Processing serial 0x5002538d40e8f355 via udev to 0x5002538d40e8f355
lookup_disks found: ['wwn-0x5002538d40e8f355', 'wwn-0x5002538d40e8f355-part2', 'wwn-0x5002538d40e8f355-part1', 'wwn-0x5002538d40e8f355-part3']
Running command ['udevadm', 'info', '--query=property', '--export', '/dev/sda'] with allowed return codes [0] (capture=True)
Solution 1:
Disable the network from the VM configuration, installer doesn't crash. Once ubuntu is installed, re-enable network and configure as usual