How to increase RAM Disk during install setup ?

freMea

Member
Hi,

During this WinPe step, it seems the ram disk (X:) is limited to 500MB if I don’t get wrong. Yet, when using $WinPeDriver$ technique to inject drivers (using ventoy in this case), there is an error right away saying it can access install source if you added a driver like nvidia that weight 1.30GB.

Would it be an automated way with ntlite to increase the ram disk during the build process or else ?
 
PE5's RAM disk is hard coded to 512MB, and ignores previous reg tweaks to increase its size. The problem of using $WinPeDriver$ is everything is copied into memory while Setup is running. That doesn't work with NVIDIA drivers.

Instead you should use <DriverPaths> in your unattend.xml, so Setup is copying those files from the source folder instead of trying to cache driver files in memory. One problem is the USB media's drive letter isn't guaranteed, so you can throw a few possible <Paths> so that Setup searches a few different drive letters in sequence.

Code:
<DriverPaths>
   <PathAndCredentials wcm:action="add" wcm:keyValue="1">
      <Path>D:\DriversFolder</Path>
   </PathAndCredentials>
   <PathAndCredentials wcm:action="add" wcm:keyValue="2">
      <Path>E:\DriversFolder</Path>
   </PathAndCredentials>
</DriverPaths>
 
Yes. Before I test $WinPeDriver$. Basically, I used to use setupcomplete.cmd containing:

Code:
pnpunattend auditSystem

After I add this reg file earlier in the script :

Code:
Windows Registry Editor Version 5.00


[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\UnattendSettings\PnPUnattend\DriverPaths]


[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\UnattendSettings\PnPUnattend\DriverPaths\1]

"Path"="C:\\Drivers"


[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\UnattendSettings\PnPUnattend\DriverPaths\2]

"Path"="D:\\Drivers"


[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\UnattendSettings\PnPUnattend\DriverPaths\3]

"Path"="E:\\Drivers"


[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\UnattendSettings\PnPUnattend\DriverPaths\4]

"Path"="F:\\Drivers"


[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\UnattendSettings\PnPUnattend\DriverPaths\5]

"Path"="G:\\Drivers"


[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\UnattendSettings\PnPUnattend\DriverPaths\6]

"Path"="H:\\Drivers"

Windows Registry Editor Version 5.00


[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\UnattendSettings\PnPUnattend\DriverPaths]


[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\UnattendSettings\PnPUnattend\DriverPaths\1]

"Path"="C:\\Drivers"


[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\UnattendSettings\PnPUnattend\DriverPaths\2]

"Path"="D:\\Drivers"


[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\UnattendSettings\PnPUnattend\DriverPaths\3]

"Path"="E:\\Drivers"


[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\UnattendSettings\PnPUnattend\DriverPaths\4]

"Path"="F:\\Drivers"


[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\UnattendSettings\PnPUnattend\DriverPaths\5]

"Path"="G:\\Drivers"


[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\UnattendSettings\PnPUnattend\DriverPaths\6]

"Path"="H:\\Drivers"

Do you know at what time the drivers are installed or loaded during the process when:
- method 1 : integrated with ntlite (I guess it uses Dism /add-driver) ?
- method 2 : integrated with my setupcomplete.cmd method above ?

If I add my wifi driver with method 2, will it be installed before OOBE will require to connect to internet ?
 
Last edited:
You would integrate the same drivers into both boot & install images (DISM method), so devices are immediately recognized.

Some users don't like this because you need to rebuild images whenever the drivers change, and prefer to have more control by simply replacing the driver files in the ISO folder or network share (DriverPaths).

The minimum drivers that need to be installed are basic storage and networking (if you need updates while installing). Less critical drivers like graphics, and input devices, can be loaded later because they don't block installation.

The DISM method copies over driver files to the image's DriverStore repository. Any extra drivers which aren't needed won't be loaded in memory, but unused files will take up extra disk space.

SetupComplete is executed after OOBE, so your reg file must be integrated first into the image in order to work. Adding the path by itself doesn't force a driver search, it must be run by a "pnpunattend auditsystem" command. By that point, it's too late in the running order.

This is why you use the DISM approach, or add <DriverPaths> in the unattended file so WinPE does the work immediately.

Code:
<unattend xmlns="urn:schemas-microsoft-com:unattend">
        <settings pass="windowsPE">
                <component name="Microsoft-Windows-PnpCustomizationsWinPE" processorArchitecture="amd64" 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:keyValue="1" wcm:action="add">
                                        <Path>D:\Drivers</Path>
                                </PathAndCredentials>
                        </DriverPaths>
                        <DriverPaths>
                                <PathAndCredentials wcm:keyValue="2" wcm:action="add">
                                        <Path>E:\Drivers</Path>
                                </PathAndCredentials>
                        </DriverPaths>
                        <DriverPaths>
                                <PathAndCredentials wcm:keyValue="3" wcm:action="add">
                                        <Path>F:\Drivers</Path>
                                </PathAndCredentials>
                        </DriverPaths>
                </component>
        </settings>
</unattend>
 
Back
Top