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(a)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))