After resizing the virtual disk, my Linux VM stopped booting. Parallels started directly into the UEFI firmware, which reported that there was no bootable operating system.
The firmware could not see or read the virtual HDD as a block device. Removing and re-adding the HDD didn’t help. Selecting any boot option from the UEFI immediately failed and returned to the firmware. The disk also couldn’t be read as a block device from the UEFI shell, and a Live CD couldn’t find any block devices either.
However, the disk file itself was still very much intact. Mounting the virtual disk with Parallels’ Mount Tool showed that the EFI partition was still readable and showed no signs of corruption.
After more than an hour and a half of debugging, I found the root cause.
Comparing the configuration of the broken VM with that of a working VM showed that the Enabled and InterfaceType values in the HDD section were different:
<Enabled>0</Enabled>
<Connected>1</Connected>
<InterfaceType>0</InterfaceType>
<StackIndex>0</StackIndex>
versus:
<Enabled>1</Enabled>
<Connected>1</Connected>
<InterfaceType>2</InterfaceType>
<StackIndex>0</StackIndex>
Here, 0 means IDE and 2 means SATA, which is consistent with what the Parallels GUI reports.
Changing the device type through the GUI or CLI turned out to be unproductive. Instead, I edited the VM configuration directly with a text editor and changed both values to match those of the working VM.
After that, the VM booted normally, and filesystem checks reported no corruption.