Announcement

Collapse
No announcement yet.

Another crazy mod: RAM booting XP (no, not EWF)

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Another crazy mod: RAM booting XP (no, not EWF)

    Okay, I was bored so I started playing around with XPe's RAM booting. It's either used for booting over a network (the image is downloaded from a server by the network card) or from local storage (like a USB disk or other storage device). It does this with the XPe NTLDR and the RAMDISK driver. The whole OS is loaded into RAM and runs from there. There's some special things you need to do though, most importantly is use nLite to make as small an image as possible. Between nLite and mpattonm's scripts (I think he's trying to make XP boot only in kernel mode or something, that guy is nuts, nuts, nuts!!! )

    Basically you install XP like you normally do and once you've got things exactly like you want them you transfer the OS over to an SDI Disk (included in XPe Tools). Then you use a script to transfer the partition to an SDI file. I'll post full instructions tonight. I've only tested it on VirtualPC so far. It's obviously very limited. For one, however big your image is, that's how much RAM is being used up. I booted a 320MB OS on a VPC system with 512MB RAM. I don't think this may be useful for the CarPC world, but it's still interesting I think. It could be useful for booting network appliances in the home maybe? Or a super boot disk on a USB key (for a specific hardware config though)? The image is based off whatever hardware you originally used so I don't think you could just plug it into any PC and expect it to boot. Boot times depend all on how fast NTLDR can read in the image, so the faster your device and the smaller your image the faster it'll boot. Once the image is loaded into RAM it's pretty fast.

    There's actually another little project I need to start on and that is how to get around the whole USB boot problem with XP. XP reinitializes the USB controller when it boots so it causes the boot loader to "lose" the boot drive. If anyone has ever tried to boot XP off an external USB drive you know what I mean. That would obviously be more useful than loading up the whole OS into RAM, but just in case at least we've got this. There's some discussion about the USB problem on the newsgroups so I'll be tackling that next using info I've found there. It's just a matter of moving some registry values around and others have already done a lot of research into it with XPe.
    EWF, HORM, MinLogon on XP.

    Zotac ION Atom N330, 2GB low-profile RAM, M3-ATX
    Win Embedded Std 2011 RC
    OCZ Vertex Turbo 30GB SSD
    Lilliput 629 Transflective, WRX Screen Mount
    BlueSoleil BT, i-Blue GM-2 GPS, DirectedHD Radio, Andrea Mic
    VoomPC 2

  • #2
    Originally posted by SFiorito
    There's actually another little project I need to start on and that is how to get around the whole USB boot problem with XP. XP reinitializes the USB controller when it boots so it causes the boot loader to "lose" the boot drive. If anyone has ever tried to boot XP off an external USB drive you know what I mean. That would obviously be more useful than loading up the whole OS into RAM, but just in case at least we've got this. There's some discussion about the USB problem on the newsgroups so I'll be tackling that next using info I've found there. It's just a matter of moving some registry values around and others have already done a lot of research into it with XPe.
    Right, this is the problem I had and my theory was that you needed to install a USB miniport driver for XP so that it knows about the special interface to the boot device similar to what it does for SCSI (and presumably SATA/PATA these days too). It's kind of funny that someone hasn't made a driver for this already.
    2004 4runner

    Comment


    • #3
      I'm very interested in booting XP into a ramdisk, specifically PXE booting to ramdisk. Have you had any luck with your method? Did you post your instructions? What "specific things" do you need to do? I assume it is a similar method to stripping the EWF and minlogon from XPe for use in XP, meaning files need to be retreived and registry settings need to be changed.

      ramdisk.sys-->where does it go, what reg settings?
      ntldr
      what else? boot.ini??
      How does the windows boot image server fit in? I know that it can provide a boot file (startrom.com) for pxe booting XPe into ramdisk.
      Thanks

      I've had success PXE booting DOS, Win98, but my application requires 2000/XP os. I also don't want to deal with XPe 120 day limit, nor do I want to purchase hardware for CF boot since I already have a computer to serve up the images and an EPIA mb that can PXE boot...

      Comment


      • #4
        see my post here: http://www.xpefiles.com/viewtopic.php?p=419#419

        basically you create your nLited XP image and include the XPe ramdisk driver (not sure if it has to be the XPe driver or if the XP driver is fine). I'll have to go back and look at my notes to see if I have an INF for the XPe Ramdisk driver handy. After your nLited XP system is running on a regular hard drive just as you want it and all your software installed, you just follow the instructions I have in that page. I haven't tried PXE booting, but I imagine it'll be a variation of what I posted there. There are a few limitations such as the SDI size (max is 530MB I think).
        EWF, HORM, MinLogon on XP.

        Zotac ION Atom N330, 2GB low-profile RAM, M3-ATX
        Win Embedded Std 2011 RC
        OCZ Vertex Turbo 30GB SSD
        Lilliput 629 Transflective, WRX Screen Mount
        BlueSoleil BT, i-Blue GM-2 GPS, DirectedHD Radio, Andrea Mic
        VoomPC 2

        Comment


        • #5
          I'm almost there...almost.

          Ok, so I nlited my xp install down to 350MB
          I copied the ramdisk.sys and .inf from the latest (sp2) XPe repository. For lack of a better way to install it, I copied it to the root directory of my target and right clicked on .inf and clicked install. Sorry, I'm dumb here but did this install the ramdisk driver properly??
          I created the SDI image per the help instructions included with XPe for deploying SDI image for remote boot. The SDI disk was partitioned in FAT format, copied my target files to the sdi disk, in the command prompt created new sdi file, read from sdi partition, done.
          Copied the sdi file to my server. setup and configured MS Remote Boot Service (part of XPe) to serve the sdi image and proper startrom/ntldr/etc. Since my serve is W2K I needed a DHCP server, so I I installed DHCP Turbo, finally figured out how to configure it (option 60 = PXEClient), oh and turn off the firewall on the server (or just open the right ports for DHCP communication)
          startup my client, set BIOS for PXE boot, it acquires IP, and downloads the sdi, i get "loading RAMDISK image..." with the status bar. when the status bar hits 100%, it reboots...damnit.
          I suspect I didn't install the ramdisk driver properly on my sdi image? I'm not sure of another method to do this.
          Or I made some other mistake? any ideas?
          thanks, I can't wait to get this working.

          Comment


          • #6
            I figured out how to install the ramdisk driver via add new hardware wizard. I did this to my image, created a new .sdi, put it on my remote boot server, and...still the same problem. The client just resets after it completes loading the image into ramdisk.

            I will try putting the .sdi image on a hard drive to see if the image will boot into RAMdisk in the first place.

            any ideas?

            Comment


            • #7
              sorry, I haven't done a PXE boot before. you've read through MSFT's docs and examples for remote booting in XPe?
              EWF, HORM, MinLogon on XP.

              Zotac ION Atom N330, 2GB low-profile RAM, M3-ATX
              Win Embedded Std 2011 RC
              OCZ Vertex Turbo 30GB SSD
              Lilliput 629 Transflective, WRX Screen Mount
              BlueSoleil BT, i-Blue GM-2 GPS, DirectedHD Radio, Andrea Mic
              VoomPC 2

              Comment


              • #8
                Re: usb reset on xp boot losing boot image.

                If no patch exists for this like scsi/sata etc, while not move the image to a cheap CF card instead of a USB stick? then connect the CF card to the ide with with a ide/cf adapter?
                Lez, more widely known as flez1966

                Comment


                • #9
                  Originally posted by SFiorito
                  sorry, I haven't done a PXE boot before. you've read through MSFT's docs and examples for remote booting in XPe?
                  Yes, I've been through those. It's fairly straight forward, XPe's remote boot manager serves up the .sdi image and provides the proper boot.ini, startrom, etc. I'm pretty confident that I got past configuring dhcp server properly, setting up the client PXE configuration, successfully transfering the image via tftp, and all those obstacles. I've gotten windows 98 to PXE boot before, so I'm familiar with most of this. I'm thinking that there is something goofy with my image. I was hoping I would just follow what you did, but instead of putting the image on a CF card, I'd have it on my remote boot server. I wouldn't even need to worry about boot.ini, or supplying the correct startrom file since RBM takes care of this.

                  Again, I am going to try putting my .sdi on a hard disk (I don't have a CF with IDE adapter) and follow your procedure to see if I can just get it to boot into ramdisk from the hard disk.

                  To make sure I'm creating the .sdi image correctly: I used the XPe sdi utility to make a sdi partition, formated it as FAT. copied my files over from my prototype HD to the sdi partition. from the command line i create a new sdi file, then I perform the readpart operation to read from my sdi partition to the file. That's it right? I read about the pack command, but it seemed that it was unnecessary if I followed the thread correctly.
                  my OS footprint is 350MB, I created a 360MB sdi image. Also tried 400MB to give it more room. This os only uses 80-90 MB memory when it's fired up so if my sdi is 360 and my os uses 90, that's 450. I've got 512MB RAM. Maybe I'm cutting it too close and it's choking from running out of memory?

                  Comment


                  • #10
                    Still no luck.

                    I added the paramerter /maxmem=485 in RBM, which is added to the boot.ini that it creates. I realized my on board graphics card was sharing RAM, leaving me with about 492 of my 512 if I set it to use the least amount. The maxmem switch limits the OS from using more than specified, now it no longer restarts after after it completes loading the RAMDISK, instead I get the missing/corrupt hal.dll error.

                    I created the sdi image as specified in the post on the other forum
                    create sdi disk (S,
                    format it with mmc console (FAT),
                    copy files from prototype into sdi disk S:,
                    create sdi file from command line (xpfinal.sdi),
                    readpartition from S:->xpfinal.sdi,
                    copy xpfinal.sdi to remote boot server to serve up during PXE boot.

                    i tried the pack command, nothing worked. I even tried adding the /rdimageoffset=4096 in remote boot manager (although as I understand it already does this).
                    I don't need to deal with copying startrom or ntldr since RBM serves up the proper versions. Also don't need to create boot.ini since RBM supplies this also, however I can add parameters if needed through the RBM GUI, this is how I added the MAXMEM switch.

                    Maybe I am not copying my files into the SDI disk properly? I'm just dragging and dropping (I have hidden and system files shown, so they should copy over), should I use another method?

                    Comment


                    • #11
                      I don't know what to tell you bro... Actually...does your SDI disk S: use write caching? Check in device manager. If so, it could be that the files aren't completely written to the disk when you do the readpartition?? Just a thought.
                      EWF, HORM, MinLogon on XP.

                      Zotac ION Atom N330, 2GB low-profile RAM, M3-ATX
                      Win Embedded Std 2011 RC
                      OCZ Vertex Turbo 30GB SSD
                      Lilliput 629 Transflective, WRX Screen Mount
                      BlueSoleil BT, i-Blue GM-2 GPS, DirectedHD Radio, Andrea Mic
                      VoomPC 2

                      Comment


                      • #12
                        XPe does only ~500Mb and requires a lot of trouble to set up.

                        No more hassle now!

                        Please go to http://www.disklessangel.com to find an easy way of booting xp in ram if you have sufficient system memory. It can create a virtual boot-up ramdisk for you to boot full size xp in it up to 4 Gb in size.

                        Diskless Angel XP also includes many other tools, such as shadow backup of your live xp while running, creating img and dsk image files for virtual machines, and a partition editor which helps you partition your hard disk and easily make bootable USB Flash disk, SD disk, etc.

                        A demo version is available for download now.

                        Comment

                        Working...
                        X