Jump to content











Photo
* * * * * 7 votes

FiraDisk (latest = 0.0.1.30)


  • Please log in to reply
630 replies to this topic

#1 karyonix

karyonix

    Frequent Member

  • Advanced user
  • 481 posts
  •  
    Thailand

Posted 22 August 2009 - 10:57 AM

FiraDisk
File/RAM Disk driver for Windows.
From discussion in Shao's topic GRUB4DOS RAM Disk Recognized by RAMDISK.SYS, I try making a Windows driver to read GRUB4DOS' drive map table and use GRUB4DOS RAM drives in Windows. This driver is the result. It emulates SCSI adapter and disk. It can use RAM disk loaded by GRUB4DOS in Windows.
Shao's driver WinVBlock can also use GRUB4DOS's RAM drives. You can visit his thread for more detail.

This driver is not suitable for people who are not familiar with making and manipulating disk image or don't know how to use GRUB4DOS.
It may take a long time to study about them depending on each person.

What is this driver for ?
When your Windows has problem running or is infected with viruses, it is difficult or sometimes impossible to fix it from within windows itself.
Options to fix it or recover data from it would be
- Boot DOS. You can get data from FAT partition. With some add-on you may be able to access data in NTFS partition.
- Use Linux or other OS to access your data with some limitation in its NTFS features.
- Windows PE run from CD or USB drive
- Remove harddisk from the computer and put it in another computer with Windows installed. You can access NTFS partition, scan virus, modify registry, create partition, delete partition, format, install new Windows in existing NTFS partition without formatting.

Windows PEs created from Winbuilder are useful for data recovery and manipulation of harddisk partition.
They are normally run from CD-ROM. If you don't want to burn CD, or the computer you want to run it on don't have CD-ROM drive, another option is run from USB drive.

GRUB4DOS has ability to load disk image to RAM and create RAM drive for use in DOS, Windows 98. You can boot DOS, Windows 98 in RAM.
Newer Windows based on Windows NT cannot use GRUB4DOS RAM drive unless you have driver for it.
With FiraDisk driver you can use GRUB4DOS RAM drive in Windows XP-7. It can be used to boot Windows.

If you have FiraDisk integrated in PE ISO. It is possible to use GRUB4DOS to load PE from ISO file into RAM and run PE from RAM.
When you run Windows from RAM. You can use your recovery tools, antivirus, partition managers to modify your harddisk. You can also delete/rename some folders (Document and Settings, Program Files, Windows) and reinstall Windows in old NTFS partition without deleting your data files and don't get old and new files mixed.
You can store multiple ISO files on the same drive and choose it in GRUB4DOS at boot time.

Platform:
Can run in
- Windows XP 32-bit
- Windows Server 2003 32-bit
- Windows 7 32-bit
- Windows 7 64-bit (Test Mode)

Download
Latest version = 0.0.1.30
Driver files : http://www.mediafire...er-0.0.1.30.zip
Source files : http://www.mediafire...src-0.0.1.30.7z
F6 Floppy image : http://www.mediafire...-0.0.1.30-f6.7z

Test-signed 64-bit driver is included. If you want to test it in Windows Vista or Windows 7 64-bit, you must enable TESTSIGNING Boot Configuration Option before you install this driver.
If you don't want to be warned about unknown publisher, you may install my self-signed test-signing root certificate before you install this driver. TestSignRootCA.reg ( 4.78K )

Old versions v0.0.1.0 - 0.0.1.28 MF

Status / change log
- Sector-mapped virtual drive is not supported.
v0.0.1.30
- Added: boot option indicates that the virtual drive is required for booting.
v0.0.1.28
- Added: Read options from GRUB4DOS RAM drive.
v0.0.1.26
- Fixed: CD-ROM emulation in Windows 7.
- Fixed: BSOD when unloaded.
- Added: Allow disabling detection of GRUB4DOS and Memdisk by settings in registry.
- File-backed virtual drive "cdrom,file=..." does not work in Windows XP-2003 text-mode setup. But "cdrom,vmem=..." works.
v0.0.1.24
- Find disk image file without knowing drive letter of backing drive. ( use find:\ instead of <drive letter>:\ )
v0.0.1.22
- It is possible to boot Windows XP in disk image file.
v0.0.1.20
- Detect MEMDISK (v3.86) RAM drive.
- Test SSE2 memory copy code.
v0.0.1.16
- Fix: Slow transfer speed of RAM drive.
- Bug: Cannot boot Windows XP setup from RAM CD-ROM.
v0.0.1.12
- Fix: Windows Server 2003 compatibility.
- Fix: Can read hexadecimal number (0x12345678) in boot option parameters.
v0.0.1.10
- Virtual floppy disk drive.
- New "physicalmemory" boot option keyword.
- Bug: Cannot read hexadecimal number in boot option parameters.
v0.0.1.8
- File-based drives can be created using /firadisk boot.ini option.
- Fix: Detection of GRUB4DOS' RAM CD-ROM.
v0.0.1.6
- Bug: Incorrect detection of size and address of GRUB4DOS' RAM CD-ROM.
v0.0.1.4
- Support multiple virtual drive.
- Support CD-ROM ISO loaded with GRUB4DOS.
- No floppy drive emulation. Floppy disk image mapped to (fdx) will appear to be removable disk.
v0.0.1.0
- Support 1 virtual hard drive that has been loaded with GRUB4DOS's map --mem command.
- Windows XP can run from virtual hard drive in RAM.

Planned features in future versions:
- Add/remove drives from CLI or GUI.

Configuration
  • Registry
    • key HKLM\SYSTEM\CurrentControlSet\Control\FiraDisk
      • value StartOptions type REG_SZ
        data = list of drive description to create separated by semicolon.
        Example: disk,vmem=find:\file1.img;cdrom,vmem=find:\file2.iso;floppy,vmem=c:\file3.img;disk,vmem=c:\file4.img,size=1052835840
        There are 3 types of virtual drive : disk, cdrom, floppy
        There are 3 main types of media/image :

        file=path : File read/write.
        vmem=path : Memory mapped file.
        vmem without path : Allocate from virtual memory (RAM+pagefile).

        Optional parameters

        offset=number
        size=number
        heads=number
        sectors-per-track=number
        ro : read-only
        boot : indicate that the virtual drive is required for booting Windows.

        If file does not exist and size is specified, new file will be created.
        If file exists but is smaller than offset+size, it will be extended.
      • value DisableDetectGrub4dos type REG_DWORD
      • value DisableDetectMemdisk type REG_DWORD
      • value DisableDetectedRAMDrives type REG_DWORD
        0=enable 1=disable
    • key HKLM\SYSTEM\CurrentControlSet\services\FiraDisk\Parameters
      • value StartOptions same format as above.
        You can write to this value at first stage of Windows XP setup by using TXTSETUP.OEM section [Config.FiraDisk].
      • value PnP type REG_DWORD
        0=Create new FiraDisk Enumerator device at startup. 1=Don't create new FiraDisk Enumerator device.
  • GRUB4DOS RAM drive
    Create a small RAM drive with drive number between 0-127 and write FiraDisk options to it.
    Begin with [FiraDisk] (case insensitive)
    followed by \n
    then StartOptions=data\n
    and end with \0.
    Backslash is escape character in write command.
    You can use / instead of \ in data field. When FiraDisk read this data, it will convert / to \ automatically.
    Example:
    map --mem (md)0x800+4 (99)
    
    map --hook
    
    write (99) [FiraDisk]\nStartOptions=cdrom,vmem=find:/file1.iso;floppy,vmem=find:/file2.img;\n\0
    
    

Firadisk driver installation instruction for Windows XP
Spoiler


Test FiraDisk with GRUB4DOS mem drive (non-boot drive)
Spoiler


Test FiraDisk with GRUB4DOS mem drive as boot drive
Spoiler


How to create/mount raw disk image with FiraDisk 0.0.1.12 (updated 2009-09-30)
Not very convenient though.
Spoiler


How to clone Windows XP by copying files to different disk (or image)
Spoiler

  • liuzhaoyzz and At1ant like this

#2 joakim

joakim

    Silver Member

  • Team Reboot
  • 912 posts
  • Location:Bergen
  •  
    Norway

Posted 22 August 2009 - 12:58 PM

Wow, very impressive.

:) :D :cheers:

Just booted xp from a ramdisk image at 2,3Gb, completely diskless!!

Next thing is to figure out how to make PE boot from it. Do you know what is required entries in txtsetup.sif?

Joakim

#3 joakim

joakim

    Silver Member

  • Team Reboot
  • 912 posts
  • Location:Bergen
  •  
    Norway

Posted 22 August 2009 - 02:27 PM

Even better, it now also works in PE-mode.

I just booted moa from a 550 Mb image. I'll be back with the details when sorted out.

Joakim

#4 joakim

joakim

    Silver Member

  • Team Reboot
  • 912 posts
  • Location:Bergen
  •  
    Norway

Posted 22 August 2009 - 02:44 PM

PE-mode requires adding this to txtsetup.sif;

&#91;SCSI.Load&#93;

firadisk=firadisk.sys,4

and applying this registry patch to setupreg.hiv;

Windows Registry Editor Version 5.00





&#91;HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4D36E97B-E325-11CE-BFC1-08002BE10318}&#92;&#48;001&#93;

&#34;DriverDate&#34;=&#34;7-12-2009&#34;

&#34;DriverDateData&#34;=hex&#40;03&#41;&#58;00,40,f7,b2,83,02,ca,01

&#34;DriverDesc&#34;=&#34;FiraDisk Virtual Disk Enumerator&#34;

&#34;DriverVersion&#34;=&#34;0.0.0.1&#34;

&#34;InfPath&#34;=&#34;oem7.inf&#34;

&#34;InfSection&#34;=&#34;FiraDiskDevice&#34;

&#34;InfSectionExt&#34;=&#34;.NTx86&#34;

&#34;MatchingDeviceId&#34;=&#34;root\\firadisk&#34;

&#34;ProviderName&#34;=&#34;Karyonix&#34;



&#91;HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\CriticalDeviceDatabase\root#firadisk&#93;

&#34;ClassGUID&#34;=&#34;{4D36E97B-E325-11CE-BFC1-08002BE10318}&#34;

&#34;Service&#34;=&#34;firadisk&#34;



&#91;HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\GroupOrderList&#93;

&#34;SCSI Miniport&#34;=hex&#40;03&#41;&#58;41,00,00,00,00,01,00,00,01,01,00,00,19,00,00,00,01,\

  00,00,00,02,00,00,00,03,00,00,00,04,00,00,00,05,00,00,00,06,00,00,00,07,00,\

  00,00,08,00,00,00,09,00,00,00,0a,00,00,00,0b,00,00,00,0c,00,00,00,0d,00,00,\

  00,0e,00,00,00,0f,00,00,00,10,00,00,00,11,00,00,00,12,00,00,00,13,00,00,00,\

  14,00,00,00,15,00,00,00,16,00,00,00,17,00,00,00,1a,00,00,00,18,00,00,00,1b,\

  00,00,00,1c,00,00,00,1d,00,00,00,1e,00,00,00,1f,00,00,00,20,00,00,00,23,00,\

  00,00,24,00,00,00,25,00,00,00,26,00,00,00,27,00,00,00,28,00,00,00,29,00,00,\

  00,2a,00,00,00,2b,00,00,00,2c,00,00,00,2d,00,00,00,2e,00,00,00,2f,00,00,00,\

  30,00,00,00,31,00,00,00,32,00,00,00,33,00,00,00,34,00,00,00,35,00,00,00,36,\

  00,00,00,37,00,00,00,38,00,00,00,39,00,00,00,3a,00,00,00,3b,00,00,00,3c,00,\

  00,00,3d,00,00,00,3e,00,00,00,3f,00,00,00,21,00,00,00,22,00,00,00



&#91;HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Enum\Root\LEGACY_FASTFAT&#92;&#48;000\Control&#93;

&#34;ActiveService&#34;=&#34;Fastfat&#34;



&#91;HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Enum\Root\SCSIADAPTER&#92;&#48;000&#93;

&#34;Capabilities&#34;=dword&#58;00000000

&#34;Class&#34;=&#34;SCSIAdapter&#34;

&#34;ClassGUID&#34;=&#34;{4D36E97B-E325-11CE-BFC1-08002BE10318}&#34;

&#34;ConfigFlags&#34;=dword&#58;00000004

&#34;DeviceDesc&#34;=&#34;FiraDisk Virtual Disk Enumerator&#34;

&#34;Driver&#34;=&#34;{4D36E97B-E325-11CE-BFC1-08002BE10318}\&#92;&#48;001&#34;

&#34;HardwareID&#34;=hex&#40;07&#41;&#58;72,00,6f,00,6f,00,74,00,5c,00,66,00,69,00,72,00,61,00,\

  64,00,69,00,73,00,6b,00,00,00,00,00

&#34;Mfg&#34;=&#34;Karyonix&#34;

&#34;Service&#34;=&#34;firadisk&#34;



&#91;HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Enum\Root\SCSIADAPTER&#92;&#48;000\Control&#93;

&#34;ActiveService&#34;=&#34;firadisk&#34;



&#91;HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Enum\Root\SCSIADAPTER&#92;&#48;000\LogConf&#93;

&#91;HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\firadisk&#93;

&#34;DisplayName&#34;=&#34;FiraDisk Virtual Disk Driver&#34;

&#34;ErrorControl&#34;=dword&#58;00000001

&#34;Group&#34;=&#34;SCSI miniport&#34;

&#34;ImagePath&#34;=&#34;\\??\\X&#58;\\I386\\SYSTEM32\\DRIVERS\\firadisk.sys&#34;

&#34;Start&#34;=dword&#58;00000000

&#34;Tag&#34;=dword&#58;00000022

&#34;Type&#34;=dword&#58;00000001



&#91;HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\firadisk\Enum&#93;

&#34;0&#34;=&#34;ROOT\\SCSIADAPTER\&#92;&#48;000&#34;

&#34;Count&#34;=dword&#58;00000001

&#34;NextInstance&#34;=dword&#58;00000001



&#91;HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\firadisk\Security&#93;

&#34;Security&#34;=hex&#40;03&#41;&#58;01,00,14,80,90,00,00,00,9c,00,00,00,14,00,00,00,30,00,00,\

  00,02,00,1c,00,01,00,00,00,02,80,14,00,ff,01,0f,00,01,01,00,00,00,00,00,01,\

  00,00,00,00,02,00,60,00,04,00,00,00,00,00,14,00,fd,01,02,00,01,01,00,00,00,\

  00,00,05,12,00,00,00,00,00,18,00,ff,01,0f,00,01,02,00,00,00,00,00,05,20,00,\

  00,00,20,02,00,00,00,00,14,00,8d,01,02,00,01,01,00,00,00,00,00,05,0b,00,00,\

  00,00,00,18,00,fd,01,02,00,01,02,00,00,00,00,00,05,20,00,00,00,23,02,00,00,\

  01,01,00,00,00,00,00,05,12,00,00,00,01,01,00,00,00,00,00,05,12,00,00,00

Joakim

#5 joakim

joakim

    Silver Member

  • Team Reboot
  • 912 posts
  • Location:Bergen
  •  
    Norway

Posted 22 August 2009 - 03:33 PM

Seriously, I believe one company just lost their business...

Joakim

#6 bilou_gateux

bilou_gateux

    Frequent Member

  • Expert
  • 230 posts
  •  
    France

Posted 22 August 2009 - 05:26 PM

Seriously, I believe one company just lost their business...

Joakim


I Think the Same Thought as You.
Nethertheless, i used a nice tool to create my initial raw disk:
Raw disk image creation using instructions posted in sanbarrow forum by joakim
Extreme ramloading over 600 Mb

- Make a raw disk image with makedsk.exe (makedsk.exe 640.dsk 649797120).

Joakim, what tool do you use now for initial creation of raw disk image?

I would like to say thank you to karyonix for spending time and effort to write the driver, starting the thread & taking the time to write a good How to and make driver available for free.

Please can Joakim or karyonix confirm image file must be contigous?

Before wiping my system partition and recreate a new contig image file (solved the issue), i had error:
Grub loads from boot.ini on c: drive (which is ntfs), but then fails to load hdd.img.
Error 15, File not found.

To mount the raw image and successfull creation of the partition and disk signature, i used
virtual storage driver, from Microsoft
e.g.,

vstorcontrol install -inf .\virtualstorage.inf
vstorcontrol create fixeddisk -image <PATH>\640.dsk
format <volume>: /FS:NTFS /V:SYSTEM /C /Q /A:512 /Y
vstorcontrol remove \\.\PhysicalDriveX


No need to use the tool from one company.

Firadisk driver installation instruction for Windows XP

Copied firadisk.inf to <path_to_offline_Windows_systemroot>\inf
Copied firadisk.sys to <path_to_offline_Windows_systemroot>\system32\drivers
Injected driver to my offline Windows install loaded SYSTEM hive as SYSTEM.SAV, e.g.,
Windows Registry Editor Version 5.00



&#91;HKEY_LOCAL_MACHINE\SYSTEM.SAV\ControlSet001\Control\CriticalDeviceDatabase\root#firadisk&#93;

&#34;Service&#34;=&#34;firadisk&#34;

&#34;ClassGUID&#34;=&#34;{4D36E97B-E325-11CE-BFC1-08002BE10318}&#34;



&#91;HKEY_LOCAL_MACHINE\SYSTEM.SAV\ControlSet001\Control\Class\{4D36E97B-E325-11CE-BFC1-08002BE10318}&#92;&#48;001&#93;

&#34;InfPath&#34;=&#34;firadisk.inf&#34;

&#34;InfSection&#34;=&#34;FiraDiskDevice&#34;

&#34;InfSectionExt&#34;=&#34;.NTx86&#34;

&#34;ProviderName&#34;=&#34;Karyonix&#34;

&#34;DriverDateData&#34;=hex&#58;00,40,f7,b2,83,02,ca,01

&#34;DriverDate&#34;=&#34;7-12-2009&#34;

&#34;DriverVersion&#34;=&#34;0.0.0.1&#34;

&#34;MatchingDeviceId&#34;=&#34;root\\firadisk&#34;

&#34;DriverDesc&#34;=&#34;FiraDisk Virtual Disk Enumerator&#34;



&#91;HKEY_LOCAL_MACHINE\SYSTEM.SAV\ControlSet001\Control\GroupOrderList&#93;

&#34;SCSI Class&#34;=hex&#58;04,00,00,00,01,00,00,00,02,00,00,00,03,00,00,00,04,00,00,00



&#91;HKEY_LOCAL_MACHINE\SYSTEM.SAV\ControlSet001\Enum\Root\SCSIADAPTER&#92;&#48;001&#93;

&#34;ClassGUID&#34;=&#34;{4D36E97B-E325-11CE-BFC1-08002BE10318}&#34;

&#34;Class&#34;=&#34;SCSIAdapter&#34;

&#34;HardwareID&#34;=hex&#40;7&#41;&#58;72,00,6f,00,6f,00,74,00,5c,00,66,00,69,00,72,00,61,00,64,\

  00,69,00,73,00,6b,00,00,00,00,00

&#34;Driver&#34;=&#34;{4D36E97B-E325-11CE-BFC1-08002BE10318}\&#92;&#48;001&#34;

&#34;Mfg&#34;=&#34;Karyonix&#34;

&#34;Service&#34;=&#34;firadisk&#34;

&#34;DeviceDesc&#34;=&#34;FiraDisk Virtual Disk Enumerator&#34;

&#34;ConfigFlags&#34;=dword&#58;00000000

&#34;Capabilities&#34;=dword&#58;00000000



&#91;HKEY_LOCAL_MACHINE\SYSTEM.SAV\ControlSet001\Enum\Root\SCSIADAPTER&#92;&#48;001\LogConf&#93;



&#91;HKEY_LOCAL_MACHINE\SYSTEM.SAV\ControlSet001\Enum\Root\SCSIADAPTER&#92;&#48;001\Control&#93;

&#34;ActiveService&#34;=&#34;firadisk&#34;



&#91;HKEY_LOCAL_MACHINE\SYSTEM.SAV\ControlSet001\Services\firadisk&#93;

&#34;Type&#34;=dword&#58;00000001

&#34;Start&#34;=dword&#58;00000000

&#34;ErrorControl&#34;=dword&#58;00000001

&#34;Tag&#34;=dword&#58;00000022

&#34;ImagePath&#34;=hex&#40;2&#41;&#58;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,66,00,69,00,72,00,61,00,64,00,69,\

  00,73,00,6b,00,2e,00,73,00,79,00,73,00,00,00

&#34;DisplayName&#34;=&#34;FiraDisk Virtual Disk Driver&#34;

&#34;Group&#34;=&#34;SCSI miniport&#34;



&#91;HKEY_LOCAL_MACHINE\SYSTEM.SAV\ControlSet001\Services\firadisk\Security&#93;

&#34;Security&#34;=hex&#58;01,00,14,80,90,00,00,00,9c,00,00,00,14,00,00,00,30,00,00,00,02,\

  00,1c,00,01,00,00,00,02,80,14,00,ff,01,0f,00,01,01,00,00,00,00,00,01,00,00,\

  00,00,02,00,60,00,04,00,00,00,00,00,14,00,fd,01,02,00,01,01,00,00,00,00,00,\

  05,12,00,00,00,00,00,18,00,ff,01,0f,00,01,02,00,00,00,00,00,05,20,00,00,00,\

  20,02,00,00,00,00,14,00,8d,01,02,00,01,01,00,00,00,00,00,05,0b,00,00,00,00,\

  00,18,00,fd,01,02,00,01,02,00,00,00,00,00,05,20,00,00,00,23,02,00,00,01,01,\

  00,00,00,00,00,05,12,00,00,00,01,01,00,00,00,00,00,05,12,00,00,00
may not work for anybody. Please notice i have an other SCSI device:
Microsoft iSCSI Initiator
HKEY_LOCAL_MACHINE\SYSTEM.SAV\ControlSet001\Enum\Root\SCSIADAPTER\0000
FiraDisk Virtual Disk Enumerator
HKEY_LOCAL_MACHINE\SYSTEM.SAV\ControlSet001\Enum\Root\SCSIADAPTER\0001

#7 joakim

joakim

    Silver Member

  • Team Reboot
  • 912 posts
  • Location:Bergen
  •  
    Norway

Posted 22 August 2009 - 08:41 PM

Joakim, what tool do you use now for initial creation of raw disk image?

I do it manually with the dsfok tools and vdk with the help of a spreadsheet; http://www.mediafire..._calculator.xls
But the best tool is probably jaclaz's mbrbatch tool. I have a collection of 5 ready disk images that was uploaded earlier; http://www.mediafire...eady_images.zip

Please can Joakim or karyonix confirm image file must be contigous?

I does not have to be contigous if used with "map --mem".

To mount the raw image and successfull creation of the partition and disk signature, i used
virtual storage driver, from Microsoft
e.g.,
No need to use the tool from one company.

Well, good to hear about other tools to use too. It's really just about being comfortable with a way that works.

Note, gzipping the images is recommended for several reasons.

may not work for anybody. Please notice i have an other SCSI device:
Microsoft iSCSI Initiator

I don't use such, so I have no idea. Someone else must supply working instructions for use with such setups. Did it work for you or not?

Joakim

#8 bilou_gateux

bilou_gateux

    Frequent Member

  • Expert
  • 230 posts
  •  
    France

Posted 22 August 2009 - 09:38 PM

Joakim


I do it manually with the dsfok tools and vdk with the help of a spreadsheet; http://www.mediafire..._calculator.xls
But the best tool is probably jaclaz's mbrbatch tool. I have a collection of 5 ready disk images that was uploaded earlier; http://www.mediafire...eady_images.zip

Nice, i will download Ready_images.zip

I does not have to be contigous if used with "map --mem".

OK, issue i had was may be something else (typo error?)

Well, good to hear about other tools to use too. It's really just about being comfortable with a way that works.

No GUI but very convenient for me.

Note, gzipping the images is recommended for several reasons.

Will try to GZip my hdd.img, now that you answered my question about contigous file.

I don't use such, so I have no idea. Someone else must supply working instructions for use with such setups. Did it work for you or not?

It was not a question but an alternative to both methods suggested by karyonix.
If someone try to past my reg file and inject it to offline SYSTEM hive, he won't get the attended result because i have Microsoft iSCSI Initiator installed on my Windows XP. Some edit to the reg would be necessary (replace all 0001 by 0000)


grub4dos question: the sample menu.lst listed below is from one company and i changed the titles to be more explicit. i have not tested it and would like to have some advices from advanced users.
hdd.img Partition 1 is a copy of Partition1 Windows XP install on internal drive (4 primary partitions).
Can i use this settings in menu.lst to hide Partition1 on the internal drive (disk signature CEF9D879) when i boot the Partition1 from hdd.img (disk signature 1D01D3CE)
title 1 -- reboot from Hard disk CEF9D879 ntldr

find --set-root /ntldr

unhide

chainloader /ntldr



title 2 -- boot Partition1 hdd.img 1D01D3CE to ram & hide Partition1 on hard disk CEF9D879

find --set-root /ntldr

hide

map --mem +1 &#40;hd0&#41;

map --hook

rootnoverify &#40;hd0,0&#41;

unhide

chainloader /ntldr



title 3 -- boot Partition1 hdd.img 1D01D3CE to ram & unhide Partition1 on hard disk CEF9D879

find --set-root /ntldr

unhide

map --mem +1 &#40;hd0&#41;

map --hook

rootnoverify &#40;hd0,0&#41;

unhide

chainloader /ntldr

Joakim, i want to achieve something similar as the tool you have written for VMware users: rawdisk_cmd

#9 joakim

joakim

    Silver Member

  • Team Reboot
  • 912 posts
  • Location:Bergen
  •  
    Norway

Posted 22 August 2009 - 10:27 PM

My menu.lst looks like this;

map --mem &#40;cd&#41;/2400.gz &#40;hd0&#41;

map --hook

root &#40;hd0,0&#41;

chainloader &#40;hd0,0&#41;/ntldr

The 2400.gz is a 2,2 Gb (2 393 556 480 byte) large disk image which is gzipped to 696 Mb and placed inside iso. It was running fine for almost 2 hours until I shut it down.

Note, running it in PE-mode will not require disk signature to be present in registry.

Joakim
  • Motasem likes this

#10 karyonix

karyonix

    Frequent Member

  • Advanced user
  • 481 posts
  •  
    Thailand

Posted 25 August 2009 - 06:49 AM

v0.0.1.4
- Support multiple virtual drive.
- Support CD-ROM ISO loaded with GRUB4DOS.
- No floppy drive emulation. Floppy disk image mapped to (fdx) will appear to be removable disk.

example menu.lst entry
title &#40;hd0,0&#41; &#40;hd32&#41;=guest.iso &#40;hd1&#41;=hdd1.img &#40;fd1&#41;=flop.img

root &#40;hd0,0&#41;

map --mem &#40;hd0,0&#41;/guest.iso &#40;hd32&#41;

map --mem &#40;hd0,0&#41;/hdd1.img &#40;hd1&#41;

map --mem &#40;hd0,0&#41;/flop.img &#40;fd1&#41;

chainloader +1


#11 joakim

joakim

    Silver Member

  • Team Reboot
  • 912 posts
  • Location:Bergen
  •  
    Norway

Posted 25 August 2009 - 07:32 AM

v0.0.1.4
- Support multiple virtual drive.

Sounds even better. :D

Do you know if that means it can handle unmanaged memory, like above the 3,2Gb rough limit.

Could it for instance be possible to map --mem the systemdrive (hd0) on 3Gb and a secondary image (hd1) with map --mem on say 1-3Gb?

Joakim

#12 cdob

cdob

    Gold Member

  • Expert
  • 1469 posts

Posted 25 August 2009 - 09:20 PM

@karyonix
I get with FiraDisk v0.0.1.4:

PE files loaded from real CD
# removable disk available

title Loading --mem PE I386/RAMdisk.ima

map --mem /I386/RAMdisk.ima &#40;fd1&#41;

chainloader /I386/SETUPLDR.BIN



# cd drive available

title Loading PE --mem o.iso

map --mem  /o.iso &#40;0xFF&#41;

chainloader /I386/SETUPLDR.BIN



# removable disk available and cd available

title Loading PE --mem o.iso I386/RAMdisk.ima

map --mem  /o.iso &#40;0xFF&#41; 

map --mem /I386/RAMdisk.ima &#40;fd1&#41;

chainloader /I386/SETUPLDR.BIN

And a XP PE does boot still
title mem Loading PE

map --mem /XPPE.ISO &#40;0xFF&#41;

map --hook

chainloader &#40;0xFF&#41;

I wonder: where are the limits?
Can I use grub4dos mapping without --mem ?
This won't be a RAMdisk anymore.

This get a nice BSOD 0x7b
title Loading PE

map /XPPE.ISO &#40;0xFF&#41;

map --hook

chainloader &#40;0xFF&#41;

I imagíne, in future you map real floppy images (e.g. 2880 sectors) to a floppy drive a:
One target: XP installation from a FiraDisk drive. And load F6 drivers from a virtual floppy a:

Continue the excellent work. Take your time.

#13 cdob

cdob

    Gold Member

  • Expert
  • 1469 posts

Posted 28 August 2009 - 08:00 AM

Contrary one CD containing a ISO image and two hard disk images
title mem Loading PE

find --set-root /BartPE.ISO

map --mem /BartPE.ISO &#40;0xFF&#41;

map --mem &#40;cd&#41;/hd16.img &#40;hd0&#41;

map --mem &#40;cd&#41;/hd25.img &#40;hd1&#41;

map --hook

chainloader &#40;0xFF&#41;/I386/SETUPLDR.BIN
PE does boot from ISO image. And both hard disk are available.
  • Motasem likes this

#14 karyonix

karyonix

    Frequent Member

  • Advanced user
  • 481 posts
  •  
    Thailand

Posted 28 August 2009 - 11:34 AM

I've found one of my mistakes.

From_drive is the virtual drive. To_drive is the real media for the virtual drive. If To_drive==0xff and bit14 of to_cylinder==0, then the mapping is for --mem.

From what tinybiy say, two condition must be met on drive map slots describing RAM drives.
Current version of Firadisk (0.0.1.4) thought the drive 0xFF is RAM drive without checking bit 14 of to_cylinder first.

#15 oriensol

oriensol

    Frequent Member

  • Advanced user
  • 216 posts
  •  
    India

Posted 28 August 2009 - 12:30 PM

Thanks a LOT for your driver.

Can you clarify if the latest version supports CD iso booting or if we should wait for the next version? Thanks.

#16 karyonix

karyonix

    Frequent Member

  • Advanced user
  • 481 posts
  •  
    Thailand

Posted 28 August 2009 - 04:07 PM

Please try this one.
http://www.mediafire...ver-0.0.1.6.zip
- Bug fix: It should not wrongly see CD-ROM drive 0xFF as RAM drive anymore.
- Add: boot.ini option for file disk. It is not bootable.
example:
/firadisk=disk,file=c:\hdd1.img
/firadisk=disk,file=c:\hdd3.img,size=32901120
- If there is no registry entry for firadisk enumerator device (such as Enum\Root\SCSIADAPTER\xxxx) when firadisk service start at boot time, it will create a new firadisk enumerator device. Its registry key will be Enum\Root\firadisk\0000.

EDIT: I forgot to write the keyword "file=".

#17 bilou_gateux

bilou_gateux

    Frequent Member

  • Expert
  • 230 posts
  •  
    France

Posted 28 August 2009 - 04:44 PM

I would like to update Windows installation offline with this new version.

I noticed a new setting in firadisk.inf

[MfaKaryonix.ntx86]
%FiraDiskDevice%=FiraDiskDevice, root\firadisk, detected\firadisk


Question: this setting is related to the new feature described in your post?

- If there is no registry entry for firadisk enumerator device (such as Enum\Root\SCSIADAPTER\xxxx) when firadisk service start at boot time, it will create a new firadisk enumerator device. Its registry key will be Enum\Root\firadisk\0000.


Using method 2 for installation to create a snapshot of driver install for later injection to offline registry hive
it's not required to run this command
devcon install firadisk.inf detected\firadisk

i searched with google to find infos about "detected" setting in registry keys but didn't find valuable information.

Will wait for your instructions before injecting new keys value and data to my system hive.

#18 karyonix

karyonix

    Frequent Member

  • Advanced user
  • 481 posts
  •  
    Thailand

Posted 28 August 2009 - 05:34 PM

method 3: Right-click the new firadisk.inf and select Install. And reboot.

If you install firadisk with method 1 (Add Hardware Wizard) or 2 (devcon), Windows will create registry key Enum\Root\SCSIADAPTER\0000 (or 0001 ...) for firadisk device.

If you install with method 3, only firadisk service is installed. No device key will be created until reboot. While booting, firadisk reports a new device. Windows assigns compatible IDs "detected..." to the new device (as described here). The registry key created by Windows for firadisk device is Enum\Root\firadisk\0000.

It seems it does not matter whether device registry key is Enum\Root\SCSIADAPTER\0000 or Enum\Root\firadisk\0000. FiraDisk work the same way.

In INF, hardware ID "root\firadisk" and compatible ID "detected\firadisk" is for installation and upgrading driver associated with firadisk device.

#19 bilou_gateux

bilou_gateux

    Frequent Member

  • Expert
  • 230 posts
  •  
    France

Posted 28 August 2009 - 06:13 PM

Just installed the new version only by replacing files:
binary %SystemRoot%\system32\drivers\firadisk.sys
inf file %SystemRoot%\inf\firadisk.inf

and changed version info with offline injection of new data values

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM.SAV\ControlSet001\Control\Class\{4D36E97B-E325-11CE-BFC1-08002BE10318}\0001]
"InfPath"="firadisk.inf"
"InfSection"="FiraDiskDevice"
"InfSectionExt"=".NTx86"
"ProviderName"="Karyonix"
"DriverDateData"=hex:00,80,61,7c,72,27,ca,01
"DriverDate"="8-28-2009"
"DriverVersion"="0.0.1.6"

"MatchingDeviceId"="root\\firadisk"
"DriverDesc"="FiraDisk Virtual Disk Enumerator"


Created a new 64 Mb hdd1.img, edited boot.ini (inside main 640 Mb hdd.img containing Windows XP install) and boot successfully.

now i have 2 new disks drives listed in device manager. FriendlyName are "File Disk" and "RAM Disk" instead of single FriendlyName "Virtual Disk" with firadisk 0.0.1.0

A suggestion could you use ARCpath for setting the File disk
/firadisk=disk,file=multi&#40;0&#41;disk&#40;0&#41;rdisk&#40;0&#41;partition&#40;4&#41;\hdd1.img


the bad news: new version crashed my Windows install when i tried to install another commercial Superspeed RamDisk Secure 8.0.4 (digitally signed driver that pass Microsoft WHQL tests) and very stable (never crashed before with this driver) and now hdd.img image content is messed up.

[EDIT]
now restored from backup. back to firadisk 0.0.1.0

Edited by bilou_gateux, 28 August 2009 - 08:59 PM.


#20 dog

dog

    Frequent Member

  • Expert
  • 236 posts

Posted 28 August 2009 - 09:14 PM

Another success report - full xp 1200MB using driver 0.0.0.1
Thanks! :frusty:

What's a good way to grab an image of a partition with track0?
For this test I ran dsfo on the whole drive and used ctrl-c, but I'd imagine there's a cleaner way...

#21 Sha0

Sha0

    WinVBlock Dev

  • Developer
  • 1682 posts
  • Location:reboot.pro Forums
  • Interests:Booting
  •  
    Canada

Posted 29 August 2009 - 01:37 AM

What's a good way to grab an image of a partition with track0?
For this test I ran dsfo on the whole drive and used ctrl-c, but I'd imagine there's a cleaner way...

I like DD for Windows by John Newbigin. A partition can be gotten with
c&#58;\>dd if=\\.\e&#58; of=e_drive.ntfs count=XXX
where XXX is the partition's size, in 512-byte sectors. If you have the good fortune that there is nothing between track 0 and this partition, then you can simply grab the first track with
c&#58;\>dd if=\\.\physicaldriveX of=track0.bin count=YYY
where X corresponds to the physical drive's number (you can find this out with TinyHexer, WinObj, others) and YYY's most common value is 63 sectors-per-track. You'd have to verify these parameters, perhaps by using BeebleBroxNT or some other utility. Then you could concatenate track 0 with your partition image OR

If you have the good fortune (as before) to simply have track 0, then partition, simply add the count for sectors-per-track for track 0 with the sectors-per-your-partition. Then you could
c&#58;\>dd if=\\.\PhysicalDriveX of=e_drive_with_mbr.hdd count=YYY
where YYY would be this calculated sum, such as 63 + partition_sector_count.

- Sha0

#22 oriensol

oriensol

    Frequent Member

  • Advanced user
  • 216 posts
  •  
    India

Posted 29 August 2009 - 08:48 AM

Hi Karyonix,

When I use the following menu.lst (after installing the 0.0.1.6 version, using Method 3 - inf install and reboot) in Windows XP:

title Windows XP

map --mem &#40;hd1,0&#41;/LiveXP.iso &#40;0xFF&#41;

map --hook

chainloader /ntldr

boot

I see that the size of the CD Rom drive in Windows is 515MB, nothing is readable within the cd. The actual size of the cd is 128 MB. Name in Device Manager is RAM CD-ROM Drive. In Disk Management, shown as 515 MB. In properties, file system is shown as RAW with used and free space as 0 bytes.

Something doesn't seem right. How is the CD iso mapping supposed to look within windows?

#23 was_jaclaz

was_jaclaz

    Finder

  • Advanced user
  • 7101 posts
  • Location:Gone in the mist
  •  
    Italy

Posted 29 August 2009 - 09:03 AM

Another success report - full xp 1200MB using driver 0.0.0.1
Thanks! :ermm:

What's a good way to grab an image of a partition with track0?
For this test I ran dsfo on the whole drive and used ctrl-c, but I'd imagine there's a cleaner way...


If it's the first partition on a hard disk (and that it has drive letter F:\:

Three step process:
1. dsfo \\.\PhysicaldriveN 0 32256 C:\myhidden.img <-this will save your "track 0", actually MBR + 62 hidden sectors, presuming, that like 99% of drives it is a nx255x63 or nx16x63 geometry
2. dsfo \\.\F: 0 0 C:\mypart.img

3. dsfi C:\myhidden.img e 0 C:\mypart.img
OR:
3. copy /b C:\myhidden.img + C:\mypart.img C:\myfull.img

the above will need TWICE the size of the partition as temporary space

The "smart" way :ermm::
dsfo \\.\F: 0 0 nul
You'll have an output like:

OK, 526417920 bytes, 23.480s, MD5 = 786a48c5db7548a6bf34cb945b62ae75


Jolt down thew exact size of the partition, 526417920 in this example.

Sum to it the hidden sectors (1x63x512=32256):
526417920+32256=526450176

then:
dsfo \\.\PhysicaldriveN 0 526450176 C:\myfull.img

:frusty:

jaclaz

#24 karyonix

karyonix

    Frequent Member

  • Advanced user
  • 481 posts
  •  
    Thailand

Posted 01 September 2009 - 10:06 AM

I see that the size of the CD Rom drive in Windows is 515MB, nothing is readable within the cd. The actual size of the cd is 128 MB. Name in Device Manager is RAM CD-ROM Drive. In Disk Management, shown as 515 MB. In properties, file system is shown as RAW with used and free space as 0 bytes.

Something doesn't seem right. How is the CD iso mapping supposed to look within windows?

It is supposed to be the same size as ISO (128 MB).
While I corrected errornous detection of CD 0xFF as RAM drive, I made another mistake in FiraDisk 0.0.1.6 causing it to calculate address and size of RAM CD-ROM incorrectly.

In previous 3-4 days, after fixing the mentioned bug, I changed some data structure of FiraDisk to better support creating drive from /firadisk boot.ini option. But when I tested it, Disk Management did not recognize modified FiraDisk's drive anymore, including RAM disk. I cannot find what was wrong, so I think I had to roll back to 0.0.1.6 and work from there again.
I will release a new version that have RAM CD-ROM bug fixed today even though /firadisk boot.ini option is still not working very well now.
---

To avoid GRUB4DOS' warning, use whole disk image size that is multiple of cylinder size (default 255*63*512 = 8225280 bytes). However, if disk image is uninitialized (no MBR code, no partition) or have MBR but does not have any formatted partition, GRUB4DOS will think it is partition image and add 1 track automatically (usually 63 secters) increasing disk size, and result in warning message.

#25 was_jaclaz

was_jaclaz

    Finder

  • Advanced user
  • 7101 posts
  • Location:Gone in the mist
  •  
    Italy

Posted 01 September 2009 - 11:03 AM

However, if disk image is uninitialized (no MBR code, no partition) or have MBR but does not have any formatted partition, GRUB4DOS will think it is partition image and add 1 track automatically (usually 63 secters) increasing disk size, and result in warning message.


I know I am picky ;).
but I guess this:

or have MBR but does not have any formatted partition

would be more accurate as:

or have MBR but does not have any formatted valid partition entry in it

:whistling:

:P

jaclaz




0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users