Index: /trunk/src/VBox/Devices/PC/BIOS/eltorito.c
===================================================================
--- /trunk/src/VBox/Devices/PC/BIOS/eltorito.c	(revision 43670)
+++ /trunk/src/VBox/Devices/PC/BIOS/eltorito.c	(revision 43671)
@@ -370,5 +370,5 @@
     bios_dsk->drqp.sect_sz = 512;
 
-    bios_dsk->drqp.skip_a = 2048 - nbsectors * 512UL % 2048;
+    bios_dsk->drqp.skip_a = (2048 - nbsectors * 512) % 2048;
 
     if (VBOX_IS_AHCI_DEVICE(device))
@@ -554,9 +554,9 @@
         atapicmd.nsect   = swap_16(elba - slba + 1);
 
-        bios_dsk->drqp.nsect   = elba - slba + 1;
+        bios_dsk->drqp.nsect   = nbsectors;
         bios_dsk->drqp.sect_sz = 512;
 
         bios_dsk->drqp.skip_b = before * 512;
-        bios_dsk->drqp.skip_a = 2048 - nbsectors * 512UL % 2048 - bios_dsk->drqp.skip_b;
+        bios_dsk->drqp.skip_a = ((4 - nbsectors % 4 - before) * 512) % 2048;
 
         if (VBOX_IS_AHCI_DEVICE(device))
