Jump to content











Photo
* * * * * 7 votes

FiraDisk (latest = 0.0.1.30)


  • Please log in to reply
630 replies to this topic

#626 liuzhaoyzz

liuzhaoyzz

    Member

  • Members
  • 51 posts
  •  
    China

Posted 24 April 2021 - 03:34 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

 

 

Karyonix,
The firadisk driver is suitable for XP/WIN2003/WIN7/WIN8/WIN10 started by BIOS. can you modify the firadisk driver so that it can work in 64-bit UEFI-WIN7/WIN8/WIN10?
 
Grub4dos_UEFI project (g4e) initiated by Yaya200777 in 2011 and grub2 project of wintoflash (alive)fork can be perfectly docked with svbus driver, and support 64-bit UEFI version of WIN7/WIN8/WIN10, so you can see the relevant codes of svbus.
 
The mapping slot used in the driver is still this
typedef struct _GRUB4DOS_DRIVE_MAP_SLOT
{
UCHAR from_drive;
UCHAR to_drive; // 0xFF indicates a memdrive
UCHAR max_head;
UCHAR max_sector:6;
UCHAR disable_lba:1; // bit 6: disable lba
UCHAR read_only:1; // bit 7: read only
USHORT to_cylinder:13; // max cylinder of the TO drive
USHORT from_cdrom:1; // bit 13: FROM drive is CDROM(with big 2048-byte sector)
USHORT to_cdrom:1; // bit 14:  TO  drive is CDROM(with big 2048-byte sector)
USHORT to_support_lba:1; // bit 15:  TO  drive support LBA
UCHAR to_head; // max head of the TO drive
UCHAR to_sector:6; // max sector of the TO drive
UCHAR fake_write:1; // bit 6: fake-write or safe-boot
UCHAR in_situ:1; // bit 7: in-situ
ULONGLONG start_sector;
ULONGLONG sector_count;
}GRUB4DOS_DRIVE_MAP_SLOT,*PGRUB4DOS_DRIVE_MAP_SLOT;
, and then hard-coded from_drive<0x80 is considered as a floppy disk, and > 0xA0 is considered as an optical disk
From to, all of them are still 8-digit
 
 
Or design a method that can transfer information with bootloader under uefi, such as uefi environment variables or acpi/smbios.
 
Related posts:
Grub4dosUEFI official website: http://grub4dos.chen...-4-6a-for-UEFI/
 
Grub2 modified by wintoflash(alive):
 
svbus:


#627 karyonix

karyonix

    Frequent Member

  • Advanced user
  • 481 posts
  •  
    Thailand

Posted 26 April 2021 - 10:47 AM

I have not tried Grub4dosUEFI. It may take a while to get used to it.

I don't think I will update Firadisk anytime soon.


  • liuzhaoyzz likes this

#628 liuzhaoyzz

liuzhaoyzz

    Member

  • Members
  • 51 posts
  •  
    China

Posted 26 April 2021 - 03:03 PM

I have not tried Grub4dosUEFI. It may take a while to get used to it.
I don't think I will update Firadisk anytime soon.

Thank you for your reply!
Wait until you have time and interest.

#629 liuzhaoyzz

liuzhaoyzz

    Member

  • Members
  • 51 posts
  •  
    China

Posted 27 April 2021 - 03:24 AM

https://liuzhaoyzz.l...i.com/b00oi2gri password:4wj3

 

 

2011yaya2007777,grub4dos_UEFI developer,modified the driver.c code,would you please compile it to firadisk.sys and firadi64.sys?

 

Thank you!



#630 liuzhaoyzz

liuzhaoyzz

    Member

  • Members
  • 51 posts
  •  
    China

Posted 27 April 2021 - 06:21 AM

The modified driver.c is hoped to work with g4e.



#631 liuzhaoyzz

liuzhaoyzz

    Member

  • Members
  • 51 posts
  •  
    China

Posted 27 April 2021 - 11:39 AM

I have not tried Grub4dosUEFI. It may take a while to get used to it.

I don't think I will update Firadisk anytime soon.

TestSignRootCA.reg,I have import the resgistry.

But it seems firadisk can't install rightly,maybe the signture work not so good.

I can sign it in win10,which installed and run well.

If you compile the modified driver,I can test it.


Edited by liuzhaoyzz, 27 April 2021 - 11:40 AM.





1 user(s) are reading this topic

0 members, 1 guests, 0 anonymous users