QUOTE (jaclaz @ Feb 11 2007, 11:35 AM)

I've read euhenio's page.
Though, his instructions are rather unclear, I think I got his idea, which is:
- Modified (by him) GRUB4DOS reads RamDisk image into memory
- RamDisk starts as boot-time driver
- XP boots from the RAM disk
XP preparation:
- Install XP on HD
- "Install" RamDisk as boot-time driver (patch registry and copy ramdisk.sys to \system32\drivers ramdisk.sys).
As I understood:
- Modified GRUB4DOS needs SYSLINUX installed
- euhenio's method works only with XP SP2 or 2003sp1 (probably because of "ramdisk(0)" in boot.ini)
- RamDisk driver starts as boot-driver in SCSI group (see his patch at the bottom)
- In boot INI he has ramdisk(0)\WINDOWS="MOBILEOS" /rdpath=\RAM.IMG /fastdetect /SOS /BOOTLOG
- euhenio uses "super-floppy" format (to be bootable on older BIOSes)
My notes:
- even compressed, image of the whole OS needs lots of memory
- reading of image via linux is generally faster then loading dlls via BIOS (as MS Win does)
- euhenio also mentioned "unbinding from iron" [to make it portable], as I understand, that's what MedEvil is working on.
- it's unclear how he managed to tell NTLDR how to read from RamDisk before its driver is loaded (did I missed something from 911 forum?)
PS
Special boot loader can be easily written to read the image into memory via BIOS (without any linux stuff).
I may find time to do that if you tell me "how to tell NTLDR..." (see my note above).
Registry patch:
CODE
[HKEY_LOCAL_MACHINE\sys\ControlSet001\Services\Ramdisk]
"Type"=dword:00000001
"Start"=dword:00000000
"ErrorControl"=dword:00000001
"ImagePath"=hex(2):73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,44,00,\
52,00,49,00,56,00,45,00,52,00,53,00,5c,00,72,00,61,00,6d,00,64,00,69,00,73,\
00,6b,00,2e,00,73,00,79,00,73,00,00,00
"DisplayName"="Windows RAM Disk Driver"
"Group"="SCSI Class"
[-HKEY_LOCAL_MACHINE\sys\MountedDevices]
[HKEY_LOCAL_MACHINE\sys\ControlSet001\Control\Session Manager]
"BootExecute"=hex(7):00,00
[HKEY_LOCAL_MACHINE\sys\ControlSet001\Control\Session Manager\Memory Management]
"PagingFiles"=hex(7):00,00