![]() ![]() |
Feb 2 2009, 08:31 AM
Post
#6
|
|
|
MSFN SuperB Group: Software Developers Posts: 5575 Joined: 23-July 04 From: Italy Member No.: 25215 OS: none
|
OK. That saves me one file per boot foler, but I still need the boot folder. Sure, life is tough. I'll have a play with GRUB4DOS (if there's an arrow-driven text-menu system with radio buttons, I'm sold :-) otherwise I'll have to finish this project before I take on that one!) I am not sure what you mean by "arrow driven text menu with radio buttons" Grub4dos has limited "graphical capabilities", though latest versions have gfxmenu enabled, here is screenshot (oldish version, without gfxmenu): ![]() And here one with gfxmenu: You can use arrows to select an entry and also program hot-keys. If you want something really nice looking (depending on your graphical capabilities, of course http://www.boot-land.net/forums/index.php?showforum=72 http://aerostudio.boot-land.net/ Here you can find a few screenshots on how nice it can be looking: http://www.damasgate.com/vb/810499-post31.html jaclaz |
|
|
|
Feb 2 2009, 11:36 AM
Post
#7
|
|
|
Advanced Member ![]() ![]() ![]() Group: Members Posts: 385 Joined: 29-September 05 Member No.: 74988
|
@deadbug
Well, I started something at XP SP3 time. Not finished so far. There are some manual parts still, should be automatic builded in future. Maybe you like some ideas. No fancy gui. Just a batch. And I'm lazy, did choose some requirements: no space in file or directory names, no strange chars, plain ASCII chars Back then I choose some conditions: small foot print at hard disk less copy files at hard disk some single CD XP folders: possibility to create a single CD and to create multi boot at request As files are not copied at build time, iso creation tool has to collect files from different locations and merge them. Another solution maybe create junction and or hard linkd at build time. This creates final multi boot soltuion at hard disk at build time. General multi boot was described http://www.msfn.org/board/index.php?s=&...st&p=814566 txtsetup.sif SetupSourcePath and BootPath is used. That's similiar to flyakite and different. There are three fixed file names to define basic boot QUOTE \I386\NTDETECT.COM \I386\SETUPLDR.BIN \I386\TXTSETUP.SIF Other files are redirected and defined by BootPath and SetupSourcePath Sed.exe is used to create a multi boot txtsetup.sif. Mkisofs is used to redirect files. That's the basic windows multi boot solution. Bootloader is a difficult decission. Grub4dos can chainload setupldr.bin. No boot sector file required. Grub4dos is developed currently. BCDW can chainload setupldr.bin. No boot sector file required. In addition BCDW hexedit setupldr.bin in RAM. No hexediting setupldr.bin at build time. However BCDW isn't developed since 2004. Does fail at some current hardware. Isolinux is developed currently. Tested at a lot of hardware. Can chainload setupldr.bin at (USB) hard disk, but not at CD so far. Hence require a boot sector file. As for grub4dos and isolinux: Gsar.exe can be used to hexedit setupldr.bin at build time. A example, create a multi boot XP PRO CD: Given XP source files at XP_PRO. d:\bcd\multi\XP_PRO Files are at a NTFS partition. Batches are at D:\Bcd\multi\build. Binaries are at D:\Bcd\multi\build\bin. QUOTE BatchLink.exe mkisofs.exe cygwin1.dll gsar.exe sed.exe Integrate BTS driverpacks drivers: First step: create a second d:\bcd\multi\XP_PRO_BTS Create hard links instead of copy: mk-link.cmd D:\Bcd\multi\XP_PRO D:\Bcd\multi\XP_PRO_BTS Integrate BTS driverpacks drivers manually. D:\Bcd\multi\build\mk-link.cmd CODE @echo off setlocal EnableExtensions EnableDelayedExpansion set path=%~dp0;%~dp0.\bin;%path% rem Create hard links for XP driver integration rem BatchLink Utility rem Copyright © 2000 Mike Woodring rem http://www.bearcanyon.com rem ### parameters #################################################### set Source=%~1 set Destination=%Source%_BTS if not %2.==. set Destination=%~2 rem ################################################################### if not exist "%Source%" ( echo error: source directory %source% not found echo. & echo Syntax: %~nx0 source [destination] goto :eof) if not exist "%~dp0.\bin\BatchLink.exe" (echo error: BatchLink.exe not found &goto :eof) md "%Destination%" call :calc_string_length %Source% set /a new_dir_start=%string_length%+1 echo create hard links at %Destination% pushd %Destination% BatchLink.exe %Source% /q popd pushd %Source% for /D /R . %%a in (*) do call :mklink %%a popd goto :eof :mklink set Source=%~1 call :exec set Target=%%Source:~%new_dir_start%%% echo %Target% pushd "%Destination%" md "%Target%" cd /d "%Target%" BatchLink.exe "%Source%" /q popd goto :eof :calc_string_length set string=%* set string=%string: =#% set string_length=-1 echo %string% for /L %%a in (0,1,255) do ( call :exec set Char=%%string:~%%a,1%% if !Char!.==. (set string_length=%%a & goto :eof) ) goto :eof :exec %* goto :eof Create a config file: d:\bcd\multi\build\multi01.txt CODE ;add default windows versions XPR1 XP_PRO install XP Pro ; ;add driverpacks version XPR2 XP_PRO_BTS install XP Pro - with BTS driverpacks d:\bcd\multi\root contains multi boot loader. BCDW is used currently. That's loader is d:\bcd\multi\root\BCDW\loader.bin boot loader definition d:\bcd\multi\root\BCDW\BCDW.INI is edited manually. The batch should create this file in future. CODE [MenuItems] C:\ ; Boot from drive C: \XPR1\setupldr.bin;install XP Pro \XPR2\setupldr.bin;install XP Pro - with BTS driverpacks :reboot ; REBOOT ; Reboot PC D:\Bcd\multi\build\mkiso_Bootpath.cmd CODE @echo off setlocal EnableExtensions EnableDelayedExpansion REM +=================================================================+ REM | Multi-Boot CD | REM | | REM | bootpath solution | REM | | REM | based on: DVD http://flyakite.msfn.org/ | REM | | REM |--- created by cdob ---------------------------------------------| REM | | REM +--- under construction ver -272 --------------------------------+ set path=%~dp0;%~dp0.\bin;%path% set multi_lst=%~dp0multi01.txt if not %~1.==. set multi_lst=%~1 rem mkisofs sort file set sort_lst=%~dp0multi_sort.txt rem mkisofs parameter file set mkisofs_par=%~dp0mkisofs.par pushd "%~dp0.." echo -o multi_bootpath\XP_multi.iso > %mkisofs_par% (echo -iso-level 3 -U -D echo -force-uppercase echo -volid "XP_MULTI" echo -b BCDW/loader.bin -hide loader.bin -hide boot.catalog echo -no-emul-boot -boot-load-size 4 echo -duplicates-once echo -graft-points -cache-inodes -follow-links ) >> %mkisofs_par% rem exclude some folders (echo -x win9xmig echo -x win9xupg echo -x winntupg echo -x COMPDATA ) >> %mkisofs_par% rem add multi_bootpath\root folder echo multi_bootpath/root >> %mkisofs_par% if exist multi_bootpath\root\win51* del multi_bootpath\root\win51* FOR /F "eol=; tokens=1,*" %%a in (%multi_lst%) do call :add_multi %%a %%b rem fix: replace multi_bootpath\root\win51* files by 0 byte size for %%a in (multi_bootpath\root\win51*) do ( echo /%%~nxa=nul: >> %mkisofs_par% del %%a ) echo on mkisofs.exe @%mkisofs_par% @echo off popd goto :eof ============================================================= :add_multi ============================================================ set boot_4_char=%~1 set source_inst_files=%~2 echo. &echo add: %boot_4_char% %source_inst_files% if not exist multi_bootpath\%boot_4_char%\I386 md multi_bootpath\%boot_4_char%\I386 rem collect flag files at root. And create empty flag files at %boot_4_char% for %%a in (%source_inst_files%\win51*) do ( copy /y %%a multi_bootpath\root >nul 2>&1 echo /%boot_4_char%/%%~nxa=nul: >> %mkisofs_par% ) rem add I386 files, remap to new four char name (echo /%boot_4_char%/I386=multi_bootpath/%boot_4_char%/I386 echo /%boot_4_char%/I386=%source_inst_files:\=/%/I386 ) >> %mkisofs_par% rem add available $OEM$ OEM folder for %%a in ($OEM$ OEM) do ( for %%b in (multi_bootpath\%boot_4_char% %source_inst_files%) do ( if exist %%b\%%a ( echo %%b\%%a set read_path=%%b\%%a echo /%boot_4_char%/%%a/=!read_path:\=/! >> %mkisofs_par% ) ) ) rem patch txtsetup.sif SetupSourcePath: set \XP_INST_%boot_4_char%\ if not exist multi_bootpath\%boot_4_char%\txtsetup.sif ( sed.exe -e s/"^SetupSourcePath.*=.*$"/"SetupSourcePath = \"\\%boot_4_char%\\\\\"\nBootPath = \\%boot_4_char%\\I386\\ "/g %source_inst_files%\I386\txtsetup.sif> multi_bootpath\%boot_4_char%\TXTSetup.SIF ) rem add \%boot_4_char%\ files (echo /%boot_4_char%/TXTSETUP.SIF=multi_bootpath/%boot_4_char%/TXTSetup.SIF echo /%boot_4_char%/NTDETECT.COM=%source_inst_files:\=/%/I386/NTDETECT.COM echo /%boot_4_char%/SETUPLDR.BIN=%source_inst_files:\=/%/I386/SETUPLDR.BIN ) >> %mkisofs_par% rem todo dosnet.inf goto :eof ============================================================= Example creates a mkiosfs.par parameter file CODE -o multi_bootpath\XP_multi.iso -iso-level 3 -U -D -force-uppercase -volid "XP_MULTI" -b BCDW/loader.bin -hide loader.bin -hide boot.catalog -no-emul-boot -boot-load-size 4 -duplicates-once -graft-points -cache-inodes -follow-links -x win9xmig -x win9xupg -x winntupg -x COMPDATA multi_bootpath/root /XPR1/WIN51IP=nul: /XPR1/WIN51IP.SP3=nul: /XPR1/I386=multi_bootpath/XPR1/I386 /XPR1/I386=XP_PRO/I386 /XPR1/TXTSETUP.SIF=multi_bootpath/XPR1/TXTSetup.SIF /XPR1/NTDETECT.COM=XP_PRO/I386/NTDETECT.COM /XPR1/SETUPLDR.BIN=XP_PRO/I386/SETUPLDR.BIN /XPR2/WIN51IP=nul: /XPR2/WIN51IP.SP3=nul: /XPR2/I386=multi_bootpath/XPR2/I386 /XPR2/I386=XP_PRO_BTS/I386 /XPR2/OEM/=XP_PRO_BTS/OEM /XPR2/TXTSETUP.SIF=multi_bootpath/XPR2/TXTSetup.SIF /XPR2/NTDETECT.COM=XP_PRO_BTS/I386/NTDETECT.COM /XPR2/SETUPLDR.BIN=XP_PRO_BTS/I386/SETUPLDR.BIN /WIN51IP=nul: /WIN51IP.SP3=nul: XP use flag files win51* by default. Adjust batch if you use Windows 2000. As for driverpacks there is antother decision to be taken. Method 2 use \OEM folder. That's one OEM version for hole CD/DVD. I prefer OEM at each windows installation \ABCD\OEM. Driverpacks presetup.cmd has to be edited. |
|
|
|
Feb 4 2009, 01:51 PM
Post
#8
|
|
|
Junior ![]() Group: Members Posts: 96 Joined: 30-June 05 Member No.: 62492
|
I am not sure what you mean by "arrow driven text menu with radio buttons" Well I've just found that I don't know how to put a screen shot in here! I've attached the images instead, maybe that'll actually work! The DVD boots to an ISOLINUX splash screen (main.jpg). I hit return to boot the DVD (rather than timing out and booting HD1) and then I get to the screen in install.jpg. I can now select menus with the usual left/right/up/down arrow mechanism until I get to apps.jpg. Here I've got what I want and I hit return. Now it will fire up XP and I'll end up (after manually partitioning) with Windows XP SP3 + updates + apps. I don't have radio buttons yet, but if I did I'd compact thing somewhat and have a window with [SP0/SP1/SP2/SP3/SPextra] with exactly one selectable at a time and a separate radio button to choose DriverPacks or No DriverPacks. Just a small matter of programming. -- deadbug
Attached File(s)
main.JPG ( 50.09K )
Number of downloads: 22
install.JPG ( 60.53K )
Number of downloads: 33
xp_pro.JPG ( 64.52K )
Number of downloads: 19 |
|
|
|
Feb 4 2009, 02:22 PM
Post
#9
|
|
|
Junior ![]() Group: Members Posts: 96 Joined: 30-June 05 Member No.: 62492
|
Back then I choose some conditions: small foot print at hard disk less copy files at hard disk some single CD XP folders: possibility to create a single CD and to create multi boot at request As for driverpacks there is antother decision to be taken. Method 2 use \OEM folder. That's one OEM version for hole CD/DVD. I prefer OEM at each windows installation \ABCD\OEM. Driverpacks presetup.cmd has to be edited. @cdob Thanks for posting that - there's plenty to work through! But that's good, plenty of useful ideas. I've not really played much with hard links under XP so I've yet to work out what the gotchas might be. I do like the idea though of being able to create various flavours of DVD or CD on demand, so I'll have to look into that. As for DriverPacks, any reason for prefering \ABCD\OEM to \OEM? I've not really done much with DriverPacks yet other than integrating it into my MB DVD for XP Pro + Home. -- deadbug |
|
|
|
Feb 4 2009, 04:34 PM
Post
#10
|
|
|
Advanced Member ![]() ![]() ![]() Group: Members Posts: 385 Joined: 29-September 05 Member No.: 74988
|
As for DriverPacks, any reason for prefering \ABCD\OEM to \OEM? \OEM: that's one version for a multi boot DVD. How to try different driverpacks versions at one DVD? How to support 2000, XP x86, XP x64, 2003 at one DVD? \ABCD\OEM allows above examples at one DVD. Well, driverpacks dosn't support x64 drivers so far, but maybe in future. |
|
|
|
Feb 10 2009, 02:25 PM
Post
#11
|
|
|
Junior ![]() Group: Members Posts: 96 Joined: 30-June 05 Member No.: 62492
|
I'm in the process of fiddling with my AIO build process anyway, so I though I might have a go with hard links.
XP won't allow a hard link of a directory (it does have junctions, but I'm not considering those at this stage), which I guess is why you hard link each file individually. So my initial plan was that I would have a stable source tree with things like \AIO-SRC\SETUP\XP\Pro\SP3. Then if I decide that I want SP3 on my DVD but with (for example) boopggy's WMP11, then I would hard link all files in that first tree to my final DVD tree under \AIO-DVD\SETUP\XP\Pro\SPX and apply boooggy's slipstreamer to it. But if I do that, then surely any files that are patched by that slipstreamer become altered in my supposedly stable source tree? Is there some part of the method I'm missing or is this a feature? Is there any way to create a "copy-on-write" style of hard link? -- deadbug |
|
|
|
Feb 11 2009, 10:11 AM
Post
#12
|
|
|
Advanced Member ![]() ![]() ![]() Group: Members Posts: 385 Joined: 29-September 05 Member No.: 74988
|
But if I do that, then surely any files that are patched by that slipstreamer become altered in my supposedly stable source tree? Good catch. Yes, that's the danger of hard links. It depends how a application does change files. Does it patch a existing file? stable source tree is changed too Does it create temorarily a new file, delete old file, and rename new file back? stable source tree is not changed. That's how hard links works. Driverpacks base created a new txtsetup.sif. Source tree txtsetup.sif is different to target tree txtsetup.sif. Other applicaitons may behave different. Applicaiton behaviour reports are highly welcome. QUOTE Is there some part of the method I'm missing or is this a feature? Is there any way to create a "copy-on-write" style of hard link? I don't know such a feature. That won't hard links anymore.
|
|
|
|
![]() ![]() |
| Lo-Fi Version | Time is now: 9th February 2010 - 09:42 AM |