dillon@CORY.BERKELEY.EDU (Matt Dillon) (11/13/86)
I've gotten tired of hearing all the seeks my floppy is making to bring boot from workbench disk, so I did some experimenting and came up with an easy solution. All it involves is a lot of dilligent work. The idea is to start with a blank disk, create the directory structure and files in the same order that the workbench accesses them on boot and while it is executing your startup-sequence. For me, there is also a set of commands I execute from my shell login, so take the following as an example. WORKBENCH BOOT PROCEDURE: (1) Make a blank disk bootable by using the Dos INSTALL program. You now have a workbench diskette which, even though it's blank, will boot and give you a default cli with the default preference settings. You don't even need a startup-sequence (2) Create directories and files in the same order that workbench accesses them. Note that if any of the files doesn't exist, some default will be used: DEVS/SYSTEM-CONFIGURATION -contains preference settings S/STARTUP-SEQUENCE -contains execute script so far, the sequence of commands to setup the boot disk is (using SHELL commands): 'x:' is your old workbench diskette mkdir devs s c l copy x:devs/system-configuration devs copy x:s/startup-sequence s You now want to copy commands executed by the startup-sequence. Assume the following startup sequence (mine): ----------- shell c:.rootlogin endcli > nil: ----------- copy x:c/shell c copy x:c/.rootlogin c My Shell login looks like: ----------- date echo -n "date/time? " addbuffers df0: 30 addbuffers df1: 30 binddrivers echo ram:* >nil: source c:.login #contains aliases etc... input x;if $x;date $x;endif;unset x ----------- Note that I echo ram:* to nil:. This is only to force workbench to load the RAM disk driver. Note that I ask the question to set the date and time, and do the rest of the initialization while the user is typing his responce (none of the commands inbetween output anything), Then I get the user line and set the date. So, we continue copying stuff as follows: copy x:c/date c copy x:c/addbuffers c copy x:c/binddrivers c copy x:l l Note the last copy creates the entire 'l' directory and files. This is mainly to get the Ram-Handler which handles the RAM: device, but all three files are needed to have a properly working workbench. Now BRING OVER THE REST OF THE FILES. This involves creating other directories (such as LIBS), and copying files by hand. Don't trust AmigaDos to overwrite files in the same place on disk, so only copy stuff which isn't already on your new workbench. NOTE that none of my startup commands required any disk libraries. If you have any startup commands that do require disk libraries, you should create the libs directory and copy the libraries in question. The whole idea is to reduce the number of seeks required to bring up the system. For those of you who use the icon-based system, you would have also copied LOADWB and a few of the disk libraries (I'm not sure which ones) over. Don't get the idea that I'm excluding anything... I'm just talking about what you initially put on your workbench diskette. After your through copying that, you copy everything else over (I reiterate to, hopefully, avoid confusion). Now, when I bring up my system, I hear only a few clicks from my drive, and it comes up considerably faster. And if you don't like manually doing this stuff everytime a new version of the OS comes out, write a script to do it. Happy Hacking -Matt Dillon P.S. By only copying what I use, I have 382K free on my workbench diskette.