Jump to content











Photo

Run Windows 7 from RamDisk

ramdisk grub4dos firadisk windows 7 vhd

  • Please log in to reply
93 replies to this topic

#76 karyonix

karyonix

    Frequent Member

  • Advanced user
  • 481 posts
  •  
    Thailand

Posted 19 April 2018 - 06:05 PM

@agni

Windows 7 32-bit just does not allocate and does not use RAM above 4GB address.

Drivers on Windows 7 32-bit can read and write above 4GB address.

 

If you map 3.9GB, it can be allocated below 4GB address, so the remaining available RAM below 4GB address is too small.

You may try adding "--top" option to your "map --mem" command for 3.9GB disk image. This tells GRUB4DOS to allocate at highest available address.

Virtual disk size >= 4GB should not have this problem because it will not fit in lower region.

You can read size of available memory range in GRUB4DOS by using displaymem command. It is displayed in hexadecimal.

The biggest block can be "slightly" larger than (total RAM - 4 GB) if your motherboard support "memory remap" and it is enabled in BIOS.

I think max size of virtual disk (in VHD) that can be loaded in contiguous memory space is ((size of biggest available block above 4GB address) - 1MB).

 

@gbrao

from #65

  Usable RAM: Base: 0x100000000, Length: 0x11F600000

0x100000000 = 4GB

0x11F600000 = 4598MB

Max virtual disk size that can be loaded on this machine is approximately 4597MB (which is slightly less than 4.5GB).



#77 tinybit

tinybit

    Gold Member

  • Developer
  • 1175 posts
  •  
    China

Posted 19 April 2018 - 11:58 PM

The connotative meaning of --top has changed since last year.

 

With newer versions (of grub4dos 0.4.6 series), --top is now a switch for "enable memory blocks above 4GB physical address". And "map" will always find (look for) blocks from top to bottom. Without --top, map only find blocks below 4G address limit (i.e., 32-bit address limit). With --top, map can find all blocks, including blocks above the 4G limit.

 

This change is made basically for WinVblock. Note that WinVblock does not support blocks above 4G limit. Also note that yes, firadisk does support blocks above 4G limit.



#78 gbrao

gbrao

    Frequent Member

  • Advanced user
  • 474 posts
  •  
    India

Posted 20 April 2018 - 02:37 AM

@ agni i read in your post:

 

http://reboot.pro/to...e-4#entry201388

 

That you wrote:

 

 

I do not know if you run into a limitation of VHD_W7_Compact but you can create a 3900MB VHD (32 bit Win 7 OS) on a comp with 8GB of ram.

 

I made a 12 GB .vhd (32 bit Win 7 OS) copied to ram on a comp that has 16 gb of ram.

...

 

After reading that I too made a Win7 32b in a 4.25GB VHD. It boots and runs OK from memory.

edit : I'm using the PAE patch.

 

From the displaymem command (post #65) what I understood:

- the vhd can load only above the memory hole.

- the vhd is not (always) loaded at the lowest memory - rather it is loaded at the first block on memory large enuf to hold the vhd.

- windows 32b is somehow able to map the addresses above 4GB so that 32b programs run OK.

 

But after reading posts by karyonix and tinybit, it looks like I'm wrong.

 

EDIT : Also since the lower memory (below the memory hole) is not used to load the vhd (see #65), maybe after windows starts running the free memory it sees and uses is that lower memory (it will be below 4GB).



#79 agni

agni

    Frequent Member

  • Tutorial Writer
  • 270 posts
  • Location:Bengaluru (Bangalore)
  •  
    India

Posted 20 April 2018 - 09:11 AM

@agni

Windows 7 32-bit just does not allocate and does not use RAM above 4GB address.

Drivers on Windows 7 32-bit can read and write above 4GB address.

 

If you map 3.9GB, it can be allocated below 4GB address, so the remaining available RAM below 4GB address is too small.

You may try adding "--top" option to your "map --mem" command for 3.9GB disk image. This tells GRUB4DOS to allocate at highest available address.

Virtual disk size >= 4GB should not have this problem because it will not fit in lower region.

You can read size of available memory range in GRUB4DOS by using displaymem command. It is displayed in hexadecimal.

The biggest block can be "slightly" larger than (total RAM - 4 GB) if your motherboard support "memory remap" and it is enabled in BIOS.

I think max size of virtual disk (in VHD) that can be loaded in contiguous memory space is ((size of biggest available block above 4GB address) - 1MB).

 

@gbrao

from #65

  Usable RAM: Base: 0x100000000, Length: 0x11F600000

0x100000000 = 4GB

0x11F600000 = 4598MB

Max virtual disk size that can be loaded on this machine is approximately 4597MB (which is slightly less than 4.5GB).

 

Thanks. This helps.

 

Attached is the displaymem on my computer (total RAM of 8GB). I did two trials

  1. Boot the 3900 MB VHD - Win7HomePremium 32bit with the default Product Policy settings (i.e no PAE patch or hack to access memory beyond 4GB) and the available RAM was 2.48GB
  2. Boot the 3900 MB VHD - Win7HomePremium 32bit with the Product Policy Edit and the available RAM was 3.4GB

 

The top flag does not seem to have any effect. Looking the output of the display mem, the only slot available seems to be

Usable RAM: Base: 0x100000000, Length: 0x12F000000 which corresponds 4848MB

 

Now, Its not very clear to me as to how there is a difference in the amount of available RAM in the two trials.

The difference seems to be from the extra RAM = 4848-3900 = 948MB., which implies 2.48GB+948MB = ~3.4GB

 

Is there a way to check in Windows the memory address ranges where Grub4Dos loads the VHD ?

 

I also looked at this thread - http://reboot.pro/to...half-of-my-ram/

 

Steve's comments there indicate towards System Board in device manager. How do i interpret them ?

Attached Files



#80 tinybit

tinybit

    Gold Member

  • Developer
  • 1175 posts
  •  
    China

Posted 20 April 2018 - 10:14 AM

Thanks. This helps.

 

Attached is the displaymem on my computer (total RAM of 8GB). I did two trials

  1. Boot the 3900 MB VHD - Win7HomePremium 32bit with the default Product Policy settings (i.e no PAE patch or hack to access memory beyond 4GB) and the available RAM was 2.48GB
  2. Boot the 3900 MB VHD - Win7HomePremium 32bit with the Product Policy Edit and the available RAM was 3.4GB

 

The top flag does not seem to have any effect. Looking the output of the display mem, the only slot available seems to be

Usable RAM: Base: 0x100000000, Length: 0x12F000000 which corresponds 4848MB

 

Now, Its not very clear to me as to how there is a difference in the amount of available RAM in the two trials.

The difference seems to be from the extra RAM = 4848-3900 = 948MB., which implies 2.48GB+948MB = ~3.4GB

 

Is there a way to check in Windows the memory address ranges where Grub4Dos loads the VHD ?

 

I also looked at this thread - http://reboot.pro/to...half-of-my-ram/

 

Steve's comments there indicate towards System Board in device manager. How do i interpret them ?

 

If you use a newer grub4dos version in 2018, you have to use the --top option, or else map will fail because there is no suitable blocks below the 4G address limit.



#81 agni

agni

    Frequent Member

  • Tutorial Writer
  • 270 posts
  • Location:Bengaluru (Bangalore)
  •  
    India

Posted 20 April 2018 - 05:30 PM

Thanks.

 

I have a computer running Windows 8.1 in UEFI mode and I would like to use this computer as well to boot Windows 7 from Ramdisk.

 

As far as I know, Grub4dos does not work on UEFI and hence Ram booting from FIradisk is not possible.

 

Any ideas or clues on how to boot and run Windows 7 from RAM on a system with UEFI enabled ?



#82 alacran

alacran

    Platinum Member

  • .script developer
  • 2710 posts
  •  
    Mexico

Posted 20 April 2018 - 09:23 PM

Using BootIce you can edit UEFI BCD to boot a VHD or a boot.wim, so try this approach.



#83 agni

agni

    Frequent Member

  • Tutorial Writer
  • 270 posts
  • Location:Bengaluru (Bangalore)
  •  
    India

Posted 21 April 2018 - 05:32 AM

Using BootIce you can edit UEFI BCD to boot a VHD or a boot.wim, so try this approach.

Any post or tutorial on this ? From what I understand, I need to capture the installed Windows 7 to a wim file which can then be booted from RAM (without Firadisk/Grub4Dos) by adding an entry in the UEFI BCD.

 

For now I am looking at these topics

http://reboot.pro/to...npe-31-wimboot/

http://reboot.pro/to...e-7#entry204121

 

http://chenall.net/p...ndows7_wimboot/(Google translate is not very clear though)



#84 alacran

alacran

    Platinum Member

  • .script developer
  • 2710 posts
  •  
    Mexico

Posted 21 April 2018 - 07:39 PM

Those links you are posting are for Windows wimboot wich is booting from a compressed (.wim or .esd) image using wofadk.sys, first used on 8.1 update 1, but using WinNTSetup can be also applied to win7. You are not booting in RAM, you are booting an instaled OS (on a partition or a VHD) that has almost all its content as links to the image (.wim or .esd) contained somewhere on your (internal or external) HD, this approach has the tendency to grow up a lot, every time you add something, as all added is not compacted + the size of the original image (.wim or .esd).

 

Another approach is make an small VHD NTFS compressed wich will not grow up so much as all you add will be also NTFS compresed. I think this is more convenient, in fact I have a W864ESP1.vhd (expandable) wich is 3.90 GB, including SoftMaker Office 2016.

 

I suggest you to use Win7 ultimate or Win8.1U1 (both do not require Firadisk), and can boot directly from windows BCD.

 

Take a look to this: http://reboot.pro/fi...ct-make-mini-7/

and this: http://reboot.pro/fi...ct-make-mini-8/



#85 agni

agni

    Frequent Member

  • Tutorial Writer
  • 270 posts
  • Location:Bengaluru (Bangalore)
  •  
    India

Posted 22 April 2018 - 05:19 AM

Thanks @alacran.

 

 

Another approach is make an small VHD NTFS compressed wich will not grow up so much as all you add will be also NTFS compresed. I think this is more convenient, in fact I have a W864ESP1.vhd (expandable) wich is 3.90 GB, including SoftMaker Office 2016.

 

I suggest you to use Win7 ultimate or Win8.1U1 (both do not require Firadisk), and can boot directly from windows BCD.

 

Take a look to this: http://reboot.pro/fi...ct-make-mini-7/

and this: http://reboot.pro/fi...ct-make-mini-8/

Does your W864ESP1.vhd boot from RAM or are you referring to the regular native VHD boot ?



#86 Blackcrack

Blackcrack

    Frequent Member

  • Advanced user
  • 458 posts
  •  
    Germany

Posted 22 April 2018 - 07:02 AM

Ok i am not a great video shooter but here you can see it boot from start to end:

https://youtu.be/Art7gIXAWMI


how long need the boot ? over 2 minutes to move in the ram.. holy crying cat ..
but it works.. compliment ! (crazy!) with XP could it be faster *giggle*
*fad thumps up* x2
 
best regards
Blacky
  • blackbalfur likes this

#87 alacran

alacran

    Platinum Member

  • .script developer
  • 2710 posts
  •  
    Mexico

Posted 22 April 2018 - 06:16 PM

Thanks @alacran.

 

 

Does your W864ESP1.vhd boot from RAM or are you referring to the regular native VHD boot ?

 

It is native VHD boot, wich is booting faster than RAM boot and also aloud me to install ClassicShell, FireFox, drivers, etc., if required, and I keep as backup a Ghost image (2.33 GB) from unmodified VHD wich can be cloned/deployed anywhere and any time if required.  I also have W764ESP1.vhd size 3.80 GB, but 8.1 has some advantages in new hardware as native USB 3.0

And XP (this is Firadisk and grub4dos bootable), but from XP vhd only keept the Ghost image just in case I need it some day.

 

My VHD's are MBR formated not GPT, so for booting in UEFI machines I disable segure boot and enable csm boot.

 

I added some images of BCD (BootIce easy mode) to let you see how is BCD for each one (7 & 8.1).

 

I think to make this VHD's RAM bootables only thing required is SDI File for each one, and change BCD to RAM Boot. But so far haven't try this as I prefer native boot wich is faster and keep changes.

 

Alacran

Attached Files



#88 agni

agni

    Frequent Member

  • Tutorial Writer
  • 270 posts
  • Location:Bengaluru (Bangalore)
  •  
    India

Posted 22 April 2018 - 06:53 PM

Thanks Alacran.

 

I am looking for a solution where I have two boot menu options for the same Win 7 VHD file (One for native VHD boot and the other for RAM boot )

I have accomplished this on a computer running Windows 7 on a MBR disk with UEFI disabled.

 

What I am looking for is a similar solution, except that in this case the other computer is running Win 8.1 in UEFI with secure boot. Turning off Secure boot or UEFI is not an option; hence RAM booting using Grub4dos and FIradisk is not possible.

 

I will look into the SDI file and BCD Ram boot approach. Any more pointers on the SDI file approach will be helpful.



#89 alacran

alacran

    Platinum Member

  • .script developer
  • 2710 posts
  •  
    Mexico

Posted 23 April 2018 - 08:08 PM

Well let me tell you something my friend, I don't think you can find a way to avoid turning off Secure boot. I have several years looking for it and haven't found it yet.

 

I want just to remember you when UEFI booting you need to edit the UEFI BCD.



#90 blackbalfur

blackbalfur

    Member

  • Members
  • 82 posts
  •  
    Netherlands

Posted 27 April 2018 - 03:11 PM

Just want you guys to know that windows 8.1x86  also works.

 

The only strange thing is it does not show the succesfully installed ramdisk.

 

It does not give a notification it just works it also means that it doesn't ask you to reboot.

 

That is what i really like about it.

 

https://imgur.com/a/jIGFiqF

 

Ps. i made it a 12 GB ramdik version.


Edited by blackbalfur, 27 April 2018 - 03:13 PM.


#91 gbrao

gbrao

    Frequent Member

  • Advanced user
  • 474 posts
  •  
    India

Posted 30 April 2018 - 04:24 AM

The only strange thing is it does not show the succesfully installed ramdisk.

 

It does not give a notification it just works it also means that it doesn't ask you to reboot.

 

To avoid the reboot popup this is what I do.

Boot W7 from memory, run IMG_XP_Update.exe (I use the version from IMG_XP_74), select the VHD and only check "Total update including ...".

Restart and boot from filedisk, select "Boot normally" when asked, after booting delete folder Windows\ERDNT to save space. Defrag, maybe.

IMG_XP_74 is here, I think : http://reboot.pro/to...-and-windows-7/

 

Works for me.

 

Attached File  2018-04-30_094759.jpg   72.82KB   1 downloads

 

EDIT : Not sure of this : it worked with imdiskinst 1.8.4.exe installed, but not when imdiskinst 2.0.9.exe  was installed.



#92 Camiel

Camiel

    Member

  • Members
  • 43 posts

Posted 07 May 2018 - 12:37 PM

Ps. i made it a 12 GB ramdik version.

WofADK.sys can be used on Windows 7 so the vhd can be compressed with LZX that greatly reduces its size

Win 7 x64 booted from ram - Used space: 1,518,098,432 bytes


#93 blackbalfur

blackbalfur

    Member

  • Members
  • 82 posts
  •  
    Netherlands

Posted 15 October 2018 - 03:28 PM

 

WofADK.sys can be used on Windows 7 so the vhd can be compressed with LZX that greatly reduces its size

Win 7 x64 booted from ram - Used space: 1,518,098,432 bytes

 

The amount of space the os takes up on first boot is not in relation with the amount of space the os can take up in this setup.

 

My point was to prove you can make a 12 gb .vhd and load it into ram if you have 16 gb of ram.

 

So your ram os can have all kind of software installed to because of the 12 gb size.

 

 

GVyQBqz.jpg


Edited by blackbalfur, 15 October 2018 - 04:16 PM.


#94 tararubena

tararubena
  • Members
  • 1 posts
  •  
    United States

Posted 21 January 2020 - 09:19 AM

I am really happy to read your article, very accurate street view







Also tagged with one or more of these keywords: ramdisk, grub4dos, firadisk, windows 7, vhd

0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users