Help - Search - Members - Calendar
Full Version: Couple of quick questions about boot order
Boot Land > Projects > ImDisk
Garrett Serack
Howdy,

I've got a couple of questions, and although this may sound a bit odd, bear with me.

I'm *terribly* interested in network booting--primarily to use it at home, as the kids each have a computer, as does the wife, and I.

I hate the fact I've got serveral PCs all with a fairly large hard drive in them, and each one only uses a small smattering of the space, and the rest goes unused. Rathere than attempting to use that all over the house, I had thought about consolidating the space at the server, and booting remotely. Having done that with Linux many years ago, I'm quite crushed that the only solutions are either WAY TOO EXPENSIVE, or ... well, I didn't find any that weren't too expensive for my tastes (meaning free).

I came here one day and some folks had talked about remote booting, but it's clear there is no solution that ImDisk provides.

I let that stew in my brain, until I had the clever idea of using an Compact Flash to IDE converter, and slap in a 2-4 GB compact flash card into it, and boot *PART* of the OS localally, and connect a drive image across the network, and have a bunch of junctions to as much of the OS that I can put into the remote image.

This would let the PC boot, be almost silent (no hard drives), and have very low power requirements.

The pcs all have 2gb+ ram, so eliminating the swap isn't a problem either.

Looking at the layout of c:\Windows , I'm pretty sure that I can shrink down the stuff that *has* to be local to a pretty small footprint -- at least 2gb or less.

It's going to to be tricky to do the initial install (some Imaging and whatnot... heh-heh) but I'm going to prove it out using Virutal PC first.

So, the real question is:

How early can I get an image mounted in the boot process, as the earlier I can do it, the less that I will *have* to have on the compact flash (and thus, the smaller it can be)--Consider too, that I'd need the network to be available.


And then the second question is:

What's the most efficient way to expose the hard drive images at the server? File shares? that DevIO thingie? (ah there's the Win32 version of the server)

I'm have huge amounts of memory in the server (4gb right now), and could do some serious caching if the server side allowed (provided?) for it.

I've been playing with my gigabit network at home, and I'm confident that I'm being bound disk speeds, not by network speeds. (well, after tweaking the crap out of Vista)

another thing I was curious about:

Anyone know if it's possible or how to do a pivot_root on Windows?

Finally..

How in the world does ImageX (from the Windows IAK) mount a WIM file overtop of an in-use directory, but ImDisk can't?

Knowing that might solve my pivot_root idea/problem.


I'm really quite anxious to try this live before the end of the month, so any help or information means alot to me biggrin.gif

thanks,

Garrett
Garrett Serack
(this post deleted by author biggrin.gif )
Nuno Brito
ImDisk can likely be loaded early enough on the boot procedure - but how are you going to do for network support with drivers and such? huh.gif

This sounds an interesting project but very troublesome to achieve success - nevertheless - good luck with your goals.

I hope Olof can elucidate us if it can be done or not.

cheers.gif

Garrett Serack
QUOTE (Nuno Brito @ Dec 11 2007, 05:43 AM) *
ImDisk can likely be loaded early enough on the boot procedure - but how are you going to do for network support with drivers and such? huh.gif


As I mentioned, I'll have to boot to at least the point where it's got TCP/IP network support--I suppose that I'll have to make ImDisk take a dependency on that, which should solve that. I guess it'd be nice to coax TCP/IP to be ready as early as possible biggrin.gif

G
Olof Lagerkvist
Quick explanation to the limitations of auto-mounting virtual disks when ImDisk driver loads:
ImDisk as such can be setup to start as early as you like in the boot process, but there are of course some restrictions what could actually be done at different stages of the boot process. If you set the start option to either boot or system, the only kind of virtual disks ImDisk can create when it loads are blank RAM disks. If the start option is set to auto it can create virtual disks backed by RAM or local files. If you also set the dependency so that the ImDisk driver depends on both tcpip and imdsksvc it becomes possible to create network backed virtual disks automatically when ImDisk driver loads.
Garrett Serack
QUOTE (Olof Lagerkvist @ Dec 11 2007, 12:02 PM) *
If you also set the dependency so that the ImDisk driver depends on both tcpip and imdsksvc it becomes possible to create network backed virtual disks automatically when ImDisk driver loads.


Very Cool. I'll start experimenting with that (provided I can work around my devio problem biggrin.gif)

I'm also wondering how performant DevIO is? I assume it should be faster than using a file share to share the image.

thanks!

Garrett
Olof Lagerkvist
QUOTE (Garrett Serack @ Dec 11 2007, 09:38 PM) *
Very Cool. I'll start experimenting with that (provided I can work around my devio problem biggrin.gif)

Good smile.gif
QUOTE (Garrett Serack @ Dec 11 2007, 09:38 PM) *
I'm also wondering how performant DevIO is? I assume it should be faster than using a file share to share the image.

I have came to the conclusion that devio is the fastest option, but how much faster pretty much depends on the response delays on the network. For slow network connections with long response delays the technique used by devio is much more efficient. Another thing is of course that devio just requires one tcp connection and nothing else while file share needs a lot more services and network components running.
Garrett Serack
QUOTE (Olof Lagerkvist @ Dec 11 2007, 01:22 PM) *
I have came to the conclusion that devio is the fastest option, but how much faster pretty much depends on the response delays on the network. For slow network connections with long response delays the technique used by devio is much more efficient.


I'm on gigabit ethernet in my house, and it's pretty darn snappy, *after* tweaking Vista a bunch.

Nice to hear... I suspect as well, that I may be able to implement a pretty good caching/buffer algorithm with the DevIO server peice... I'm not sure that Windows does a good job of caching that stuff.

QUOTE
Another thing is of course that devio just requires one tcp connection and nothing else while file share needs a lot more services and network components running.


Well, that's not all that big of deal--the server will be running file services anyway, but good to know. I'm going to have to play around with the DevIO stuff to see what kind of stability I get, and perhaps build it as a service, and servicing multiple instances--if several pcs are using it, it'll have to stand up pretty strong.

G
Olof Lagerkvist
QUOTE (Garrett Serack @ Dec 11 2007, 11:52 PM) *
I'm on gigabit ethernet in my house, and it's pretty darn snappy, *after* tweaking Vista a bunch.

Nice to hear... I suspect as well, that I may be able to implement a pretty good caching/buffer algorithm with the DevIO server peice... I'm not sure that Windows does a good job of caching that stuff.

That could be a good idea. There is no special cache in devio right now, all caching relies on the default filesystem caching in Windows.
QUOTE (Garrett Serack @ Dec 11 2007, 11:52 PM) *
Well, that's not all that big of deal--the server will be running file services anyway, but good to know.

I have not tested mounting images on network shares a lot with automatic loading of the kind you are planning, but there could be a few problems regarding for example permissions to use the network share from the driver. I would think that a domain with computer accounts would be needed in this case.
Garrett Serack
QUOTE (Olof Lagerkvist @ Dec 11 2007, 11:32 PM) *
That could be a good idea. There is no special cache in devio right now, all caching relies on the default filesystem caching in Windows.

That's what I figured... Pity, I'm not really an expert on caching algorithms.... I'll probably end up reinventing the wheel on that one, but I think that for the purpose, it will be pretty damn good, and I should be able to beat out the native OS caching (which I don't beleive is really effective for what I wanna do). I have a pretty good idea too as to how to build an effective read-cache, and a really effective write cache (with, a slim chance of corruption on power failure--a risk I can live with). Given that I'm only putting the OS into the DevIO image (program files and whatnot can all be done via traditional fileshares ) I'm pretty confident on my likelyhood of success.

QUOTE
I have not tested mounting images on network shares a lot with automatic loading of the kind you are planning, but there could be a few problems regarding for example permissions to use the network share from the driver. I would think that a domain with computer accounts would be needed in this case.


I'd be less worried about that (nullsession shares work great biggrin.gif) than the overly agressive firewall in Vista--having TCP/IP around isn't a guarantee that you can use it. The Firewall kicks in early in the boot process to prevent bad apps from doing communication too early... and I'm not too sure if it's a wide blocking blanket , or if it's actually processing the firewall rules that early. *sigh* Guess I'll find out. biggrin.gif

I haven't looked--how tolerant of lost connections (ie, reconnecting when neccesary) is ImDisk?

G
Garrett Serack
Update:

Well, it would seem that it's not all that easy to get stuff up as soon as I'd like.

I've done some early testing, trying to mount a remote image using fileshares... the damn lanmanworkstation service doesn't start up until *really* late in the boot process. (in my autologin Vista, it's actually on the desktop before it's ready!)

I'm going to have to swtich to using the devio way--provided I can figure out why it bluescreens my vpc.

Even with the devio method, I'm going to have to wait until TCP/IP is started (which is the NDIS group)... which is still somewhat later than I had hoped...

Well, not *later*, just there is a lot of crap that's earlier than I would have thought necessary.

a snippet from the boot order:
CODE
...
Boot File System
Base
Pointer Port
Keyboard Port
Pointer Class
Keyboard Class
Video Init          // Odd that this is done that early!
Video               // Odd that this is done that early!
Video Save          // Odd that this is done that early!
File System
                    // obviously, needs to follow File System!
Streams Drivers
NDIS Wrapper
COM Infrastructure
Event Log
AudioGroup
ProfSvc_Group
UIGroup
MS_WindowsLocalValidation
PlugPlay
PNP_TDI
NDIS
                     // Earliest I could *possibly* do...
TDI
iSCSI
NetBIOSGroup
ShellSvcGroup
SchedulerGroup
SpoolerGroup
SmartCardGroup
NetworkProvider      // lanmanworkstation is here! *sigh*
MS_WindowsRemoteValidation
NetDDEGroup
Parallel arbitrator
Extended Base
PCI Configuration
MS Transactions


I'm actually quite surprised how late networkdir ing is started. I suppose that's normally not so much of a problem, if you don't normally need network access that early.

I may have to take a different tact with this... hmm.

G

This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Invision Power Board © 2001-2008 Invision Power Services, Inc.