From 02ae08f9cbafba81fef2fe2ae759db0c38fa5cf3 Mon Sep 17 00:00:00 2001 From: Colin Finck Date: Wed, 3 May 2017 15:32:33 +0000 Subject: [PATCH] [ISOHYBRID] 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 | 20 ++++---------------- 1 file changed, 4 insertions(+), 16 deletions(-) diff --git a/reactos/boot/CMakeLists.txt b/reactos/boot/CMakeLists.txt index c820b581f10..e9aaf9b85e5 100644 --- a/reactos/boot/CMakeLists.txt +++ b/reactos/boot/CMakeLists.txt @@ -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)