Re: DOS drivers for ATA DVD & HDD


[ Follow Ups ] [ Post Followup ] [ The EasyDOS Forum ] [ FAQ ]

Posted by Kevin on January 07, 2010 at 10:21:04:

In Reply to: DOS drivers for ATA DVD & HDD posted by Wolf H on July 31, 2009 at 04:37:32:

I think it may be perfectly clear that you can't get there from here. You need to lose DOS and use a BARTPE disk for this. Good luck!

: Altiris RDeploy v6.8 image not deploying to Lenovo ThinkCentre M58 from DVD

: I hope you have a glass of wine handy, this post may take a while to read, and you may as well enjoy yourselves while reading it...

: Here is the setup: I work for a large corporate in an environment where there are only Lenovo or Dell machines; but many models of each. For Dell (more common) we have Optiplex GX60, GX260, GX270, GX280, 745, 755 and 760’s. For Lenovo (less common) we have ThinkCentre M52 and ThinkPad T500 and W500 machines.

: I have created a Windows XP load with all the bells, whistles and home-baked goodness that I need and then SYSPREP’d it.

: Right, many machines and one image (to rule them all) that I will deploy to all machines (hey, rule them all actually works here!). The image contains all the required drivers and I have successfully deployed it many times to all the aforementioned makes and models (even the laptops, but they then require additional software to get the fingerprint readers to work, etc). I created a bootable DOS DVD where the AUTOEXEC ‘calls’ the IMAGE.EXE and deploys (fills the entire HDD) it to the local machine. It works; great actually, thanks for asking.

: So now the sales people have delivered a shiny new ThinkCentre M58 machine to my desk, AFTER (need I even mention that it was after?) they bought a boat-load of them. Well, it’s not really ‘shiny’ - it’s the default Lenovo black, but you get the idea. It’s here and now I need to make it work.

: Before we go further, the way I create and test images is by using Altiris. I use RDeploy (v6.8) to create IMAGE.EXE images which I then ‘run’ on machines. Instead of writing the image to DVD to test, I use a LAN share because the whole process is much quicker. The Altiris Boot Disc creator (v6.8) makes the LAN boot disc (DOS) that connects to a share where the DOS RDeploy.exe sits waiting (like a good minion) for me to run it.

: So, to test, I LAN boot the M58, connect to the share and run the IMAGE.EXE to deploy to the new machine. It deploys successfully, does a sysprep’d mini-setup and loads the OS. I then check which drivers it needs, add the drivers using Altiris ImageExplorer (you guessed it, v6.8) to my IMAGE.EXE in the SYSPREP.INI file and to my Drivers folder and re-close the image. Then, again LAN boot the M58, connect and deploy the new IMAGE.EXE to the local machine and it works. The image deploys to the machine and completes successfully. It then reboots and the SYSPREP setup takes over, installs the drivers (etc) and bob’s your second cousin, the thing works. Lovely.

: So now I write this new IMAGE.EXE to a bootable DVD where the AUTOEXEC is supposed to auto-deploy the image, and it still works on all my existing test boxes. Now we get to the M58. I hope you’ve enjoyed reading up until now, maybe it’s time for a second glass of wine...

: The first issue I ran into (still have the bruise on my forehead) was that the bootable DVD would not see the image. The drivers required to get DOS to see the DVD drive were not available. So I summoned (much like magic) my old DOS skills, opened my trusty Google search engine and after some ‘detecting’ found GCDROM.SYS. I then added this to my CONFIG.SYS and updated the MSCDEX line in the AUTOEXEC.BAT as follows:

: AUTOEXEC.BAT
: LH MSCDEX.EXE /D:CDROM000 /D:CDROM001 /D:CDROM002 /D:CDROM003 /D:CDROM004 /D:CDROM005 /L:X

: (Tells MSCDEX to use the detected CD/DVD drives and assign them letters starting with ‘X’)

: CONFIG.SYS
: DEVICE=GCDROM.SYS /D:CDROM000 /C0
: DEVICE=GCDROM.SYS /D:CDROM001 /C1
: DEVICE=GCDROM.SYS /D:CDROM002 /C2

: The way I understand it (and I have confirmed it by moving the DVD cable to different ATA slot) is that the DEVICE loads the GCDROM device on ATA slot 1, 2 or 3 depending on which one is occupied. I may have the tech jargon wrong here, but the concept remains...

: Right, new bootable DVD that correctly calls the ATA DVD driver and then AUTOEXEC calls the IMAGE.exe to deploy. My DVD boots to DOS, loads the X: as the DVD drive (where I can see the contents, confirmed after image fails). It calls the IMAGE.exe file but this then fails. I created a new DVD which contains the RDeploy file, and after the image deploy fails and the machine drops back into DOS, I run RDeploy and manually try to deploy the image. RDeploy then complains that it can’t detect the drive.

: Summary time:

: I have an executable image (IMAGE.EXE) that works
: I have multiple machines that I can LAN boot and deploy images to/from
: The M58 can LAN boot and I can deploy the IMAGE.exe to it
: I have multiple machines that I can DVD boot and deploy the IMAGE.exe to
: I have a M58 that I can’t do this to

: I feel like Vader trying to convince Luke to join the dark side, and the little blighter just won’t listen. Darn his ‘good’ chipset!

: Troubleshooting:

: 1. I have taken the 250 GB ATA HDD out of the M58 and put it into either the M52 or the Optiplex 760 and I can DVD boot and successfully deploy the image. [so problem is not with the HDD]
: 2. I have taken a smaller 40 GB ATA HDD from an older machine, put it into the M58. It boots from DVD correctly but RDeploy (the image) does not see the HDD.
: 3. I have taken the ATA DVD out of the Dell 760; put it into the M58 with the 250GB HDD. It boots from DVD correctly but RDeploy (the image) does not see the HDD.

: This leads me to believe (that the force is strong in the M58) that the problem is the driver for the HDD controller or the chipset on the M58.

: HOWEVER, when I LAN boot with the Altiris created disc I can deploy the IMAGE.exe to the M58 without any issues.

: This then leads me to believe that the Altiris boot disc has the correct driver installed to see the chipset/controller/HDD.

: Further Troubleshooting:

: 1. I have confirmed that the BIOS settings for AHCI are turned off on the working machines and then did the same on the M58. No-go.
: 2. I have confirmed that the IMAGE.EXE works fine off DVD, I just imaged another T500 without problems
: 3. I have taken GCDROM.SYS and added it to a FDD version of the Altiris LAN boot disk, disconnected the LAN cable and waited for it to fail and go to the DOS prompt. I then manually ran the image (I can ‘see’ the DVD drive contents) but it fails with the same message that it does not see the HDD.

: Further Conclusions:

: I assume that the GCDROM.SYS somehow interferes with the device drivers that the Altiris LAN boot disk uses. I have tried adding the GCDROM.SYS as the first device loaded in CONFIG.SYS and also as the last device loaded, both are no-go.

: Right, so now I have to find the device driver on the Altiris boot disc that I can then use on my DVD boot disc so that I can deploy images using DVD. And, in case you are wondering why I don’t just simply use LAN to deploy the image, we have offices not connected to ‘my’ LAN in far out areas (like Tatooine) where the techies have to use DVD’s to image machines.

: So here is my dilemma. My DOS skills (although better than some) are not equal to the task of finding which bleeding file the Altiris boot disc uses to load the DEVICE file I need to get the image to deploy successfully.

: Or I need an alternative to GCDROM.SYS that will allow my DVD bootable disc to see the ATA DVD on the M58 and the ATA drive so that I can deploy the IMAGE.EXE

: If anyone out there can help, honorary Vader kudos await.

: Here is the ALTIRIS AUTOEXEC.BAT and CONFIG.SYS (yes, they’re long)

: ==============
: =AUTOEXEC.BAT=
: ==============
: @echo off
: if not "%debug%" == "" echo on
: if "%echo%" == "" set dbg=rem
: if not "%echo%" == "" set dbg=

: REM ==================================================
: REM If rebooting from ram, skip ahead
: REM --------------------------------------------------
: if exist \ramdone.txt goto skip

:
: REM ==================================================
: REM Run the keyboard/screen lock utility
: REM --------------------------------------------------
: if exist \kbdsclk.exe \kbdsclk.exe -x

:
: REM ==================================================
: REM Altiris DOS startup code
: REM Version=6.8 SP2
: REM --------------------------------------------------
: rem cls
: echo.
: echo.
: echo.
: echo.
: echo.
: echo.
: echo.
: echo Please wait while Altiris msdos (FLOPPY boot) loads...
: echo.

:
: REM ==================================================
: REM Skip to here if rebooting from ram
: REM --------------------------------------------------
: :skip

:
: REM ==================================================
: REM Find the RAM drive (if we are using one)
: REM
: REM This will set the RAM_DRV environment variable to the
: REM drive letter of the ram drive or to 'none' if no ram drive.
: REM --------------------------------------------------
: call \findramd.bat

:
: REM ==================================================
: REM Predefine Altiris environment variables to default values
: REM User scripts in \prestart or \startup can redefine these
: REM ALTIRIS_PREBOOT (will contain one of: msdos, freedos)
: REM ALTIRIS_PROCESSOR (will contain x86)
: REM ALTIRIS_BOOTDEVICE (will contain one of: USB, PXE, CDROM, DVD, HBW, EBW, FLOPPY)
: REM ALTIRIS_BOOTTYPE (will contain one of: NETWORK, AUTOMATION)
: REM ALTIRIS_BOOTDISK (will contain drive letter of original boot disk (including ":"))
: REM ALTIRIS_SHARE (will contain drive letter for Deployment share (including ":"))
: REM ALTIRIS_SHARE_ (will contain drive letter for Deployment share (excluding ":"))
: REM ALTIRIS_VER (will contain version of DS that created boot image)
: REM SHARE (defined for DS 6.5 backward compatibility)
: REM --------------------------------------------------
: set ALTIRIS_PREBOOT=msdos
: set ALTIRIS_PROCESSOR=
: set ALTIRIS_BOOTDEVICE=FLOPPY
: set ALTIRIS_BOOTTYPE=NETWORK
: set ALTIRIS_BOOTDISK=C:
: set ALTIRIS_SHARE_=X
: set ALTIRIS_SHARE=%ALTIRIS_SHARE_%:
: set ALTIRIS_VER=DS6.8
: set SHARE=%ALTIRIS_SHARE_%

:
: REM ==================================================
: REM Find the boot drive
: REM
: REM This will set the BOOT_DRV environment variable to the
: REM drive letter of the boot drive. It will also set the NET
: REM variable to the drive letter of the drive containing the
: REM network folder.
: REM --------------------------------------------------
: call \findboot.bat
: set ALTIRIS_BOOTDISK=
: for %%i in (C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z) do if exist %%i:\atrsboot set ALTIRIS_BOOTDISK=%%i:
: rem for %%i in (Z,Y,X,W,V,U,T,S,R,Q,P,O,N,M,L,K,J,I,H,G,F,E,D,C) do if exist %%i:\atrsboot set ALTIRIS_BOOTDISK=%%i:
: if "%ALTIRIS_BOOTDISK%" == "" set ALTIRIS_BOOTDISK=%BOOT_DRV%:
: if "%RAM_DRV%" == "none" echo Booting Drive %BOOT_DRV%:...
: echo.

: set net=%BOOT_DRV%
: if not "%RAM_DRV%" == "none" if not "%RAM_DRV%" == "" set net=%RAM_DRV%
: set TEMP=%net%:\TEMP
: cd \

:
: REM ==================================================
: REM The following lines contain 'set' environment variables that
: REM are used later in the program. You may wish to change them by
: REM simply changing the values or REMing and unREMing them
: REM --------------------------------------------------

: REM ==================================================
: REM Bootwork Variables/Switches
: REM --------------------------------------------------
: REM set BWDEBUG=-log%ALTIRIS_SHARE%\bootwork.log

: REM ==================================================
: REM Network and System Variables
: REM --------------------------------------------------
: set WATTCP.CFG=%net%:\net

: REM ==================================================
: REM See if bootworks should be run from the share
: REM --------------------------------------------------
: set agentdir=%BOOT_DRV%
: if "" == "" set agentdir=%ALTIRIS_SHARE_%

:
: REM ==================================================
: REM Get PXE settings
: REM --------------------------------------------------
: rem This capability not available in DOS
: if exist %BOOT_DRV%:\getpxe.bat call %BOOT_DRV%:\getpxe.bat

: REM ==================================================
: REM Set path
: REM --------------------------------------------------
: set PATH=%BOOT_DRV%:\;%net%:\;%net%:\dos;%net%:\net

: REM ==================================================
: REM Load user prestart applications from prestart folder
: REM --------------------------------------------------
: for %%f in (%BOOT_DRV%:\prestart\*.*) do call %%f

: REM ==================================================
: REM Run the detect utility for PCI cards
: REM --------------------------------------------------
: %net%:
: cd %net%:\net
: if exist %net%:\net\PCIdtect.exe echo Detecting network adapters...
: if exist %net%:\net\PCIdtect.exe %net%:\net\PCIdtect.exe
: if exist %net%:\net\PCIdtect.exe echo.
: cd \

: REM ==================================================
: REM Cardsrvc.bat (optional) is manually created by the user and must be placed in the
: REM correct driver folder (i.e. myConfig\net\myDriver). PCIdtect copies it to the
: REM net folder (along with the appropriate protocol.ini, system.ini files).
: REM The user must specify the name of the card bus services executable file inside cardsrvc.bat
: REM and supply Boot Disk Creator with this executable file by adding it to the
: REM "Additional files" folder or placing it in the "net" folder of the configuration.
: REM --------------------------------------------------
: if exist %net%:\net\cardsrvc.bat call %net%:\net\cardsrvc.bat

: REM ==================================================
: REM This call to bootworks simply configures the network with
: REM information from the Windows client (only if bootworks is local)
: REM --------------------------------------------------
: if %ALTIRIS_BOOTTYPE%%agentdir% == AUTOMATION%BOOT_DRV% %agentdir%:\bootwork.exe -cfg -nodiag

: REM ==================================================
: REM Start the network (pass "echo" to display output from net commands)
: REM (Authenticate to network)
: REM (Map network drives)
: REM (Find possible new mapping to the share)
: REM Set working directory to the share
: REM --------------------------------------------------
: call %BOOT_DRV%:\startnet.bat echo
: rem call %BOOT_DRV%:\startnet.bat
: set SHARE=%ALTIRIS_SHARE_%
: set PATH=%PATH%;%ALTIRIS_SHARE%\;%ALTIRIS_SHARE%\bootwiz\platfo~1\dos\%ALTIRIS_PREBOOT%\os
: %ALTIRIS_SHARE%

: REM ==================================================
: REM Load user applications from startup folder
: REM --------------------------------------------------
: for %%f in (%BOOT_DRV%:\startup\*.*) do call %%f

: REM ==================================================
: REM Run user startup batch file
: REM --------------------------------------------------
: if exist %BOOT_DRV%:\startup.bat %BOOT_DRV%:\startup.bat

: REM ==================================================
: REM NETWORK or AUTOMATION boot?
: REM --------------------------------------------------
: if %ALTIRIS_BOOTTYPE% == AUTOMATION goto automation

:
: REM ==================================================
: REM NETWORK boot
: REM --------------------------------------------------
: :network
: REM rdeploy.exe
: rem REM %ALTIRIS_SHARE%\rdeploy\DOS\rdeploy.exe
: goto end

:
: REM ==================================================
: REM AUTOMATION boot
: REM --------------------------------------------------
: :automation

: REM ==================================================
: REM Start bootworks
: REM --------------------------------------------------
: :reload2

: if exist %net%:\bwscript.bat del %net%:\bwscript.bat >nul
: rem cls
: %agentdir%:\bootwork.exe %BWDEBUG%

: if errorlevel 160 goto reload2
: if errorlevel 100 goto boot_production
: if not exist %net%:\bwscript.bat goto end
: call %net%:\bwscript.bat
: goto reload2

: REM ==================================================
: REM Production Boot for errorlevel 100.
: REM Unload the LAN drivers (logout) then call the dreboot program
: REM to quickly boot the local operating system.
: REM
: REM NOTE: Normal bootwork execution should not get to this
: REM section of the batch file.
: REM --------------------------------------------------
: :boot_production
: call %BOOT_DRV%:\stopnet.bat
: %BOOT_DRV%:\dreboot.exe

:
: REM ==================================================
: REM Done
: REM --------------------------------------------------
: :end
: set dbg=

: ============
: =CONFIG.SYS=
: ============
: DEVICE=\DOS\HIMEM.SYS
: REM UMBPCI.SYS is an upper memory block driver for freedos
: REM REM DEVICE=\DOS\UMBPCI.SYS
: REM DEVICE=\DOS\EMM386.EXE NOEMS
: DEVICEHIGH=\net\ifshlp.sys
: REM DEVICEHIGH=\vdisk.sys /e 5760 512 512
: switches = /f
: REM switches = /n
: DOS=HIGH,UMB
: SHELL=command.com /f /p /E:2048
: BUFFERS=20
: FILES=20
: STACKS=0,0
: FCBS=1,0
: LASTDRIVE=Z

: And just so you know, here is my AUTOEXEC.BAT and CONFIG.SYS

: ==============
: =AUTOEXEC.BAT=
: ==============
: @echo off
: prompt $s
: set EXPAND=YES
: SET DIRCMD=/O:N
: cls
: set temp=c:\
: set tmp=c:\
: path=a:\
: LH MSCDEX.EXE /D:CDROM000 /D:CDROM001 /D:CDROM002 /D:CDROM003 /D:CDROM004 /D:CDROM005 /L:X
: X:\image.exe -sz1:100p -nobw -nocancel -noprompt

: ============
: =CONFIG.SYS=
: ============
: DEVICE =himem.sys /testmem:off
: DEVICE=GCDROM.SYS /D:CDROM000 /C0
: DEVICE=GCDROM.SYS /D:CDROM001 /C1
: DEVICE=GCDROM.SYS /D:CDROM002 /C2
: DEVICE=OAKCDROM.SYS /D:CDROM003 /C3
: DEVICE =btdosm.sys
: DEVICE =flashpt.sys
: DEVICE=BTCDROM.SYS /D:CDROM004 /C4
: DEVICE =aspi2dos.sys
: DEVICE =aspi8dos.sys
: DEVICE =aspi4dos.sys
: DEVICE =aspi8u2.sys
: DEVICE=aspicd.sys /D:CDROM005 /C5
: files=60
: buffers=20
: dos=high,umb
: stacks=9,256
: lastdrive=z




Follow Ups:



Post a Followup (use TAB key to move between boxes - NOT ENTER or RETURN)

Name:
E-Mail:

Subject:

Type your comments in the box below and SUBMIT:


[ Follow Ups ] [ Post Followup ] [ The EasyDOS Forum ] [ FAQ ]