[ISOHYBRID]
authorColin Finck <colin@reactos.org>
Wed, 3 May 2017 15:32:33 +0000 (15:32 +0000)
committerColin Finck <colin@reactos.org>
Wed, 3 May 2017 15:32:33 +0000 (15:32 +0000)
Patch all our ISOs (bootcd, bootcdregtest, livecd, hybridcd) with isohybrid in order to make them bootable from HDDs or any kind of USB drives.
The added MBR at the beginning of each ISO doesn't cause any harm for normal CD booting anymore after my patch in r74460.
There is also no need for the dedicated isohybrid targets anymore.

Our ISOMBR master boot record now successfully loads our ISOBOOT boot sector. ISOBOOT loads FreeLdr and indicates that we're booting from HDD, so that FreeLdr can successfully load the kernel.
We then bugcheck in the kernel with either 0x0000007B (INACCESSIBLE_BOOT_DEVICE) using bootcd or 0x0000006B (PROCESS1_INITIALIZATION_FAILED) using livecd.
Testcase is:
  qemu-system-i386 -m 512 -hda bootcd_or_livecd.iso

Needs more investigation, but these are separate bugs and I consider CORE-12648 fixed.

svn path=/trunk/; revision=74461

reactos/boot/CMakeLists.txt

index c820b58..e9aaf9b 100644 (file)
@@ -68,11 +68,8 @@ add_custom_target(bootcd
         -eltorito-boot loader/isoboot.bin -no-emul-boot -boot-load-size 4 -eltorito-alt-boot -eltorito-platform efi -eltorito-boot loader/efisys.bin -no-emul-boot -hide boot.catalog
         -sort ${CMAKE_CURRENT_BINARY_DIR}/bootfiles.sort
         -no-cache-inodes -graft-points -path-list ${CMAKE_CURRENT_BINARY_DIR}/bootcd.lst
-    DEPENDS native-mkisofs
-    VERBATIM)
-add_custom_target(isohybrid_bootcd
     COMMAND native-isohybrid -b ${_isombr_file} ${REACTOS_BINARY_DIR}/bootcd.iso
-    DEPENDS native-isohybrid isombr bootcd
+    DEPENDS isombr native-isohybrid native-mkisofs
     VERBATIM)
 
 ## BootCDRegTest
@@ -86,11 +83,8 @@ add_custom_target(bootcdregtest
         -eltorito-boot loader/isobtrt.bin -no-emul-boot -boot-load-size 4 -eltorito-alt-boot -eltorito-platform efi -eltorito-boot loader/efisys.bin -no-emul-boot -hide boot.catalog
         -sort ${CMAKE_CURRENT_BINARY_DIR}/bootfiles.sort
         -no-cache-inodes -graft-points -path-list ${CMAKE_CURRENT_BINARY_DIR}/bootcdregtest.lst
-    DEPENDS native-mkisofs
-    VERBATIM)
-add_custom_target(isohybrid_bootcdregtest
     COMMAND native-isohybrid -b ${_isombr_file} ${REACTOS_BINARY_DIR}/bootcdregtest.iso
-    DEPENDS native-isohybrid isombr bootcdregtest
+    DEPENDS isombr native-isohybrid native-mkisofs
     VERBATIM)
 
 ## LiveCD
@@ -132,11 +126,8 @@ add_custom_target(livecd
         -eltorito-boot loader/isoboot.bin -no-emul-boot -boot-load-size 4 -eltorito-alt-boot -eltorito-platform efi -eltorito-boot loader/efisys.bin -no-emul-boot -hide boot.catalog
         -sort ${CMAKE_CURRENT_BINARY_DIR}/bootfiles.sort
         -no-cache-inodes -graft-points -path-list ${CMAKE_CURRENT_BINARY_DIR}/livecd.lst
-    DEPENDS native-mkisofs
-    VERBATIM)
-add_custom_target(isohybrid_livecd
     COMMAND native-isohybrid -b ${_isombr_file} ${REACTOS_BINARY_DIR}/livecd.iso
-    DEPENDS native-isohybrid isombr livecd
+    DEPENDS isombr native-isohybrid native-mkisofs
     VERBATIM)
 
 ## HybridCD
@@ -178,11 +169,8 @@ add_custom_target(hybridcd
         -eltorito-boot loader/isoboot.bin -no-emul-boot -boot-load-size 4 -eltorito-alt-boot -eltorito-platform efi -eltorito-boot loader/efisys.bin -no-emul-boot -hide boot.catalog
         -sort ${CMAKE_CURRENT_BINARY_DIR}/bootfiles.sort
         -duplicates-once -no-cache-inodes -graft-points -path-list ${CMAKE_CURRENT_BINARY_DIR}/hybridcd.lst
-    DEPENDS native-mkisofs bootcd livecd
-    VERBATIM)
-add_custom_target(isohybrid_hybridcd
     COMMAND native-isohybrid -b ${_isombr_file} ${REACTOS_BINARY_DIR}/hybridcd.iso
-    DEPENDS native-isohybrid isombr hybridcd
+    DEPENDS bootcd livecd
     VERBATIM)
 
 add_cd_file(TARGET efisys FILE ${CMAKE_CURRENT_BINARY_DIR}/efisys.bin DESTINATION loader NO_CAB NOT_IN_HYBRIDCD FOR bootcd regtest livecd hybridcd)