Boot W7 from RAMDISK
Just to assure you guys, I did try searching the forums to find any relvant info and nothing any more recent than 3-4 years.
I plan on building a PC with 32gb of RAM.
If steps such as the ones I outline are possible I was hoping that someone could reference me into the correct direction. I'm A+ certified and work as an IT so I don't need a spoonfeed, just some insight.
1. Boot into what I'm guessing would be some sort of small linux OS stored on a partitioned SSD.
2. Create a 16 - 20GB RAMDISK and move a stripped install of W7 to it.
3. Boot into the W7 OS and be able to use it as if it were a normal install (other than re-mapping certain folders to the SSD/RAID setup.
4. During a shutdown procedure rewrite the current RAMDISK back to the SSD.
Other notes: I plan on using a partitioned 256/512GB SSD for the initial startup OS, storing the W7 data when powered off, and program storage. As well as a 3 x 1TB RAID 5 for data storage. I also will have a UPS in place so I'm not worried about volatility.
Any help is hugely appreciated and when done I will thoroughly document it as I have yet to find any spoonfed type tutorial on the internet,
Sounds like a job for a Virtual Machine. You could create the ultra-small Win7 image as a virtual machine, then have a startup script that copies the VM files to a ramdisk then uses VMWare or OpenBox or whatever to launch it from there, then - on exit - copy the updated VM images back to the HDD or SSD.
You could set up the VM to use the ramdisk as a native partition, that'd be slightly more complicated in copying the partition over before starting and back after completion, but the VM definition would remain on your SSD.
Perhaps some testing/investigation around that might be helpful?
Makes sense, not sure why I didn't realize using a VM to make it easy, could you clarify what you mean in the "native partition" sentence though.
Also do you mind linking me to some docs related to creating the RAMDISK and linux scripts (as I sadly have no linux experience).
I'll probably test this with an HDD and an XP install soon to see how it goes (or just work on that stripped install and use 7 if you suggest it).
From what I've read a RAMDISK transfers anywhere from 1.0 - 3.5 GB/s (Guessing it depends on RAM Speed, which I'll be using DDR3 1866), I understand the noticable difference between this and the 3rd/4th gen SSD rate of around 550 MB/s will be minimal but it's a goal I'd like to achieve.
Thanks again, if I can help somehow, which I doubt, let me know.
Some Virtualisation systems allow you to use an empty partition as the system disk for the Virtual Machine. Instead of using a virtual disk in a file (or files) on the filesystem, it uses the partition as-is.
Mounting a ramdisk in linux is fairly straightforward. Try these commands:
Originally Posted by Aphotically
You may then write to the /ramdisk directory as a normal partition, but I/O will fly (by comparison to traditional hard disks anyway). try a dd command to get the thruput:
mkdir -p /ramdisk
mount -t tmpfs tmpfs /ramdisk
df -T /ramdisk
that will write an empty 100MB file to your /ramdisk (i.e., in memory). run the same dd command again, only write to a file on disk (e.g., of=$HOME/test.raw), to compare.
time dd if=/dev/zero of=/ramdisk/test.raw bs=102400 count=1024 conv=fdatasync
when you run the mount command, the size of the /ramdisk will automatically by sized to use half of your available memory, but will dynamically grow as needed (until it can grow no further). you may also specify the size at mount time. do "man mount" and look for Mount options for tmpfs to read up on the size= option.
you can put something like this in /etc/fstab, for persistent mounting across reboots:
tmpfs /ramdisk tmpfs user,auto 0 0