Jump to content

Windows 7 PE drivers?


Xenithar

Recommended Posts

10 minutes ago, Xenithar said:

Alright, I burned the multi_iso image and it boots to GRUB4DOS, but I only have MemTest, Plop, NTLDR boot for XP/2K, and BOOTMGR for Vista/7/8. No option to go into my PE environment. Is it really this difficult to simply make a CD bootable ISO with my stuff on it? It was cake with XP.

I don' t know what other settings you have, yesterday to better assist you I quickly created one such image (without changing anything from the defaults) and there are a couple of issues with it (easy to fix manually).

The default menu.lst embedded has an [iftitle] entry (it is a sort of "conditional" entry) that looks for:

iftitle [set pe86e=/images/7pe_x86_E.iso && if exist %pe86e%] %pe86e% - ISO - 302 MB
# find --set-root --ignore-floppies %pe86e%
map  %pe86e% (0xff)
map --hook
root (0xff)
chainloader (0xff)/BOOTMGR || chainloader (0xff)/bootmgr

7pex86_E.iso whilst inside the .iso (CD) the actual .iso image is called 7pex86.iso.

Since it is an [iftitle] entry it cannot be edited from the built-in menu editor, BUT there is also a menu_demo.lst which includes a "correct" entry:

title Portable Windows 7 PE - images/7pe_x86.iso
# find --set-root --ignore-floppies /images/7pe_x86.iso
map /images/7pe_x86.iso (0xff)
map --hook
root (0xff)
chainloader (0xff)

(among other entries, one for 7pe_x86_E.iso and one for 7pe_x86_X.iso).

So you can (temporarily, and to test if the build is working) press "c" (to get to command line mode) when you are on the first grub4dos then type:

configfile /menu_demo.lst

[ENTER]

and check if there is a valid entry for the .iso in side /images you have.

If not you can use the "e" (edit feature) on a similar entry and adapt it on-the-fly.

Most probably there is a setting, or a manual override lost *somewhere* in the docs or in some of Wimb's instructions to set correctly the "right" menu (and/or [iftitle] menu entries) automatically, but once you have verified what commands work, you can modify the menu.lst in Make_PE3\MULTI\ and run manually mkisofs as detailed in \Make_PE3\MULTI_ISO\mkiso.txt to rebuild a new .iso.

jaclaz

Link to comment
Share on other sites


I didn't think about editing the GRUB menu live. Funny thing is that while building Linux kernels I get to do that a lot to test on new hardware. I must need some sleep.

Now, I see three images created. One in "MULTI", one in "MULTI_ISO", and one in "win7pe_x86". I opened the ISO image (see attached screenshot) in my archiver and the image does indeed contain BOOTMGR. This is the 7pe_x86_M.iso image. Shouldn't this simply boot like a normal Windows 7 install disc?

PE01.jpeg

Link to comment
Share on other sites

34 minutes ago, Xenithar said:

Shouldn't this simply boot like a normal Windows 7 install disc?

Sure, it should, if burned directly to CD, BUT isn't this the one you already tried burning and that did not work (due to *something* connected to the "default" etfsboot.com probably used in it)? 

If you open the .iso in 7-zip and look in the [BOOT] folder (it is a "virtual" folder created by 7-zip to contain the bootsector of a CD/DVD) you will find in it a file (virtually) called "Bootable_NoEmulation.img" 2048 or in your case 4096 bytes in size which is the actual No Emulation image used, likely to be an etfsboot.com. (there should be a copy of it in \BOOT\ETDSBOOT.COM)

If you open this file in a hex editor, you will see how it contains:

Quote

CDBOOT: Couldn't find BOOTMGR

so we know from where the message comes out, what we don't know is what causes the error.

You can try in grub4dos command line on your current CD:
 

find --set-root /images/7pe_x86_M.iso
map /images/7pe_x86_M.iso (0xff)
map --hook
root (0xff)
chainloader (0xff)
boot

This will attempt to boot the .iso image bootsector (and it either works or should give you the same CDBOOT:... error), whilst this:

find --set-root /images/7pe_x86_M.iso
map /images/7pe_x86_M.iso (0xff)
map --hook
root (0xff)
chainloader /bootmgr || chainloader /BOOTMGR
boot

will attempt to boot the .iso by-passing the bootsector and directly chainloading the bootmgr/BOOTMGR (files are usually CaSe SeNsItIvE on CDFS in grub4dos).

It is possible that some settings in the mkisofs.exe command used to build the 7pe_x86_M.iso made *somehow* the bootmgr/BOOTMGR "invisible" from the bootsector, difficult to say.

jaclaz

Link to comment
Share on other sites

Well I tried my latest setup (I created everything again) and burned 7pe_x86_M.iso to a CD and it works. No clue why it did not before. It has worked on two separate systems so far and is being used to fix one now. I am going to try slipstreaming in nVidia drivers and see if it works on the next burn. If so, I guess maybe I got a bad burn or something the first time.

In the meantime I want to thank you for your persistence in helping me figure this out. I do appreciate it and, should this next burn not work, I will be back with more questions. If it does, I will post back my success. Thanks so much for the help!

Link to comment
Share on other sites

3 hours ago, Xenithar said:

multi_iso image and it boots to GRUB4DOS
No option to go into my PE environment.

How do you build the mult_iso image?

Customize_Info.txt:
Put in folder MULTI\images your Boot Image files (.iso or .img) to make MultiBoot CD/DVD
In case of CD=YES then Make_PE3 programs will copy 7pe_x86.iso or 7pe_amd64.iso to folder MULTI\images

Quote

I am going to try slipstreaming in nVidia drivers

Graphics drivers are big. Watch the ISO file size. Booting may fail at low RAM.

The booted Make_PE3 offers 'Driverpacks from folder'. This launches Dpinst to load drivers.
Expand graphics drivers to USB drive. Boot the PE and load the drivers.
A Intel 4 Series is active, no reboot required. No idea about a unknown nividia hardware and driver.
The behaviour may be different at different hardware. Specific used hardware and drivers.
Try this too.

Link to comment
Share on other sites

57 minutes ago, Xenithar said:

Well I tried my latest setup (I created everything again) and burned 7pe_x86_M.iso to a CD and it works. No clue why it did not before.

A glitch in the Matrix, most probably ;)

7xrx8.gif

57 minutes ago, Xenithar said:

In the meantime I want to thank you for your persistence in helping me figure this out. I do appreciate it and, should this next burn not work, I will be back with more questions. If it does, I will post back my success. Thanks so much for the help!

You are welcome :).

jaclaz

Edited by jaclaz
Link to comment
Share on other sites

Everything works! The ISO is 701MB, boots from CD, and has loads of driver support, minus nVidia/ATI. I will likely need to make a DVD to add support for them. I have added the driverpacks for chipset, mass storage, card readers, audio, network, wireless, and I manually added the 4 series Intel support because it was not supported out of the box. I did not get the correct resolution and my video card showed up as a VGA compatible one. Best part? The RAM drive is only 251MB.

So where does the RAM get used here? I assume it is only used during boot when it is loading drivers and seeing which ones it needs for your unique system.

Link to comment
Share on other sites

If running WinPE in Ramdisk (as opposed to flat) the boot image is extracted and run from RAM. The .wim size is the compressed size. So you boot image is a minimum the file size plus whatever you are actually running.

The actual size can be determined by using Imagex /info on the .wim file, the XML should tell you how big it actually is. Or you could deploy/recapture with using /compress:none, then the .wim size should be actual extracted size.

Link to comment
Share on other sites

Sorry, been busy lately! My .WIM, with three generations of nVidia drivers and all Intel drivers is 1.07GB. I am running it via the ISO produced. I do this by either burning the ISO to a DVD or by pointing GRUB4DOS on a USB stick to the ISO. I am not sure how to run it on a flat file-system. Not sure what the decompressed size is, but assuming a 2 to 1 compression ratio, it should work on systems with 4GB of RAM, but it does not. Always seems to freeze/hang at "Windows is loading files..." when I go beyond 700MB.

Link to comment
Share on other sites

51 minutes ago, Xenithar said:

Sorry, been busy lately! My .WIM, with three generations of nVidia drivers and all Intel drivers is 1.07GB. I am running it via the ISO produced. I do this by either burning the ISO to a DVD or by pointing GRUB4DOS on a USB stick to the ISO. I am not sure how to run it on a flat file-system. Not sure what the decompressed size is, but assuming a 2 to 1 compression ratio, it should work on systems with 4GB of RAM, but it does not. Always seems to freeze/hang at "Windows is loading files..." when I go beyond 700MB.

You simply apply the boot.wim image to the stick, *like*:
https://technet.microsoft.com/en-us/library/hh825045.aspx

jaclaz
 

Link to comment
Share on other sites

Speaking of USB sticks...

Why are you loading up the BOOT.WIM with so many drivers?
Reference folder "$WinPEDriver$" - use that instead? :unsure: It seems it will search for the USB Stick for the Drivers from there (AFAIK).

Limitations -
https://support.microsoft.com/en-us/kb/2686316

I used an External Folder with USB3 Drivers to access a flubbed up HP PC. I added in a PCIe USB card and loaded an extra HDD via USB (with Win7 ISO on it) via Grub to figure out what the heck was going on with it (USB-only MoBo - no PS/2). My conclusion was that a child had screwed up the USB Ports -or- had (inadvertantly) disabled all the USB Controllers, thus rendering the MoBo useless without an RMA.

Worth a thought, anyhow...

Link to comment
Share on other sites

3 hours ago, Xenithar said:

Always seems to freeze/hang at "Windows is loading files..." when I go beyond 700MB.

This behaviour reminds to XP setupldr.bin and 512 mb size RAM disk. There is a max ram disk size limit. There may be another limit at Windows 7 bootmgr, never tried a huge boot.wim so far. Idea: use a newer bootmgr instead. Not tested.
 

Link to comment
Share on other sites

That article is good, but all of the ADK downloads I find are for Windows 8.1. I despise how Microsoft tries scrubbing stuff to try and force people into upgrading. One reason several of my clients moved to Linux.

Anyway, I am trying to find an ADK for 7.

*EDIT*

Submix8c, I am reading the article, but I am not sure how to incorporate that into the images I make using make_pe3. How would I do this with make_pe3? I would rather keep low-level storage controllers and such in the WIM and put everything else into the folder, but I am not sure how to make that all click the make_pe3 way.

Edited by Xenithar
Link to comment
Share on other sites

AFAIK, there's no ADK for Windows 7. There's a WAIK (free) and an OPK (sign up as an OEM Partner). I have them both. The WAIK lacks the WINRE only, otherwise exactly the same (WinPE 3.x, which you say you have already).

That article link I gave wasn't meant to USE it, just to indicate the limitations. My USB Boot has a single Multi-Edition Windows 7 ISO on it and a single Folder with that USB3 Driver inside it. The POINT was to do the same AND put all of YOUR drivers in it. This method SPECIFICALLY loads any needed Drivers during PE and propagates them to the Windows7 Install. The method is VERY similar to the Windows 2000/XP "Press F5 to install additional drivers" but does it automatically.

IOW, you seem to be making this more complicated than it should be. One Autounattend.xml for X86 and one for X64 (since Drivers WILL be different between them), two USB Sticks (or one and rename the Driver Folder depending on the Hardware Architecture).

<settings pass="windowsPE">
	    <component name="Microsoft-Windows-PnpCustomizationsWinPE" processorArchitecture="x86" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
	        <DriverPaths>
	            <PathAndCredentials wcm:action="add" wcm:keyValue="1">
	                <Path>$WinPEDriver$</Path>
	            </PathAndCredentials>
	        </DriverPaths>
	    </component>
	</settings>


http://www.rmprepusb.com/tutorials/grub4dos
http://www.rmprepusb.com/tutorials/firawiniso

It seems kind of screwy to try put a gob of drivers into the BOOT.WIM just to create a "Install to Any Hardware AIO" when the above works just fine. Not sure what you're trying to accomplish here... :unsure:

Just to keep things together, THIS is the tool that you used to create it.

Whether the method I gave will work or not, I don't know as I've never tried to use wimb's Win7PE. It APPEARS that you need an "AIO-Driver WinPE" to do "maintenance" (according to post#1). It seems "odd" that you would need to do that unless you're a Repair Shop in which case you REALLY should break down the "sets" of Drivers to one per Intel/AMD/Older/Newer/etc and create Multiple ISO's and use the links I gave to create a Bootable USB and select any given one depending on the Hardware. All you're doing with a Monster.WIM is causing it to slow down the load process searching through a gob of drivers for the right ones. :crazy:

Maybe you should read up on GRUB4DOS as well (see my links)? :unsure:

HTH

Link to comment
Share on other sites

I do work at an IT firm. We support multiple businesses, churches, etc. The point is to have a utility disc/drive which we can use on any system with a licensed copy of 7. We do things like offline defrag, fix registry issues, virus removal, etc from these images. I do not have an issue doing this via USB flash stick either. In fact I have a USB flash stick I test on alongside physical CD/DVD media. I am simply trying to figure out the best way to do this because I still have no clue where to place drivers. The make_pe3 utility has a dozen folders that have files which say "place_drivers_here" in them. They're text files. I am currently placing chipset, USB, and mass storage drivers into the win7_drivers folder, which places them into the WIM.

Now, I believe I understand what you're telling me, but the message isn't here. Where do I put these drivers to get them loaded? Say I have a 400MiB ISO with core drivers ONLY in them. I am imagining I need to open that ISO and somehow place a drivers folder on its root, then burn it do CD/DVD. For example, I take 7pe_x86_M.iso and somehow place a driver folder on its root, then burn it to disc.

I guess what I am asking is, how do I do this? Where do I put drivers I don't want incorporated into my WIM? Can I have those drivers in a folder which gets put into the final ISO so I can burn a CD or DVD with them? I understand that PE3 can load these automatically, I just have no clue where to place them so it all works.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...