This is cool work but you do realize that adding non-Windows partition types and changing Windows headers (and Windows macros) to work with them, as well as forking our CDFS from the Windows CDFS... doesn't really help compatibility move forward...
It would be nice to discuss about how these changes can be done to keep our 'special' USB livecd boot and CDFS changes, without twisting the system away from its NT roots. My suggestion would be a filter driver on top of CDFS, and a re-definition of this macro to be used by the filter (or whatever code relies on it). This sounds like it would give you the best of both worlds...
Best regards, Alex Ionescu
On Thu, Aug 17, 2017 at 1:03 PM, cfinck@svn.reactos.org wrote:
Author: cfinck Date: Thu Aug 17 11:03:40 2017 New Revision: 75586
URL: http://svn.reactos.org/svn/reactos?rev=75586&view=rev Log:
- Add 0x96 as ISO9660 partition type to ntdddisk.h (from
https://en.wikipedia.org/wiki/Partition_type) and detect it using IsRecognizedPartition.
- Make our isohybrid create an MBR with partition type 0x96.
This properly assigns a drive letter to the Live-CD and lets me boot into desktop using "qemu -hda livecd.iso". Fixes CORE-13184
Modified: trunk/reactos/boot/CMakeLists.txt trunk/reactos/sdk/include/psdk/ntdddisk.h
Modified: trunk/reactos/boot/CMakeLists.txt URL: http://svn.reactos.org/svn/reactos/trunk/reactos/boot/ CMakeLists.txt?rev=75586&r1=75585&r2=75586&view=diff ============================================================ ================== --- trunk/reactos/boot/CMakeLists.txt [iso-8859-1] (original) +++ trunk/reactos/boot/CMakeLists.txt [iso-8859-1] Thu Aug 17 11:03:40 2017 @@ -68,7 +68,7 @@ -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
- COMMAND native-isohybrid -b ${_isombr_file}
${REACTOS_BINARY_DIR}/bootcd.iso
- COMMAND native-isohybrid -b ${_isombr_file} -t 0x96
${REACTOS_BINARY_DIR}/bootcd.iso DEPENDS isombr native-isohybrid native-mkisofs VERBATIM)
@@ -83,7 +83,7 @@ -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
- COMMAND native-isohybrid -b ${_isombr_file} ${REACTOS_BINARY_DIR}/
bootcdregtest.iso
- COMMAND native-isohybrid -b ${_isombr_file} -t 0x96
${REACTOS_BINARY_DIR}/bootcdregtest.iso DEPENDS isombr native-isohybrid native-mkisofs VERBATIM)
@@ -126,7 +126,7 @@ -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
- COMMAND native-isohybrid -b ${_isombr_file}
${REACTOS_BINARY_DIR}/livecd.iso
- COMMAND native-isohybrid -b ${_isombr_file} -t 0x96
${REACTOS_BINARY_DIR}/livecd.iso DEPENDS isombr native-isohybrid native-mkisofs VERBATIM)
@@ -169,7 +169,7 @@ -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
- COMMAND native-isohybrid -b ${_isombr_file} ${REACTOS_BINARY_DIR}/
hybridcd.iso
- COMMAND native-isohybrid -b ${_isombr_file} -t 0x96
${REACTOS_BINARY_DIR}/hybridcd.iso DEPENDS bootcd livecd VERBATIM)
Modified: trunk/reactos/sdk/include/psdk/ntdddisk.h URL: http://svn.reactos.org/svn/reactos/trunk/reactos/sdk/ include/psdk/ntdddisk.h?rev=75586&r1=75585&r2=75586&view=diff ============================================================ ================== --- trunk/reactos/sdk/include/psdk/ntdddisk.h [iso-8859-1] (original) +++ trunk/reactos/sdk/include/psdk/ntdddisk.h [iso-8859-1] Thu Aug 17 11:03:40 2017 @@ -223,6 +223,7 @@ #ifdef __REACTOS__ #define PARTITION_OLD_LINUX 0x43 #define PARTITION_LINUX 0x83 +#define PARTITION_ISO9660 0x96 #define PARTITION_FREEBSD 0xA5 #define PARTITION_OPENBSD 0xA6 #define PARTITION_NETBSD 0xA9 @@ -253,6 +254,7 @@ ((PartitionType) == PARTITION_XINT13) || \ ((PartitionType) == PARTITION_LINUX) || \ ((PartitionType) == PARTITION_OLD_LINUX) || \
- ((PartitionType) == PARTITION_ISO9660) || \ ((PartitionType) == PARTITION_FREEBSD) || \ ((PartitionType) == PARTITION_OPENBSD) || \ ((PartitionType) == PARTITION_NETBSD))