[SLOF] [PATCH v3] slof/fs/packages/disk-label.fs: improve checking for DOS boot partitions
Thomas Huth
thuth at redhat.com
Wed Mar 27 18:45:36 AEDT 2024
On 27/03/2024 06.41, Kautuk Consul wrote:
> While testing with a qcow2 with a DOS boot partition it was found that
> when we set the logical_block_size in the guest XML to >512 then the
> boot would fail in the following interminable loop:
> <SNIP>
> Trying to load: from: /pci at 800000020000000/scsi at 3 ... virtioblk_transfer: Access beyond end of device!
> virtioblk_transfer: Access beyond end of device!
> virtioblk_transfer: Access beyond end of device!
> virtioblk_transfer: Access beyond end of device!
> virtioblk_transfer: Access beyond end of device!
> virtioblk_transfer: Access beyond end of device!
> virtioblk_transfer: Access beyond end of device!
> virtioblk_transfer: Access beyond end of device!
> virtioblk_transfer: Access beyond end of device!
> virtioblk_transfer: Access beyond end of device!
> virtioblk_transfer: Access beyond end of device!
> virtioblk_transfer: Access beyond end of device!
> virtioblk_transfer: Access beyond end of device!
> virtioblk_transfer: Access beyond end of device!
> virtioblk_transfer: Access beyond end of device!
> virtioblk_transfer: Access beyond end of device!
> virtioblk_transfer: Access beyond end of device!
> </SNIP>
>
> Change the count-dos-logical-partitions Forth subroutine and the Forth
> subroutines calling count-dos-logical-partitions to check for this access
> beyond end of device error.
>
> After making the above changes, it fails properly with the correct error
> message as follows:
> <SNIP>
> Trying to load: from: /pci at 800000020000000/scsi at 3 ... virtioblk_transfer: Access beyond end of device!
> virtioblk_transfer: Access beyond end of device!
> virtioblk_transfer: Access beyond end of device!
> virtioblk_transfer: Access beyond end of device!
> virtioblk_transfer: Access beyond end of device!
> virtioblk_transfer: Access beyond end of device!
> virtioblk_transfer: Access beyond end of device!
> virtioblk_transfer: Access beyond end of device!
> virtioblk_transfer: Access beyond end of device!
> virtioblk_transfer: Access beyond end of device!
>
> E3404: Not a bootable device!
>
> E3407: Load failed
>
> Type 'boot' and press return to continue booting the system.
> Type 'reset-all' and press return to reboot the system.
>
> Ready!
> 0 >
> </SNIP>
>
> Signed-off-by: Kautuk Consul <kconsul at linux.ibm.com>
> ---
> slof/fs/packages/disk-label.fs | 16 ++++++++++++----
> 1 file changed, 12 insertions(+), 4 deletions(-)
Reviewed-by: Thomas Huth <thuth at redhat.com>
More information about the SLOF
mailing list