I tried to enter rescue mode and copy an init of the same version to the system disk, but it didn’t work.
The reason for the system io failure is not that the disk is damaged, but that the lvm-thin where the system disk is located is full and cannot be written to.
I have cleaned the hard drive and now there is enough free space on it.
This almost an unrecoverable event unless you can get the exact package list that was to be upgraded for your system. You might be able to get that from /var/log/dnf.rpm.log but you would have to strip out all other extranious text including the “.rpm” suffix. and put it in a file like “9_5upgrade.txt”. Then in a chroot environment you could do something like this:
sudo dnf reinstall `cat /path to /9_5upgrade.txt`
Actually keep this in your back pocket. I just realized that Rocky point upgrades are applied to all packages in their distribution thus once in the chroot environment a "sudo dnf reinstall * " could work. I’ve only setup a chroot environment on a fedora system with ext4 formatted partitions so I don’t know the process when you have sub-volumes.
Here is the outline of the chroot process I used it will spur the more knowledgable to correct:
Setup chroot before entering environment.
Mounts
mount -t vfat /dev/sda1/ /mnt/sysimage/boot/efi
mount -t proc proc /mnt/proc
mount -t sysfs /sys /mnt/sys
mount --bind /dev /mnt/dev
mount --bind /dev/pts /mnt/dev/pts
unmount these before rebooting after fixes.
Connect wifi
nmcli device wifi connect password <…>
This would have to be modified for the case where you have a separate boot partition, so more mount steps. The rescue media like a Rocky install disk should take care of mounting the root subvolume. So if you can get that setup then you may fix this without a fresh install.