add directory Linux-0.98
This commit is contained in:
BIN
Linux-0.98/INSTALL/autocn/ACONVERT.EXE
Normal file
BIN
Linux-0.98/INSTALL/autocn/ACONVERT.EXE
Normal file
Binary file not shown.
1234
Linux-0.98/INSTALL/autocn/AUTOCON.DOC
Normal file
1234
Linux-0.98/INSTALL/autocn/AUTOCON.DOC
Normal file
File diff suppressed because it is too large
Load Diff
BIN
Linux-0.98/INSTALL/autocn/AUTOCON.EXE
Normal file
BIN
Linux-0.98/INSTALL/autocn/AUTOCON.EXE
Normal file
Binary file not shown.
BIN
Linux-0.98/INSTALL/autocn/AUTOCON.HLP
Normal file
BIN
Linux-0.98/INSTALL/autocn/AUTOCON.HLP
Normal file
Binary file not shown.
34
Linux-0.98/INSTALL/autocn/CACHE
Normal file
34
Linux-0.98/INSTALL/autocn/CACHE
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
|
||||||
|
If you are running a Cache program, and do not have it set to write
|
||||||
|
through, then (if you have Autocon set for a Warm or Cold boot -- and
|
||||||
|
probably External) you must configure Autocon to "Flush" your cache.
|
||||||
|
Hit the <F4> key, and put in the command string that causes your cache
|
||||||
|
to flush. The command should be listed in the documentation for your
|
||||||
|
Cache program. Autocon will then save the information, and perform a
|
||||||
|
"Flush" before each reboot.
|
||||||
|
|
||||||
|
If you are not sure if your Cache is set to "write through", please
|
||||||
|
configure Autocon to do the "Flush", just to be on the safe side.
|
||||||
|
|
||||||
|
The symptoms of a cache problem is that the Autoexec and Config files do
|
||||||
|
not get updated, and/or any edited Autocon configurations do not get
|
||||||
|
saved. In the worst case, the Autocon.Dat file will get corrupted, and
|
||||||
|
your screen colors will disappear (screen will be blank when you start
|
||||||
|
AutoCon).
|
||||||
|
|
||||||
|
Setting Autocon up to do the "Flush" will remove the problems.
|
||||||
|
|
||||||
|
Some Flush commands that I know are:
|
||||||
|
|
||||||
|
PC-KWIK - SUPERPCK /F
|
||||||
|
PC-CACHE - PC-CACHE /FLUSH
|
||||||
|
FLASH - FLASH /F?
|
||||||
|
HYPERDISK - HYPERDK W
|
||||||
|
SMARTDRV - SMARTDRV /C (new ver with WINDOWS 3.1)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Sorry for any inconvenience,
|
||||||
|
|
||||||
|
|
||||||
|
-Larry Weaver
|
||||||
61
Linux-0.98/INSTALL/autocn/CHANGES
Normal file
61
Linux-0.98/INSTALL/autocn/CHANGES
Normal file
@@ -0,0 +1,61 @@
|
|||||||
|
|
||||||
|
CHANGES
|
||||||
|
|
||||||
|
I don't know if you read the changes file in the previous version,
|
||||||
|
so I will summarize it. I sold my home in Santa Barbara, and moved
|
||||||
|
to a small town in Northern California to concentrate on writing
|
||||||
|
shareware full time. Well (you may ask), how's it going.
|
||||||
|
|
||||||
|
Since my program was reviewed on page 50 in the Nov. 13, 1990 issue
|
||||||
|
of PC Magazine, registrations have increased significantly.
|
||||||
|
Appearantly a lot of people read (and pay attention to) PC
|
||||||
|
Magazine. Site registrations have really increased, and I now have
|
||||||
|
some Fortune 50 customers. Banks, however, make up the bulk of
|
||||||
|
the Site Licensees.
|
||||||
|
|
||||||
|
I ran into a few tax problems (it was either pay Uncle a lot of
|
||||||
|
money, or put a lot of money into my house), so I've been
|
||||||
|
consulting pretty heavily the last year and doing major
|
||||||
|
reconstruction to my house. I think I am finally through with any
|
||||||
|
big consulting jobs (and with rebuilding my house), so now AutoCon
|
||||||
|
will be getting a lot more attention.
|
||||||
|
|
||||||
|
This is still not the release I had planned (it will probably show
|
||||||
|
up some time around July), but one of my competitors was on
|
||||||
|
Compuserve saying how much better he was than I because his program
|
||||||
|
could handle DOS 5.0's HIGH and UMB flags. I decided I needed to
|
||||||
|
add this capability to AutoCon and get out a new release before he
|
||||||
|
could cause any more problems. So with this release, AutoCon will
|
||||||
|
handle both MSDOS 5.0's HIGH and UMB flags, and it is compatible
|
||||||
|
with DRDOS which is one up on my competitor.
|
||||||
|
|
||||||
|
The 2.1 release of AutoCon will have a lot more editor
|
||||||
|
enhancements. I'm planning pull down menus (similar to the front
|
||||||
|
screen), and a split screen capability. I also intend to allow
|
||||||
|
Search/Replace operations to go automatically through all
|
||||||
|
configurations. I will also be able to use the screen size in
|
||||||
|
effect when AutoCon is started, instead of switching everything to
|
||||||
|
the 80X25 mode.
|
||||||
|
|
||||||
|
I have a support BBS online and functional. The number is (916)
|
||||||
|
623 4455, and it is in operation 24 hours a day. It has a 9600+
|
||||||
|
BAUD modem that is CompuCom CSP, V32, and V42 compatible (of course
|
||||||
|
it connects just fine at 2400 <or less> BAUD). The main function
|
||||||
|
of the BBS is (of course ) AutoCon support. If it gets busy
|
||||||
|
enough, it will grow into a full multi-line BBS. As a consequence
|
||||||
|
there are several megabytes of downloadable files on it, always
|
||||||
|
including the latest shareware release of AutoCon. I will also set
|
||||||
|
up a section for a group of Beta testers, so let me know if you are
|
||||||
|
interested in becomming one. I see several enhancements in
|
||||||
|
AutoCons future, as well as a few other programs that I have in
|
||||||
|
mind.
|
||||||
|
|
||||||
|
This is my first BBS and I'm sure there will be will be some
|
||||||
|
growing pains, so please bear with me.
|
||||||
|
|
||||||
|
I love the place I've moved to and I thank you very much for the
|
||||||
|
support you have given to AUTOCON, and for giving me the incentive
|
||||||
|
to change careers.
|
||||||
|
|
||||||
|
|
||||||
|
-Larry Weaver
|
||||||
8
Linux-0.98/INSTALL/autocn/FILE_ID.DIZ
Normal file
8
Linux-0.98/INSTALL/autocn/FILE_ID.DIZ
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
AutoCon V2.0g is a database manager for
|
||||||
|
Autoexec and Config Files. Allows up to
|
||||||
|
50 configurations, and makes switching
|
||||||
|
between them easy. Run full interactive
|
||||||
|
(editor, mouse, menus, context sensitive
|
||||||
|
help, etc.) or command line. MENU.CTL
|
||||||
|
device driver can setup menu of
|
||||||
|
configurations during boot. (ASP)
|
||||||
175
Linux-0.98/INSTALL/autocn/KEY.TXT
Normal file
175
Linux-0.98/INSTALL/autocn/KEY.TXT
Normal file
@@ -0,0 +1,175 @@
|
|||||||
|
The following is a list of the all of the editor functions, and the
|
||||||
|
default key assignments.
|
||||||
|
|
||||||
|
CURSOR MOVEMENT:
|
||||||
|
<Left>, <CtrlS>
|
||||||
|
Cursor left one character.
|
||||||
|
|
||||||
|
<Right>, <CtrlD>
|
||||||
|
Cursor right one character.
|
||||||
|
|
||||||
|
<CtrlLeft>, <CtrlA>
|
||||||
|
Cursor left one word. A 'word' is a series of non-separator
|
||||||
|
characters followed by one or more of the following :
|
||||||
|
' ', ';', '/', '='
|
||||||
|
|
||||||
|
<CtrlRight>, <CtrlF>
|
||||||
|
Cursor right one word.
|
||||||
|
|
||||||
|
<Home>, <CtrlQ><S>
|
||||||
|
Cursor to beginning of line.
|
||||||
|
|
||||||
|
<End>, <CtrlQ><D>
|
||||||
|
Cursor to end of line.
|
||||||
|
|
||||||
|
<Up>, <CtrlE>
|
||||||
|
Cursor up one line.
|
||||||
|
|
||||||
|
<Down>, <CtrlX>
|
||||||
|
Cursor down one line.
|
||||||
|
|
||||||
|
<CtrlW>
|
||||||
|
Scroll display up one line.
|
||||||
|
|
||||||
|
<CtrlZ>
|
||||||
|
Scroll display down one line.
|
||||||
|
|
||||||
|
<PgUp>, <CtrlR>
|
||||||
|
Scroll display up one page.
|
||||||
|
|
||||||
|
<PgDn>, <CtrlC>
|
||||||
|
Scroll display down one page.
|
||||||
|
|
||||||
|
<CtrlHome>, <CtrlQ><E>
|
||||||
|
Move cursor to top of edit window.
|
||||||
|
|
||||||
|
<CtrlEnd>, <CtrlQ><X>
|
||||||
|
Move cursor to bottom of edit window.
|
||||||
|
|
||||||
|
<CtrlPgUp>, <CtrlQ><R>
|
||||||
|
Move cursor to beginning of field.
|
||||||
|
|
||||||
|
<CtrlPgDn>, <CtrlQ><C>
|
||||||
|
Move cursor to end of field.
|
||||||
|
|
||||||
|
<Tab>, <CtrlI>
|
||||||
|
Move the cursor to the next tab stop.
|
||||||
|
|
||||||
|
<ClickLeft>
|
||||||
|
Move the cursor to the position indicated by the mouse.
|
||||||
|
|
||||||
|
DELETE FUNCTIONS:
|
||||||
|
<Del>, <CtrlG>
|
||||||
|
Delete character at cursor.
|
||||||
|
|
||||||
|
<Bksp>, <CtrlH>, <CtrlBksp>
|
||||||
|
Delete character to left of cursor.
|
||||||
|
|
||||||
|
<CtrlY>
|
||||||
|
Delete current line.
|
||||||
|
|
||||||
|
<CtrlQ><Y>
|
||||||
|
Delete from cursor to end of line.
|
||||||
|
|
||||||
|
<CtrlT>
|
||||||
|
Delete word to right of cursor.
|
||||||
|
|
||||||
|
NEW LINE:
|
||||||
|
<Enter>, <CtrlM>
|
||||||
|
Start a new line.
|
||||||
|
|
||||||
|
<CtrlN>
|
||||||
|
Split the current line at the cursor.
|
||||||
|
|
||||||
|
DEFAULT CONTROLS:
|
||||||
|
<CtrlP>
|
||||||
|
Insert control character. For example, to insert a ^G, you
|
||||||
|
would enter <CtrlP><CtrlG>.
|
||||||
|
|
||||||
|
<Ins>
|
||||||
|
Toggle insert mode on and off. Fat cursor indicates insert
|
||||||
|
mode; thin cursor indicates overtype mode.
|
||||||
|
|
||||||
|
<CtrlO><I>
|
||||||
|
|
||||||
|
Toggle auto-indent mode. In auto-indent mode, pressing
|
||||||
|
<Enter> in insert mode causes the new line to have the same
|
||||||
|
indentation as the previous line. Auto-indent also affects
|
||||||
|
the way that text is formatted when word wrap occurs.
|
||||||
|
|
||||||
|
<CtrlB>
|
||||||
|
Reformat the current paragraph. Use with caution.
|
||||||
|
|
||||||
|
<AltR>
|
||||||
|
Reformat the entire field. Use this command with caution.
|
||||||
|
|
||||||
|
<CtrlQ><L>
|
||||||
|
Restore original contents of the line and continue editing.
|
||||||
|
|
||||||
|
SAVE COMMANDS:
|
||||||
|
<Esc>, <CtrlBreak>, <ClickRight>, <CtrlK><Q>,
|
||||||
|
<AltF2>
|
||||||
|
Quit editing and abandon changes (With Question).
|
||||||
|
|
||||||
|
<F2>, <CtrlK><S>
|
||||||
|
Save the data, but continue editing.
|
||||||
|
|
||||||
|
<CtrlF2>, <CtrlK><X>, <CtrlK><D>, <AltX>
|
||||||
|
Save the data (if modified), and quit editing.
|
||||||
|
|
||||||
|
BLOCK COMMANDS:
|
||||||
|
<CtrlK><B>, <F7> <CtrlK><K>, <F8>
|
||||||
|
Begin a block mark. End a block mark.
|
||||||
|
|
||||||
|
<CtrlK><C> <CtrlK><V>
|
||||||
|
Copy a marked block. Move a marked block.
|
||||||
|
|
||||||
|
<CtrlK><Y> <F5>
|
||||||
|
Delete a marked block. Delete Contents of Entire field.
|
||||||
|
|
||||||
|
<CtrlK><U> <CtrlK><P>
|
||||||
|
Put marked block in buffer. Copy cUt buffer to Fieeld.
|
||||||
|
Allows moving data between records.
|
||||||
|
|
||||||
|
<CtrlK><W>
|
||||||
|
Write the Marked Block to the selected file name.
|
||||||
|
|
||||||
|
<CtrlK><R>
|
||||||
|
Read the selected file name into the edit field. You can
|
||||||
|
popup a file list and use a point and shoot select
|
||||||
|
|
||||||
|
|
||||||
|
SEARCH COMMANDS:
|
||||||
|
<CtrlQ><CtrlF>
|
||||||
|
Pops up a window for you to enter a string of text to search for.
|
||||||
|
The string remains valid across all records until it is changed with
|
||||||
|
another search function.
|
||||||
|
|
||||||
|
<CtrlQ><CtrlA>
|
||||||
|
Pops up a window for you to enter a string of text to search for,
|
||||||
|
then pops up a window for you to enter a string of text to replace
|
||||||
|
the search string with. You will be asked to confirm the
|
||||||
|
replacement. The strings remain valid across all records until it
|
||||||
|
is changed with another search function.
|
||||||
|
|
||||||
|
<CtrlL>
|
||||||
|
Repeats the last Search(/Replace) function without going through the
|
||||||
|
exercise of entering new strings.
|
||||||
|
|
||||||
|
MISCELLANEOUS COMMANDS:
|
||||||
|
|
||||||
|
<F1>, <ClickBoth>
|
||||||
|
Help. This command invokes the help routine for this topic
|
||||||
|
if it exists. Otherwise it does nothing.
|
||||||
|
|
||||||
|
<F6>
|
||||||
|
Pops up a key edit window to allow chaging all of the editor key
|
||||||
|
assignments.
|
||||||
|
|
||||||
|
<AltE>
|
||||||
|
Creates a "SET AUTOCON=<configuration name>" command for the
|
||||||
|
Autoexec field. If each Autoexec has the correct one, the name of
|
||||||
|
the boot configuration will be in the environment.
|
||||||
|
|
||||||
|
<AltF6>, <AltF7>, <AltF8>
|
||||||
|
Changes the keys assigned to change the colors used in the editor.
|
||||||
BIN
Linux-0.98/INSTALL/autocn/MENU.CTL
Normal file
BIN
Linux-0.98/INSTALL/autocn/MENU.CTL
Normal file
Binary file not shown.
BIN
Linux-0.98/INSTALL/autocn/MENUNUM.COM
Normal file
BIN
Linux-0.98/INSTALL/autocn/MENUNUM.COM
Normal file
Binary file not shown.
94
Linux-0.98/INSTALL/autocn/REGISTER.PRN
Normal file
94
Linux-0.98/INSTALL/autocn/REGISTER.PRN
Normal file
@@ -0,0 +1,94 @@
|
|||||||
|
------------------- REGISTRATION ----------------------
|
||||||
|
|
||||||
|
Please support AutoCon!
|
||||||
|
Thank you for your support.
|
||||||
|
|
||||||
|
Remit To: Larry Weaver
|
||||||
|
P.O. Box 2639
|
||||||
|
Weaverville CA 96093-2639
|
||||||
|
|
||||||
|
---------------------------
|
||||||
|
|
||||||
|
You must check one registration option, and one disk option!
|
||||||
|
|
||||||
|
---------------------------
|
||||||
|
_
|
||||||
|
|_| AutoCon Standard registration ($15.00 -- no disk sent) $______
|
||||||
|
_
|
||||||
|
|_| AutoCon Site License and Registration (no disk sent)
|
||||||
|
$120.00 for the first 100 (or fewer) users or machines
|
||||||
|
100.00 for each additional 100 (or fewer) users or machines $______
|
||||||
|
|
||||||
|
---------------------------
|
||||||
|
_
|
||||||
|
|_| AutoCon Upgrade to the newest version ($8.00; $10.00 foreign) $______
|
||||||
|
Registered users only
|
||||||
|
_
|
||||||
|
|_| Subscription plan for REGISTERED users ($21.00; $26.00 foreign) $______
|
||||||
|
(Receive the next three updates of AutoCon, as they
|
||||||
|
become available. This fee is in addition to the
|
||||||
|
$15.00 or $120.00 registration.)
|
||||||
|
|
||||||
|
---------------------------
|
||||||
|
_
|
||||||
|
|_| Printed Manual ($8.00) $______
|
||||||
|
If you desire, I will print out the AUTOCON.DOC file and
|
||||||
|
send it to you. You can achieve the same results by printing
|
||||||
|
it out yourself, but several people seem to want this.
|
||||||
|
|
||||||
|
---------------------------
|
||||||
|
|
||||||
|
"Foreign" means outside the USA and Canada; the extra charge covers postage.
|
||||||
|
_ _
|
||||||
|
Payment by: |_| Check or |_| Money Order enclosed.
|
||||||
|
|
||||||
|
TOTAL in USA Funds. $______
|
||||||
|
Foreign checks are acceptable if they have the US Federal Reserve
|
||||||
|
Routing Number on them, use the current exchange rate.
|
||||||
|
_ _
|
||||||
|
Disk Type: |_| 5 1/4" (normally sent); |_| 3 1/2" required
|
||||||
|
|
||||||
|
Name ___________________________________________________________________
|
||||||
|
|
||||||
|
Address ___________________________________________________________________
|
||||||
|
|
||||||
|
___________________________________________________________________
|
||||||
|
|
||||||
|
___________________________________________________________________
|
||||||
|
|
||||||
|
|
||||||
|
Day Phone: _________________________ Eve: ______________________
|
||||||
|
|
||||||
|
Compuserve ID: _____________________
|
||||||
|
|
||||||
|
_
|
||||||
|
Invoice Required |_| P. O. Number: ______________________
|
||||||
|
|
||||||
|
------------------------ User comments -------------------------
|
||||||
|
I acquired AutoCon V2.0g from
|
||||||
|
[ ] - Friend [ ] - Software product
|
||||||
|
[ ] - Computer Club [ ] - Computer Store
|
||||||
|
[ ] - Data Base Service [ ] - Support BBS
|
||||||
|
[ ] - Electronic BBS - Please give phone no. _____________
|
||||||
|
[ ] - Other (please specify) ___________________________
|
||||||
|
|
||||||
|
I would also appreciate any input you would care to provide
|
||||||
|
concerning AutoCon. If you have any ideas or comments which would
|
||||||
|
make AutoCon a better program, please let me know.
|
||||||
|
|
||||||
|
I value your comments!
|
||||||
|
|
||||||
|
Comments and/or suggestions:
|
||||||
|
________________________________________________________________
|
||||||
|
|
||||||
|
________________________________________________________________
|
||||||
|
|
||||||
|
________________________________________________________________
|
||||||
|
|
||||||
|
________________________________________________________________
|
||||||
|
|
||||||
|
________________________________________________________________
|
||||||
|
|
||||||
|
________________________________________________________________
|
||||||
|
|
||||||
|
________________________________________________________________
|
||||||
441
Linux-0.98/INSTALL/autocn/WHATSNEW
Normal file
441
Linux-0.98/INSTALL/autocn/WHATSNEW
Normal file
@@ -0,0 +1,441 @@
|
|||||||
|
Version 2.0g
|
||||||
|
I still had complaints about people seeing Echo Off in the Autoexec
|
||||||
|
Bat file, so now if you have a DOS higher than 3.2, it will start
|
||||||
|
with @Echo off.
|
||||||
|
|
||||||
|
If you are using DOS 5.0, A DOS=HIGH,NOUMB line will be appended to
|
||||||
|
the bottom of the Autoexec.bat file, and you will have to put a
|
||||||
|
DOS=LOW (and/ or a DOS=UMB) in the configurations you need them in.
|
||||||
|
Menu.Ctl will control the flags.
|
||||||
|
|
||||||
|
If you are using DRDOS, Menu.Ctl will now work with it as well as
|
||||||
|
MSDOS.
|
||||||
|
|
||||||
|
I've changed the way I load configurations, so you will be able to
|
||||||
|
run AutoCon with less memory, and there is no longer a 6K or 2K
|
||||||
|
limit on the Autoexec and Config fields.
|
||||||
|
|
||||||
|
Each configuration now has the names of the files that the field is
|
||||||
|
written to. (I've had several requests for this one.)
|
||||||
|
|
||||||
|
The help screen colors are now installable.
|
||||||
|
|
||||||
|
The MENU.CTL interface has been rewritten to show up more distinctly
|
||||||
|
when booting. I had several complaints that it was easy to miss.
|
||||||
|
It will now put up some distinctive boxex, and show up in color if
|
||||||
|
you have a color monitor. The colors are installable from AutoCon.
|
||||||
|
|
||||||
|
Each configuration now has the names of the files that the field is written
|
||||||
|
to. (I've had several requests for this one.)
|
||||||
|
|
||||||
|
You can tell AutoCon not to restore the screen on exit (eliminates the
|
||||||
|
need for AutoConx.exe.
|
||||||
|
|
||||||
|
|
||||||
|
Version 2.0e (mainly bug fix)
|
||||||
|
In Single mode if the Enviornment name wasn't set (AltE in the
|
||||||
|
editor) AutoCon could get the wrong cache 'Flush' information. This
|
||||||
|
is fixed, but I highly reccommend setting the Autocon Environment
|
||||||
|
variable if you are using Single mode.
|
||||||
|
|
||||||
|
If an external editor were being used, and the Autocon or Config
|
||||||
|
field size got too large, the AutoCon.Dat file could get messed up -
|
||||||
|
fixed.
|
||||||
|
|
||||||
|
Several people have complained that 4K and 2K is not large enough
|
||||||
|
for the Autoexec and Config fields, so I'm pushing the size up to 6K
|
||||||
|
and 4K. Please note that this adds 4K/configuration to AutoCon's
|
||||||
|
memory requirements.
|
||||||
|
|
||||||
|
There are two extra EXE files on the BBS. AutoCons.exe will still
|
||||||
|
use 4K and 2K for those needing the smaller memory requirements.
|
||||||
|
|
||||||
|
AutoConx.exe will not restore the screen when it exits. Try this if
|
||||||
|
you lose the cursor or the screen blanks out when you exit (I've had
|
||||||
|
two complaints about this).
|
||||||
|
|
||||||
|
Version 2.0d (bug fix)
|
||||||
|
If AutoCon followed an "ECHO OFF" and a "CLS" statement in a batch
|
||||||
|
file, the screen could get slightly messed up - fixed.
|
||||||
|
|
||||||
|
Version 2.0c (bug fix)
|
||||||
|
The user modified colors were getting lost if a reboot was performed
|
||||||
|
from the command line - fixed.
|
||||||
|
|
||||||
|
Version 2.0b (bug fix)
|
||||||
|
|
||||||
|
MENU.CTL had a problem with the name of the eighth configuration,
|
||||||
|
which is now fixed. It also had a tendency to leave menu choice 2
|
||||||
|
in the hi-lite mode, also fixed.
|
||||||
|
|
||||||
|
Several people complained about seeing the Errorlevel statements in
|
||||||
|
the AUTOEXEC.BAT during the boot process. AUTOEXEC.BAT files will
|
||||||
|
now start with ECHO OFF as the first statement if you choose the
|
||||||
|
MENU.CTL option.
|
||||||
|
|
||||||
|
Version 2.0 would allow you to choose more than the eight default
|
||||||
|
configurations. This is no longer allowed.
|
||||||
|
|
||||||
|
Version 2.0 had a problem writing the AUTOEXEC.BAT file for the Menu
|
||||||
|
mode if the Autoexec fields didn't end in a Carriage Return. This
|
||||||
|
is now fixed.
|
||||||
|
|
||||||
|
|
||||||
|
Version 2.0
|
||||||
|
|
||||||
|
|
||||||
|
I'm jumping the version number from 1.4 to 2.0 for this release.
|
||||||
|
The reason is that AutoCon's capability has changed so much in this
|
||||||
|
release that I think it warrants a Major revision number change.
|
||||||
|
|
||||||
|
The major change is the inclusion of two new files. These are
|
||||||
|
MENU.CTL and MENUNUM.COM. Menu.Ctl is a device driver that can
|
||||||
|
disable commands in the CONFIG.SYS file. MenuNum.Com is a file that
|
||||||
|
will ask the portion of Menu.Ctl that stays resident which
|
||||||
|
configuration was chosen, and set the DOS ERRORLEVEL to that number.
|
||||||
|
This allows setting up menu choices in the AUTOEXEC.BAT file to
|
||||||
|
match the choice made from the CONFIG.SYS file. Together these two
|
||||||
|
files allow you to choose a system configuration from a menu of
|
||||||
|
configurations during the boot process itself.
|
||||||
|
|
||||||
|
AutoCon will handle all of the interface details to these two
|
||||||
|
commands for you, and allow you to return to a "Normal" system
|
||||||
|
configuration in just a couple of keystrokes. This will allow you
|
||||||
|
to run programs like "Optimize" from Quarterdeck.
|
||||||
|
|
||||||
|
|
||||||
|
There is a pull-down menu system available on the main screen. Each
|
||||||
|
item on the menu has a context sensitive help entry. This should
|
||||||
|
make it very easy to get AutoCon up and running the first time, and
|
||||||
|
allow you to look up those commands you can't remember the
|
||||||
|
keystrokes for.
|
||||||
|
|
||||||
|
|
||||||
|
There are two new command line options. If you enter
|
||||||
|
|
||||||
|
AutoCon /<return>
|
||||||
|
|
||||||
|
on the command line, a window of your configurations will pop up
|
||||||
|
asking you to choose which configuration you wish to use to reboot
|
||||||
|
the system. This is equivalent to the "AutoCon <configuraion name>,
|
||||||
|
except that AutoCon lets you choose the name from a pick list.
|
||||||
|
|
||||||
|
The second new command is
|
||||||
|
|
||||||
|
AutoCon /@<configuration name>
|
||||||
|
|
||||||
|
where <configuration name> is the name shown on the main screen for
|
||||||
|
each configuration. If the name matches the configuration that was
|
||||||
|
used for the boot process, the DOS errorlevel will be set to 1. It
|
||||||
|
will be set to 0 otherwise. For this function to work correctly,
|
||||||
|
you need to boot up with Menu.Ctl, or assure that each Autoexec
|
||||||
|
field has the correct name assigned with a SET command. See the new
|
||||||
|
"Put Name in Environment" editor function defined below.
|
||||||
|
|
||||||
|
|
||||||
|
The internal editor has a few new capabilities. In order to access
|
||||||
|
most them you will have to edit your keystrokes (using the F6 key).
|
||||||
|
The block operations are no longer constrained to full lines. The
|
||||||
|
default keys for reformating were removed. You may reassign them.
|
||||||
|
|
||||||
|
"Search Function" (default assigned to ^Q^F) allows you to search
|
||||||
|
the text for a specified string of text. The string is active for
|
||||||
|
the entire AutoCon session, and will be the same across records.
|
||||||
|
|
||||||
|
"Search/Replace Function" (default assigned to ^Q^A) allows you to
|
||||||
|
search the text for a specified string of text, and relpace it
|
||||||
|
with another string of text. You will be asked to confirm the
|
||||||
|
replacement.
|
||||||
|
|
||||||
|
"Repeat Search Function" (default assigned to ^L) This will
|
||||||
|
repeat the last Search, or Search/Replace that was performed. The
|
||||||
|
informations is retained during the AutoCon session, and will be
|
||||||
|
the same across records.
|
||||||
|
|
||||||
|
"Install Editor Keys" (default assigned to F6) allows you to
|
||||||
|
change the editor keys during an edit session.
|
||||||
|
|
||||||
|
"Put Name in Environment" (default assigned to AltE) will put a
|
||||||
|
SET command in your edit field. This will guarantee that the
|
||||||
|
configuration you are editing has its name placed correctly in the
|
||||||
|
environment. AutoCon will use this name for various command line
|
||||||
|
functions.
|
||||||
|
|
||||||
|
"Change (Text - AltF6, Block - AltF7, Control Char - AltF8)
|
||||||
|
Attribute" will allow you to change the keys that call up the
|
||||||
|
editor color installation windows.
|
||||||
|
|
||||||
|
"View Last Dos Screen" (default assigned to AltV) allows you to
|
||||||
|
see the DOS screen as it was when AutoCOn was started. Could be
|
||||||
|
useful if the reason your changing a configuration is shown there.
|
||||||
|
|
||||||
|
|
||||||
|
By March 1, 1991 I will have a support BBS in place operating 24
|
||||||
|
hours a day. The number will be (916) 623 4455.
|
||||||
|
|
||||||
|
|
||||||
|
Version 1.4
|
||||||
|
|
||||||
|
One of the WhatsNews has to do with me, I am now a member of the ASP
|
||||||
|
(Association of ShareWare Professionals). The rest of the WhatsNews
|
||||||
|
all concern changes (and additions) to the program.
|
||||||
|
|
||||||
|
You now have the option to use the built in editor to edit the
|
||||||
|
Autoexec and Config fields, or to install an external editor to do
|
||||||
|
the job. <CtrlF6> will pop up a window for you to enter an external
|
||||||
|
editor's file name. The Path will be checked for the entered file
|
||||||
|
name, and if found, it will be used to edit the Autoexec and Config
|
||||||
|
fields in the future. For more info, see the "Installing External
|
||||||
|
Editor" section of AUTOCON.DOC.
|
||||||
|
|
||||||
|
From the command line, typing <AUTOCON /=> will check the Autoexec
|
||||||
|
and Config fields of the current configuration record against the
|
||||||
|
file contents of the current Configuration files (usually
|
||||||
|
C:\AUTOEXEC.BAT and C:\CONFIG.SYS). The results of the comparison
|
||||||
|
will be shown on the screen. SPECIAL NOTE! - the configuration will
|
||||||
|
need to have been saved with the 1.4 version of AUTOCON.
|
||||||
|
|
||||||
|
From the command line, typing <AUTOCON /*> will update the Autoexec
|
||||||
|
and Config fields of the current configuration record from the file
|
||||||
|
contents of the current Configuration files (usually C:\AUTOEXEC.BAT
|
||||||
|
and C:\CONFIG.SYS). You might want to be a little careful with this
|
||||||
|
one.
|
||||||
|
|
||||||
|
The internal editor has a few new capabilities. In order to access
|
||||||
|
them, you will probably have to edit your keystrokes (using the <F6>
|
||||||
|
key). The new commands are "Split Line", "Cut the marked block",
|
||||||
|
and "Paste the last Cut block". These commands will be a little
|
||||||
|
more convenient than the current "Write marked block" and "Read
|
||||||
|
marked block" file commands.
|
||||||
|
|
||||||
|
"Split Line" (default assigned to <CtrlN> key) splits the current
|
||||||
|
line at the cursor, leaving the cursor where it is, and moving the
|
||||||
|
rest of the line down to the next line.
|
||||||
|
|
||||||
|
"Cut the marked block" (default assigned to <CtrlK> <U> key
|
||||||
|
combination) will put the current marked block into a text buffer.
|
||||||
|
"Paste the last Cut block" (default assigned to <CtrlK> <P> key
|
||||||
|
combination) will paste the contents of the cut buffer to the
|
||||||
|
current cursor location. This command can be used to move the
|
||||||
|
data in the same record, or across records. After a cUt, the data
|
||||||
|
will stay in the buffer until a new cUt is performed, or AUTOCON
|
||||||
|
is exited.
|
||||||
|
|
||||||
|
Formerly the editor only recognized a ' ' (space) as a word mark
|
||||||
|
(for <CtrlF>, <CtrlA>, <CtrlRarw>, etc.). This has been enhanced
|
||||||
|
to also recognize the following characters as word marks :
|
||||||
|
'/', ';', and '='.
|
||||||
|
|
||||||
|
Line length was increased to 254 for those long path names (and
|
||||||
|
any other long lines needed). This necessitated removing the
|
||||||
|
word-wrap capability while editing the Autoexec and Config
|
||||||
|
fields (I don't think this will be a hardship, you probably don't
|
||||||
|
want to word-wrap the lines in your Autoexec and Config files
|
||||||
|
anyway). Word-wrap is still used in the Notes field, but please
|
||||||
|
don't enter a line longer than 127 characters in there.
|
||||||
|
|
||||||
|
|
||||||
|
A couple of functions were also added to the Interactive Mode.
|
||||||
|
|
||||||
|
<AltC> will pop-up a pick list of the current configuration
|
||||||
|
records, and allow you to select one. The contents of the
|
||||||
|
Autoexec and Config fields of the selected configuration record
|
||||||
|
will be copied to the current configuration record. Be careful
|
||||||
|
with this one, there is NO "Undo" command. You can always
|
||||||
|
use ESC to get out of the pick list without doing a copy.
|
||||||
|
|
||||||
|
<AltV> will now show the Dos screen as it was when Autocon was
|
||||||
|
started.
|
||||||
|
|
||||||
|
<Alt=> will check the Autoexec and Config fields of the current
|
||||||
|
configuration record against the contents of the current
|
||||||
|
configuration files (C:\AUTOEXEC.BAT and C:\CONFIG.SYS, unless you
|
||||||
|
have changed them with <F8> or <F9> keys). SPECIAL NOTE! - the
|
||||||
|
configuration will need to have been saved with the 1.4 version of
|
||||||
|
AUTOCON.
|
||||||
|
|
||||||
|
All of the color changes now show up instantly (you previously had
|
||||||
|
to wait till the next time Autocon was executed to see some of the
|
||||||
|
color changes).
|
||||||
|
|
||||||
|
ESC is no longer accepted as a "Yes" answer (there were a lot of
|
||||||
|
complaints on this one). A "Yes" answer now requires a <Y> or
|
||||||
|
<Enter> key (accept default).
|
||||||
|
|
||||||
|
There are a few cosmetic changes on the screens (all in response to
|
||||||
|
comments by users). I won't take the space to list each one.
|
||||||
|
|
||||||
|
There are a couple more entrys on the help screen, and (I hope) the
|
||||||
|
entries are arranged in a little more logical fashion.
|
||||||
|
|
||||||
|
UltraVision : Autocon is now UltraVision "Aware". Autocon will
|
||||||
|
detect if UltraVision is installed and active. If it is, Autocon
|
||||||
|
will use UltraVision to switch modes, and restore screens (in other
|
||||||
|
words, Autocon won't mess up your screen).
|
||||||
|
|
||||||
|
Windows Problems : After spending a very unproductive day on the
|
||||||
|
phone with Microsoft, I decided to add another boot type option to
|
||||||
|
Autocon. Several people use Autocon to reconfigure in and out of
|
||||||
|
Windows. When Windows is running in 386 enhanced mode, a software
|
||||||
|
boot (usually) doesn't work. Microsoft's recommendation : "Never
|
||||||
|
reboot while running Windows". They say that this may trash hard
|
||||||
|
disks and worse (I'm not sure what could be "worse" than trashing a
|
||||||
|
hard disk). I don't know about you, but I've had to reboot out of
|
||||||
|
Windows several times. I know it's probably not a good idea, but
|
||||||
|
there are times it should be quite safe (and times when it is forced
|
||||||
|
upon us). Anyway, they say that is no way they are aware of to
|
||||||
|
ensure that a software reboot will work.
|
||||||
|
Therefore :
|
||||||
|
|
||||||
|
You may now select (N)one as an alternate boot type (using the
|
||||||
|
<F5> key). If you select (N)one, Autocon will now reconfigure the
|
||||||
|
files, but will not attempt a reboot. Now you may run Autocon
|
||||||
|
under Windows, and after the system files are reconfigured, you
|
||||||
|
can hit the dreaded CtrlAltDel key combination.
|
||||||
|
|
||||||
|
By the way, I'm not much of an artist, so if someone (out of the
|
||||||
|
goodness of their hearts) designs a nice Icon for Autocon, I would
|
||||||
|
appreciate them sending me a copy.
|
||||||
|
|
||||||
|
|
||||||
|
A potentially nasty bug was squashed. Since I never received a
|
||||||
|
complaint on this one, I assume that I was the only one "bit". If
|
||||||
|
your current configuration record was the last one, and you deleted
|
||||||
|
it, Autocon tried to find it again the next time it was started.
|
||||||
|
This could lead to bizarre behavior (a messed up pointer for those
|
||||||
|
technical people). If the current record number is larger than the
|
||||||
|
max record number, it will now be adjusted (with appropriate warning
|
||||||
|
message). It will still be pointing to the wrong record, but it
|
||||||
|
will behave in a known fashion.
|
||||||
|
|
||||||
|
______________________________________________________________________
|
||||||
|
|
||||||
|
Version 1.3a
|
||||||
|
|
||||||
|
There are a few bug fixes, and a couple of enhancements in this
|
||||||
|
version. If you used F2 to save changes in the previous versions,
|
||||||
|
when you hit ESC to exit it would issue a warning that the changes
|
||||||
|
were about to be lost, this has been corrected.
|
||||||
|
|
||||||
|
AUTOCON will now attempt to detect and restore the EGA/VGA (45/50)
|
||||||
|
small character mode upon exit.
|
||||||
|
|
||||||
|
After updating the configuration with 1.3a, when AUTOCON is started
|
||||||
|
in the interactive mode, it will default to the configuration used
|
||||||
|
in the last update.
|
||||||
|
|
||||||
|
On the command line if you type <AUTOCON /?> the name of the current
|
||||||
|
configuration will be displayed (Note: you must have saved a
|
||||||
|
configuration with V1.3a first).
|
||||||
|
|
||||||
|
If you are in the full screen entry mode, hitting <F7> will update
|
||||||
|
the Autoexec and Config fields in the current record from the
|
||||||
|
current AUTOEXEC.BAT and CONFIG.SYS files. This saves going into
|
||||||
|
each of the two fields and doing a <F5> <^KR> <AltX>.
|
||||||
|
|
||||||
|
From the command line, typing AUTOCON followed by a / and the name
|
||||||
|
of a configuration (e.g. <AUTOCON /NoTSRs>) will cause that
|
||||||
|
configuration to have it's Autoexec and Config fields updated from
|
||||||
|
the current AUTOEXEC.BAT and CONFIG.SYS files.
|
||||||
|
|
||||||
|
There was a bug in V1.3 that caused AUTOCON to have a problem with
|
||||||
|
reading files that were not terminated with ^Z. If you got an
|
||||||
|
"Edit Buffer Full" message when you tried to edit a field that you
|
||||||
|
know wasn't too big, then you were bitten by this bug. This is
|
||||||
|
fixed in 1.3a.
|
||||||
|
|
||||||
|
If you were in one of the fields and issued an <^KW> (block save)
|
||||||
|
and didn't have a marked block, you were not given an error message
|
||||||
|
in previous versions. This is fixed in 1.3a.
|
||||||
|
|
||||||
|
The help screen displayed in a color change window was the one for
|
||||||
|
changing the editor keystrokes. This is fixed in 1.3a.
|
||||||
|
|
||||||
|
______________________________________________________________________
|
||||||
|
|
||||||
|
Version 1.3
|
||||||
|
|
||||||
|
There are several changes in this version. If you have added
|
||||||
|
several extra configurations that you no longer need, the <CtrlF3>
|
||||||
|
key will delete the current configuration (you can't delete record
|
||||||
|
one, nor can you go below five records).
|
||||||
|
|
||||||
|
You can change the keystrokes used by the built in editor. Hitting
|
||||||
|
the <F6> key in the main menu will pop up a key editor which will
|
||||||
|
allow changing the actions of all of the control keys used in the
|
||||||
|
editor.
|
||||||
|
|
||||||
|
You can change the colors used by AUTOCON. Hitting the <Alt> key in
|
||||||
|
combination with the function keys will allow customization of most
|
||||||
|
of the colors. The use of each key is detailed in the pop-up help.
|
||||||
|
|
||||||
|
The DAT file format for 1.3 is quite different than the one for 1.2.
|
||||||
|
The white space has been eliminated, and as a consequence it is
|
||||||
|
significantly smaller (mine are about 1/4 the previous size). The
|
||||||
|
first time you run 1.3 it will change the format, and the DAT file
|
||||||
|
will no longer be compatible with 1.2. You may want to make a copy
|
||||||
|
of AUTOCON.DAT (just to be on the safe side) before running 1.3.
|
||||||
|
|
||||||
|
|
||||||
|
______________________________________________________________________
|
||||||
|
|
||||||
|
Version 1.2d keeps current file attributes
|
||||||
|
|
||||||
|
A request was made to update the Autoexec and Config files, but to
|
||||||
|
not change their current attributes (system, read only, hidden,
|
||||||
|
etc.). Therefore AUTOCON now reads the current file attributes of
|
||||||
|
Autoexec.Bat and Config.Sys before updating them, and restores the
|
||||||
|
attributes after the update.
|
||||||
|
|
||||||
|
|
||||||
|
______________________________________________________________________
|
||||||
|
|
||||||
|
Version 1.2c adds a boot type select.
|
||||||
|
|
||||||
|
Some computers have trouble with the warm boot that AUTOCON was
|
||||||
|
originally configured with. These seem to mainly be machines with
|
||||||
|
large hard disks, and a large hard disk manager. The <F5> key now
|
||||||
|
allows you to change the boot type from warm to cold to get around
|
||||||
|
this problem.
|
||||||
|
|
||||||
|
|
||||||
|
______________________________________________________________________
|
||||||
|
|
||||||
|
Version 1.2a is a bug fix.
|
||||||
|
|
||||||
|
AUTOCON didn't recognize more than three configurations from the
|
||||||
|
command line.
|
||||||
|
|
||||||
|
|
||||||
|
Version 1.2 is a bug fix.
|
||||||
|
|
||||||
|
When you attempted to read in your old configuration files to the
|
||||||
|
AUTOEXEC and CONFIG fields, it always defaulted to C:\AUTOEXEC.BAT
|
||||||
|
an C:\CONFIG.SYS no matter what files you had selected. The read
|
||||||
|
file option now works correctly.
|
||||||
|
|
||||||
|
|
||||||
|
______________________________________________________________________
|
||||||
|
|
||||||
|
Version 1.1 charges are as follows.
|
||||||
|
|
||||||
|
1. AUTOCON now does a Reboot when a reconfiguration is done from the
|
||||||
|
command line.
|
||||||
|
|
||||||
|
2. AUTOCON now handles up to 50 configurations (originally only 5).
|
||||||
|
|
||||||
|
3. You can now read any file into an AUTOEXEC or CONFIG edit field
|
||||||
|
(allows you to use your old configurations).
|
||||||
|
|
||||||
|
4. The On-line Help has been updated/enhanced.
|
||||||
|
|
||||||
|
5. The Doc file has been enhanced (left out a few things the first
|
||||||
|
time).
|
||||||
|
|
||||||
|
6. Allows you the choice of a Reboot when reconfiguring in the data
|
||||||
|
entry mode.
|
||||||
|
|
||||||
|
7. Hopefully a better choice of colors on an LCD screen. If you have
|
||||||
|
an LCD, you need to have your mode set to BW80 (2).
|
||||||
|
|
||||||
|
|
||||||
BIN
Linux-0.98/INSTALL/autocn2g.zip
Normal file
BIN
Linux-0.98/INSTALL/autocn2g.zip
Normal file
Binary file not shown.
BIN
Linux-0.98/INSTALL/bootlin4.zip
Normal file
BIN
Linux-0.98/INSTALL/bootlin4.zip
Normal file
Binary file not shown.
BIN
Linux-0.98/INSTALL/pboot.zip
Normal file
BIN
Linux-0.98/INSTALL/pboot.zip
Normal file
Binary file not shown.
3
Linux-0.98/INSTALL/pfdisk/MAKE_TCC.BAT
Normal file
3
Linux-0.98/INSTALL/pfdisk/MAKE_TCC.BAT
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
@echo This batch file uses Turbo C to build pfdisk.exe
|
||||||
|
@echo Note that only SMALL model has been tested...
|
||||||
|
tcc -v- -epfdisk.exe pfdiskaz.c syscodes.c s_msdos.c
|
||||||
264
Linux-0.98/INSTALL/pfdisk/PFDISK.DOC
Normal file
264
Linux-0.98/INSTALL/pfdisk/PFDISK.DOC
Normal file
@@ -0,0 +1,264 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
PFDISK(8) MAINTENANCE COMMANDS PFDISK(8)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
NAME
|
||||||
|
pfdisk - partition fixed disk
|
||||||
|
|
||||||
|
SYNOPSIS
|
||||||
|
pfdisk device
|
||||||
|
|
||||||
|
DESCRIPTION
|
||||||
|
pfdisk partitions the fixed disk identified as device into (at
|
||||||
|
most) four parts, each of which may be independently loaded with
|
||||||
|
an operating system. The actual name of device depends on the
|
||||||
|
operating system in use. For ESIX (System V/386) the device
|
||||||
|
name is either "/dev/rdsk/0s0" or "/dev/rdsk/1s0". For Minix,
|
||||||
|
it is "/dev/hd0" or "/dev/hd5". For MS-DOS it is a single digit
|
||||||
|
(zero or one).
|
||||||
|
|
||||||
|
pfdisk reads the hard disk partition table from block zero of
|
||||||
|
device into memory and allows the user to examine, modify, or
|
||||||
|
save the partition table. A regular file may be used instead of
|
||||||
|
a real device for testing purposes, though the device geometry
|
||||||
|
must be specified manually, and some systems will requrire a
|
||||||
|
file-name argument with the "R" and "W" commands (DOS, ESIX).
|
||||||
|
|
||||||
|
The partition table on device is NOT modified unless the write
|
||||||
|
command (W) is used with no argument.
|
||||||
|
|
||||||
|
USAGE
|
||||||
|
Commands
|
||||||
|
All pfdisk commands consist of a command word followed by
|
||||||
|
optional blank-separated command arguments. Note that only the
|
||||||
|
first letter of a command word is significant (except for "wq"
|
||||||
|
and "q!"). All command letters are accepted in either upper or
|
||||||
|
lower case. Numeric arguments are specified using C syntax.
|
||||||
|
Extra arguments are silently ignored.
|
||||||
|
|
||||||
|
The commands are:
|
||||||
|
|
||||||
|
? Prints a command summary (help).
|
||||||
|
|
||||||
|
1 sys_id first last sys_name
|
||||||
|
Set the partition table entry for part one, using:
|
||||||
|
sys_id as its system ID code, first as the lowest num-
|
||||||
|
bered cylinder it uses, last as the highest numbered
|
||||||
|
cylinder it uses, and sys_name (optional) as the system
|
||||||
|
name (in the menu name table).
|
||||||
|
|
||||||
|
2|3|4 sys-id first last sys-name
|
||||||
|
Similar to 1 but sets partition two, three, or four,
|
||||||
|
respectively.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Release 1.3 Last change: Oct 1990 1
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
PFDISK(8) MAINTENANCE COMMANDS PFDISK(8)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
A number
|
||||||
|
Mark partition number as active (so it will be used for
|
||||||
|
booting). If number is zero, no partition will be
|
||||||
|
active.
|
||||||
|
|
||||||
|
G cylinders heads sectors
|
||||||
|
Inform pfdisk what the geometry of the device is.
|
||||||
|
|
||||||
|
I Print a summary of the known ID codes.
|
||||||
|
|
||||||
|
L List the partition table. See Output Format below.
|
||||||
|
|
||||||
|
Q Quit without saving. If the memory copy of the parti-
|
||||||
|
tion table was modified, a warning will be issued and
|
||||||
|
the command ignored.
|
||||||
|
|
||||||
|
Q! Quit, even if the memory copy of the partition table was
|
||||||
|
not saved.
|
||||||
|
|
||||||
|
R file-name
|
||||||
|
Read boot sector from file-name (if given) otherwise
|
||||||
|
read from device.
|
||||||
|
|
||||||
|
W file-name
|
||||||
|
Write boot sector to file-name. (if given) otherwise
|
||||||
|
write to device.
|
||||||
|
|
||||||
|
WQ Same as "write" followed by "quit".
|
||||||
|
|
||||||
|
# This line is a comment (to be ignored).
|
||||||
|
|
||||||
|
Output Format
|
||||||
|
Here is a sample of the output from the L command:
|
||||||
|
|
||||||
|
# Partition table on device: /dev/rdsk/0s0
|
||||||
|
geometry 1222 15 34 (cyls heads sectors)
|
||||||
|
# ID First(cyl) Last(cyl) Name # start, length (sectors)
|
||||||
|
1 4 0 127 MS-LOSS # 34, 65246
|
||||||
|
2 129 128 255 Minix # 65280, 65280
|
||||||
|
3 0 0 0 # 0, 0
|
||||||
|
4 99 256 1220 ESIX # 130560, 492150
|
||||||
|
# note: last(4): phys=(1023,14,34) logical=(1220,14,34)
|
||||||
|
active: 4
|
||||||
|
|
||||||
|
This output format is carefully constructed so that it may be
|
||||||
|
saved in a file (by redirecting standard output) and later used
|
||||||
|
as input (by redirecting standard input). On a UNIX system, one
|
||||||
|
can save this output using the command:
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Release 1.3 Last change: Oct 1990 2
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
PFDISK(8) MAINTENANCE COMMANDS PFDISK(8)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
(echo L) | pfdisk device-name > save-file
|
||||||
|
|
||||||
|
save-file is a complete record of the partition table. On a
|
||||||
|
UNIX system, one could use save-file to re-initialize the parti-
|
||||||
|
tion table using the command:
|
||||||
|
|
||||||
|
(cat save-file ; echo wq) | pfdisk device-name
|
||||||
|
|
||||||
|
Consistency of each partition table entry is checked while the
|
||||||
|
table is listed. Any inconsistencies discovered are reported in
|
||||||
|
a commentary note as shown above.
|
||||||
|
|
||||||
|
Physical vs. Logical
|
||||||
|
Each partition table entry has both "physical" and a "logical"
|
||||||
|
fields. The physical fields specify the lowest and highest
|
||||||
|
cylinder,head,sector combinations to be used in that partition.
|
||||||
|
The logical start field has the total number of sectors which
|
||||||
|
precede this partition, and the logical length field has the
|
||||||
|
total number of sectors contained in this partition. These
|
||||||
|
fields should be self consistent unless the disk has more than
|
||||||
|
1024 cylinders.
|
||||||
|
|
||||||
|
The physical cylinder fields are only ten-bits wide so the con-
|
||||||
|
tents are limited to 1023. The logical sector fields are 32 bits
|
||||||
|
wide and always show the true logical beginning and length of
|
||||||
|
the partition. Generally, the physical start field is used only
|
||||||
|
to locate the secondary boot sector, and the logical start and
|
||||||
|
length fields are used to actually delimit the partition used by
|
||||||
|
a particular system.
|
||||||
|
|
||||||
|
Partition Names
|
||||||
|
The Name field in the partition table is treated specially if
|
||||||
|
the bootmenu program is installed in the primary boot sector.
|
||||||
|
(See the file bootmenu.doc for more information.) pfdisk can
|
||||||
|
recognize the name table used by bootmenu and will show the
|
||||||
|
actual names present in that name table. If any other boot pro-
|
||||||
|
gram is used then the Name field reflects the result of a
|
||||||
|
table-lookup of the system ID.
|
||||||
|
|
||||||
|
If you provide a name when setting any partition entry, the
|
||||||
|
boot-sector is marked as using a name table, so that on subse-
|
||||||
|
quent uses of pfdisk you will see the partition names you have
|
||||||
|
specified.
|
||||||
|
|
||||||
|
Boot program replacement
|
||||||
|
You can replace the boot program in your boot sector without
|
||||||
|
affecting the partition table by using pfdisk as follows.
|
||||||
|
First, (as always) save a copy of the current boot sector (on a
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Release 1.3 Last change: Oct 1990 3
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
PFDISK(8) MAINTENANCE COMMANDS PFDISK(8)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
floppy) using the "W file" command. Then, use the "R file" com-
|
||||||
|
mand to read the new boot program. If the boot program read in
|
||||||
|
is less than 446 bytes long, the partition table will be
|
||||||
|
unchanged.
|
||||||
|
|
||||||
|
Unlike the DOS or UNIX fdisk programs, pfdisk has NO boot pro-
|
||||||
|
gram compiled into its executable image. If you wish to use
|
||||||
|
pfdisk to partition a newly formatted hard disk, you must have a
|
||||||
|
boot program image available to read in using the "r file" com-
|
||||||
|
mand. Two boot programs, "bootmenu.bin" and "bootauto.bin" are
|
||||||
|
distributed with pfdisk and should be found with its source
|
||||||
|
files. See the file bootmenu.doc for further information about
|
||||||
|
these boot programs.
|
||||||
|
|
||||||
|
AUTHOR
|
||||||
|
Gordon W. Ross
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Release 1.3 Last change: Oct 1990 4
|
||||||
|
|
||||||
BIN
Linux-0.98/INSTALL/pfdisk/PFDISK.EXE
Normal file
BIN
Linux-0.98/INSTALL/pfdisk/PFDISK.EXE
Normal file
Binary file not shown.
605
Linux-0.98/INSTALL/pfdisk/PFDISKAZ.C
Normal file
605
Linux-0.98/INSTALL/pfdisk/PFDISKAZ.C
Normal file
@@ -0,0 +1,605 @@
|
|||||||
|
/*
|
||||||
|
* pfdisk - Partition a Fixed DISK
|
||||||
|
* by Gordon W. Ross, Jan. 1990
|
||||||
|
*
|
||||||
|
* See the file "pfdisk.doc" for user instructions.
|
||||||
|
*
|
||||||
|
* This program uses a simple, line-oriented interpreter,
|
||||||
|
* designed for both interactive and non-interactive use.
|
||||||
|
* To facilitate non-interactive use, the output from the
|
||||||
|
* 'L' (list partitions) command is carefully arranged so it
|
||||||
|
* can be used directly as command input. Neat trick, eh?
|
||||||
|
*/
|
||||||
|
|
||||||
|
char *versionString =
|
||||||
|
"# pfdisk version 1.2.1 by Gordon W. Ross Aug. 1990\nModified by S. Lubkin Oct. 1991\n";
|
||||||
|
|
||||||
|
/* These don't really matter. The user is asked to set them. */
|
||||||
|
#define DEFAULT_CYLS 306
|
||||||
|
#define DEFAULT_HEADS 4
|
||||||
|
#define DEFAULT_SECTORS 17
|
||||||
|
#define PROMPT_STRING "pfdisk> "
|
||||||
|
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <string.h>
|
||||||
|
#include <ctype.h>
|
||||||
|
#include "sysdep.h"
|
||||||
|
#include "syscodes.h"
|
||||||
|
|
||||||
|
typedef unsigned char uchar;
|
||||||
|
typedef unsigned int uint;
|
||||||
|
typedef unsigned long ulong;
|
||||||
|
|
||||||
|
struct part { /* An entry in the partition table */
|
||||||
|
uchar active; /* active flag (0x80 or 0) */
|
||||||
|
uchar b_head; /* begin head */
|
||||||
|
uchar b_sec; /* sector */
|
||||||
|
uchar b_cyl; /* cylinder */
|
||||||
|
uchar sysid; /* system id (see sysid.c) */
|
||||||
|
uchar e_head; /* end head */
|
||||||
|
uchar e_sec; /* end sector */
|
||||||
|
uchar e_cyl; /* end cylinder */
|
||||||
|
/* These two are just longs, but this way is machine independent. */
|
||||||
|
/* uchar lsBeg[4]; /* logical sectors, beginning Saul */
|
||||||
|
ulong lsBeg; /* logical sectors, beginning Saul */
|
||||||
|
/* uchar lsLen[4]; /* logical sectors, length Saul */
|
||||||
|
ulong lsLen; /* logical sectors, length Saul */
|
||||||
|
};
|
||||||
|
|
||||||
|
#define LOC_PT 0x1BE
|
||||||
|
#define LOC_NT 0x1AA /* Saul */
|
||||||
|
/* #define LOC_NT 0x180 Saul */
|
||||||
|
/* #define LOC_GWR 0x1A0 Saul */
|
||||||
|
#define LOC_GWR 0x1A9 /* Saul */
|
||||||
|
#define MAGIC_LOC 0x1FE
|
||||||
|
#define MAGIC_0 0x55
|
||||||
|
#define MAGIC_1 0xAA
|
||||||
|
#define MAX_LINE 80
|
||||||
|
#define NT_ENTRY_SIZE 5 /* Saul */
|
||||||
|
/* Note: Entry in "printf" command, should be manually changed, to
|
||||||
|
"%-NT_ENTRY_SIZE.NT_ENTRY_SIZEs" Saul */
|
||||||
|
/* And header printf line should have blanks adjusted Saul */
|
||||||
|
|
||||||
|
char s[22]; /* For holding error string */
|
||||||
|
char buffer[SECSIZE]; /* The boot block buffer */
|
||||||
|
int bufmod=0; /* buffer modified... */
|
||||||
|
/* (zero means buffer is unmodified) */
|
||||||
|
int useNTable; /* boot sector uses name table */
|
||||||
|
|
||||||
|
/* device parameters (force someone to set them!) */
|
||||||
|
unsigned cyls = DEFAULT_CYLS;
|
||||||
|
unsigned heads = DEFAULT_HEADS;
|
||||||
|
unsigned sectors = DEFAULT_SECTORS;
|
||||||
|
|
||||||
|
char *devname; /* device name */
|
||||||
|
char cmdline[MAX_LINE];
|
||||||
|
char filename[80]; /* used by r/w commands */
|
||||||
|
char *prompt; /* null if no tty input */
|
||||||
|
|
||||||
|
/* Some of these strings are used in more than one place.
|
||||||
|
* For consistency, I put a newline on all of them.
|
||||||
|
*/
|
||||||
|
char h_h[] = "? <enter> : Help summary\n";
|
||||||
|
char h_l[] = "L : List partition table\n";
|
||||||
|
char h_1[] = "1 id first last [name]: set partition 1\n";
|
||||||
|
char h_2[] = "2,3,4 ... (like 1) : set respective partition\n";
|
||||||
|
char h_a[] = "A n [m, ...] : Activate partition(s) n [m, ...]\n";
|
||||||
|
char h_g[] = "G cyls heads sectors : set disk Geometry\n";
|
||||||
|
char h_i[] = "I : list known ID numbers\n";
|
||||||
|
char h_r[] = "R [optional-file] : Read device (or specified file)\n";
|
||||||
|
char h_w[] = "W [optional-file] : Write device (or specified file)\n";
|
||||||
|
char h_q[] = "Q[!] : Quit (! means force)\n";
|
||||||
|
|
||||||
|
char * helpTable[] = {
|
||||||
|
h_h, h_l, h_1, h_2, h_a, h_g, h_i, h_r, h_w, h_q,
|
||||||
|
"# (All command letters have lower-case equivalents.)\n",
|
||||||
|
(char *) 0 }; /* This MUST have a zero as the last element */
|
||||||
|
|
||||||
|
char *BadArg="Error: bad argument: %s\n";
|
||||||
|
char *WarnNotSaved =
|
||||||
|
"Warning, modified partition table not saved.\n";
|
||||||
|
|
||||||
|
help()
|
||||||
|
{
|
||||||
|
char ** p;
|
||||||
|
for (p = helpTable; *p; p++)
|
||||||
|
printf(*p);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* forward declarations */
|
||||||
|
void checkValidity();
|
||||||
|
char * setPartition();
|
||||||
|
char * makeActive();
|
||||||
|
char * setGeometry();
|
||||||
|
ulong chs2long();
|
||||||
|
char * nameID();
|
||||||
|
int printIDs();
|
||||||
|
|
||||||
|
main(argc,argv)
|
||||||
|
int argc;
|
||||||
|
char *argv[];
|
||||||
|
{
|
||||||
|
char *cmdp; /* points to command word */
|
||||||
|
char *argp; /* points to command args */
|
||||||
|
|
||||||
|
/* check command line args (device name) */
|
||||||
|
if (argc != 2) {
|
||||||
|
usage(argv[0]); /* See s-sysname.c */
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
devname = argv[1];
|
||||||
|
|
||||||
|
/* Should we prompt? */
|
||||||
|
prompt = (isatty(fileno(stdin))) ? PROMPT_STRING : (char *) 0;
|
||||||
|
|
||||||
|
/* Print version name. */
|
||||||
|
fputs(versionString, stderr);
|
||||||
|
|
||||||
|
/* get disk parameters */
|
||||||
|
getGeometry(devname,&cyls,&heads,§ors);
|
||||||
|
|
||||||
|
/* Get the boot block. */
|
||||||
|
if (getBBlk(devname, buffer) < 0)
|
||||||
|
fprintf(stderr,"%s: read failed\n", devname);
|
||||||
|
checkValidity();
|
||||||
|
|
||||||
|
if (prompt) fprintf(stderr,"For help, enter: '?'\n");
|
||||||
|
|
||||||
|
|
||||||
|
/* Read and process commands a line at a time. */
|
||||||
|
while (1) {
|
||||||
|
if (prompt) fputs(prompt,stdout);
|
||||||
|
if (! fgets(cmdline, MAX_LINE, stdin)) break;
|
||||||
|
|
||||||
|
/* Find beginning of command word */
|
||||||
|
cmdp = cmdline;
|
||||||
|
while (isspace(*cmdp)) cmdp++;
|
||||||
|
|
||||||
|
/* find beginning of args */
|
||||||
|
argp = cmdp;
|
||||||
|
while (*argp && !isspace(*argp)) argp++;
|
||||||
|
while (isspace(*argp) || *argp=='=') argp++;
|
||||||
|
|
||||||
|
switch (*cmdp) {
|
||||||
|
|
||||||
|
case '\0': /* blank line */
|
||||||
|
case '#': /* line comment */
|
||||||
|
break;
|
||||||
|
|
||||||
|
case '?': case 'h': case 'H':
|
||||||
|
help();
|
||||||
|
break;
|
||||||
|
|
||||||
|
case '1': /* set partition entry */
|
||||||
|
case '2': case '3': case '4':
|
||||||
|
argp = setPartition(cmdp, argp);
|
||||||
|
if (argp) { /* arg list error */
|
||||||
|
fprintf(stderr,BadArg,argp);
|
||||||
|
fprintf(stderr,h_1);
|
||||||
|
fprintf(stderr,h_2);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
bufmod = 1;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'a': case 'A': /* activate partition */
|
||||||
|
argp = makeActive(argp);
|
||||||
|
if (argp) {
|
||||||
|
fprintf(stderr,BadArg,argp);
|
||||||
|
fprintf(stderr,h_a);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
bufmod = 1;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'g': case 'G': /* set disk parameters (Geometry) */
|
||||||
|
argp = setGeometry(argp);
|
||||||
|
if (argp) { /* arg list error */
|
||||||
|
fprintf(stderr,BadArg,argp);
|
||||||
|
fprintf(stderr,h_g);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'i': case 'I': /* List known ID numbers */
|
||||||
|
printIDs();
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'l': case 'L': /* List the partition table */
|
||||||
|
listPTable();
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'q': case 'Q': /* Quit */
|
||||||
|
if (bufmod && (cmdp[1] != '!')) {
|
||||||
|
fprintf(stderr,"\007%s%s\n", WarnNotSaved,
|
||||||
|
"Use 'wq' or 'q!' (enter ? for help).");
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
exit(0);
|
||||||
|
/*NOTREACHED*/
|
||||||
|
|
||||||
|
case 'r': case 'R': /* read from device or file */
|
||||||
|
if (sscanf(argp,"%80s",filename) == 1) {
|
||||||
|
/* Arg specified, read from filename */
|
||||||
|
if (getFile(filename, buffer, SECSIZE) < 0)
|
||||||
|
fprintf(stderr,"%s: read failed\n", filename);
|
||||||
|
bufmod = 1;
|
||||||
|
} else {
|
||||||
|
/* No arg, use device. */
|
||||||
|
if (getBBlk(devname, buffer) < 0)
|
||||||
|
fprintf(stderr,"%s: read failed\n", devname);
|
||||||
|
bufmod = 0;
|
||||||
|
}
|
||||||
|
checkValidity();
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'w': case 'W': /* Write to file or device */
|
||||||
|
if (sscanf(argp,"%80s",filename) == 1) {
|
||||||
|
/* Arg specified, write to filename */
|
||||||
|
if (putFile(filename, buffer, SECSIZE) < 0)
|
||||||
|
fprintf(stderr, "%s: write failed\n", filename);
|
||||||
|
} else { /* No arg, use device. */
|
||||||
|
if (putBBlk(devname, buffer) < 0)
|
||||||
|
fprintf(stderr, "%s: write failed\n", devname);
|
||||||
|
bufmod = 0;
|
||||||
|
}
|
||||||
|
if (cmdp[1] == 'q' || cmdp[1] == 'Q') exit(0);
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
fprintf(stderr,"'%c': unrecognized. Enter '?' for help.\n", *cmdp);
|
||||||
|
break;
|
||||||
|
|
||||||
|
} /* switch */
|
||||||
|
} /* while */
|
||||||
|
if (bufmod) fprintf(stderr, WarnNotSaved);
|
||||||
|
exit(0);
|
||||||
|
} /* main */
|
||||||
|
|
||||||
|
|
||||||
|
/* Check for valid boot block (magic number in last two bytes).
|
||||||
|
* Also, check for presence of partition name table.
|
||||||
|
*/
|
||||||
|
void checkValidity()
|
||||||
|
{
|
||||||
|
/* Check the magic number. */
|
||||||
|
if ((buffer[MAGIC_LOC] & 0xFF) != MAGIC_0 ||
|
||||||
|
(buffer[MAGIC_LOC+1] & 0xFF) != MAGIC_1 ) {
|
||||||
|
/* The boot sector is not valid -- Fix it. */
|
||||||
|
buffer[MAGIC_LOC] = MAGIC_0;
|
||||||
|
buffer[MAGIC_LOC+1] = MAGIC_1;
|
||||||
|
bufmod = 1;
|
||||||
|
fprintf(stderr,
|
||||||
|
"\n\tWarning: The boot sector has an invalid magic number.\n\
|
||||||
|
\tThe magic number has been fixed, but the other contents\n\
|
||||||
|
\tare probably garbage. Initialize using the command:\n\
|
||||||
|
\t\tR boot-program-file (i.e. bootmenu.bin)\n\
|
||||||
|
\tthen set each partition entry if necessary.\n");
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Does it use a name table (for a boot menu)?
|
||||||
|
* My boot program does, and can be identified by
|
||||||
|
* finding my name in a particular (unused) area.
|
||||||
|
*/
|
||||||
|
useNTable = ( buffer[LOC_GWR] == (char)0x3A ); /* Saul */
|
||||||
|
/* useNTable = !strcmp(&buffer[LOC_GWR], "Gordon W. Ross"); Saul */
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
char * setPartition(cmdp,argp) /* return string on error */
|
||||||
|
char *cmdp,*argp;
|
||||||
|
{
|
||||||
|
struct part *pp; /* partition entry */
|
||||||
|
char * np; /* name table pointer */
|
||||||
|
char tmpname[20];
|
||||||
|
char * newname = tmpname; /* name field */
|
||||||
|
int index; /* partition index (0..3) */
|
||||||
|
uint id; /* ID code (see syscodes.c) */
|
||||||
|
uint first,last; /* user supplied cylinders */
|
||||||
|
uint c,h,s; /* working cyl,head,sect, */
|
||||||
|
int i; /* returned by sscanf */
|
||||||
|
ulong lsbeg, lslen; /* logical begin, length */
|
||||||
|
|
||||||
|
/* Value check the index */
|
||||||
|
index = *cmdp - '1';
|
||||||
|
if (index < 0 || index > 3)
|
||||||
|
return("index");
|
||||||
|
pp = (struct part *) &buffer[LOC_PT + index * 16];
|
||||||
|
np = &buffer[LOC_NT + index * NT_ENTRY_SIZE]; /* Saul */
|
||||||
|
/* np = &buffer[LOC_NT + index * 8]; Saul */
|
||||||
|
|
||||||
|
/* Read System ID */
|
||||||
|
if ((i=sscanf(argp,"%d%d%d%s", &id, &first, &last, newname)) < 1)
|
||||||
|
return("id");
|
||||||
|
|
||||||
|
/* If ID==0, just clear out the entry and return. */
|
||||||
|
if (id == 0) {
|
||||||
|
strncpy( (char *) pp, "", 16);
|
||||||
|
if (useNTable) strncpy( np, "", NT_ENTRY_SIZE); /* Saul */
|
||||||
|
/* if (useNTable) strncpy( np, "", 8); Saul */
|
||||||
|
return((char *)0);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Read first and last cylinder */
|
||||||
|
if (i < 3)
|
||||||
|
return("first last (missing)");
|
||||||
|
|
||||||
|
/* Reasonable start,end cylinder numbers? */
|
||||||
|
if (first > last) return("first > last");
|
||||||
|
if (first > 1023) return("first > 1023");
|
||||||
|
if (last >= cyls) return("last >= cyls");
|
||||||
|
|
||||||
|
/* Get (optional) system name. */
|
||||||
|
if (i == 3) { /* no name given, use default */
|
||||||
|
newname = nameID(id);
|
||||||
|
}
|
||||||
|
else useNTable = 1;
|
||||||
|
|
||||||
|
/* Set the ID and name. */
|
||||||
|
pp->sysid = id;
|
||||||
|
if (useNTable) {
|
||||||
|
strncpy(np, newname, NT_ENTRY_SIZE); /* Saul */
|
||||||
|
/* strncpy(np, newname, 8); Saul */
|
||||||
|
/* strcpy(&buffer[LOC_GWR], "Gordon W. Ross"); Saul */
|
||||||
|
buffer[LOC_GWR] = (char)0x3A; /* Saul */
|
||||||
|
}
|
||||||
|
|
||||||
|
/* set beginning c,h,s */
|
||||||
|
c = first;
|
||||||
|
/* if c == 0, head == 1 (reserve track 0) */
|
||||||
|
h = (first) ? 0 : 1;
|
||||||
|
s = 1;
|
||||||
|
pp->b_cyl = c & 0xFF;
|
||||||
|
pp->b_head = h;
|
||||||
|
pp->b_sec = s | ((c >> 2) & 0xC0);
|
||||||
|
/* Set the logical sector begin field */
|
||||||
|
lsbeg = lslen = chs2long(c,h,s); /* using lslen as temp. */
|
||||||
|
/* pp->lsBeg[0] = lslen & 0xff; lslen >>= 8;
|
||||||
|
pp->lsBeg[1] = lslen & 0xff; lslen >>= 8;
|
||||||
|
pp->lsBeg[2] = lslen & 0xff; lslen >>= 8;
|
||||||
|
pp->lsBeg[3] = lslen & 0xff; lslen >>= 8; Saul */
|
||||||
|
pp->lsBeg = lslen; /* Saul */
|
||||||
|
|
||||||
|
/* set ending c,h,s (last may be larger than 1023) */
|
||||||
|
c = (last>1023) ? 1023 : last; /* limit c to 1023 */
|
||||||
|
h = heads - 1; s = sectors;
|
||||||
|
pp->e_cyl = c & 0xFF;
|
||||||
|
pp->e_head = h;
|
||||||
|
pp->e_sec = s | ((c >> 2) & 0xC0);
|
||||||
|
/* Set the logical sector length field (using REAL end cylinder) */
|
||||||
|
lslen = chs2long(last,h,s) + 1 - lsbeg;
|
||||||
|
/* pp->lsLen[0] = lslen & 0xff; lslen >>= 8;
|
||||||
|
pp->lsLen[1] = lslen & 0xff; lslen >>= 8;
|
||||||
|
pp->lsLen[2] = lslen & 0xff; lslen >>= 8;
|
||||||
|
pp->lsLen[3] = lslen & 0xff; lslen >>= 8; Saul */
|
||||||
|
pp->lsLen = lslen; /* Saul */
|
||||||
|
|
||||||
|
return((char *)0); /* success */
|
||||||
|
} /* setPartition() */
|
||||||
|
|
||||||
|
char * makeActive(argp) /* return error string or zero */
|
||||||
|
char *argp;
|
||||||
|
{
|
||||||
|
struct part *pp; /* partition entry */
|
||||||
|
int i,act1,act2,act3,act4,act5; /* which one becomes active */
|
||||||
|
|
||||||
|
act1=0;
|
||||||
|
act2=0;
|
||||||
|
act3=0;
|
||||||
|
act4=0;
|
||||||
|
if ((i=sscanf(argp,"%d%d%d%d%d", &act1, &act2, &act3, &act4, &act5)) < 1)
|
||||||
|
return("missing partition number");
|
||||||
|
if ( i > 4)
|
||||||
|
return("at most four partition numbers");
|
||||||
|
act1--; /* make it zero-origin */
|
||||||
|
act2--; /* make it zero-origin */
|
||||||
|
act3--; /* make it zero-origin */
|
||||||
|
act4--; /* make it zero-origin */
|
||||||
|
|
||||||
|
i=0; pp = (struct part *) &buffer[LOC_PT];
|
||||||
|
while (i<4) {
|
||||||
|
if (pp->sysid == 0 && (i == act1|| i == act2 || i == act3 || i == act4)) {
|
||||||
|
sprintf(s, "partition %d empty", i+1);
|
||||||
|
return(s);
|
||||||
|
}
|
||||||
|
i++; pp++;
|
||||||
|
}
|
||||||
|
i=0; pp -= 4;
|
||||||
|
while (i<4) {
|
||||||
|
if (i == act1|| i == act2 || i == act3 || i == act4)
|
||||||
|
pp->active = 0x80;
|
||||||
|
else
|
||||||
|
pp->active = 0;
|
||||||
|
i++; pp++;
|
||||||
|
}
|
||||||
|
return((char *)0);
|
||||||
|
}
|
||||||
|
|
||||||
|
char * setGeometry(argp) /* return string on error */
|
||||||
|
char *argp;
|
||||||
|
{
|
||||||
|
int c,h,s;
|
||||||
|
|
||||||
|
if (sscanf(argp,"%d%d%d", &c, &h, &s) < 3)
|
||||||
|
return("(missing)");
|
||||||
|
if (c<1) return("cyls");
|
||||||
|
if (h<1) return("heads");
|
||||||
|
if (s<1) return("sectors");
|
||||||
|
cyls=c; heads=h; sectors=s;
|
||||||
|
return((char *)0);
|
||||||
|
}
|
||||||
|
|
||||||
|
listPTable() /* print out partition table */
|
||||||
|
{
|
||||||
|
struct part * pp; /* partition table entry */
|
||||||
|
char *name;
|
||||||
|
int i; /* partition number */
|
||||||
|
/* int numActive=0; /* active partition [1-4], 0==none */
|
||||||
|
char Active[20]; /* active partitions [1-4], 0==none */
|
||||||
|
uint pbc,pbh,pbs; /* physical beginning c,h,s */
|
||||||
|
uint pec,peh,pes; /* physical ending c,h,s */
|
||||||
|
uint lbc,lbh,lbs; /* logical beginning c,h,s */
|
||||||
|
uint lec,leh,les; /* logical ending c,h,s */
|
||||||
|
ulong lsbeg,lslen; /* logical sectors: begin, length */
|
||||||
|
|
||||||
|
strcpy(Active, "active:");
|
||||||
|
printf("# Partition table on device: %s\n", devname);
|
||||||
|
printf("geometry %d %d %d (cyls heads sectors)\n",
|
||||||
|
cyls, heads, sectors);
|
||||||
|
/* printf("# ID First(cyl) Last(cyl) Name "); Saul */
|
||||||
|
printf("# ID First(cyl) Last(cyl) Name "); /* Saul */
|
||||||
|
printf("# start, length (sectors)\n");
|
||||||
|
|
||||||
|
for (i=0; i<4; i++) {
|
||||||
|
pp = (struct part *) &buffer[LOC_PT + i * 16];
|
||||||
|
|
||||||
|
if (pp->active) {
|
||||||
|
char s[3];
|
||||||
|
sprintf(s, " %d", i+1);
|
||||||
|
strcat(Active,s);
|
||||||
|
if (pp->active != 0x80)
|
||||||
|
fprintf(stderr, "Warning: Partition %d is active, with the illegal activity byte %d.\nCorrect with the \"A\" command.\n", i+1, pp->active);
|
||||||
|
/* if(numActive)
|
||||||
|
fprintf(stderr,"Error: multiple active partitions.\n");
|
||||||
|
else numActive = i+1; */
|
||||||
|
}
|
||||||
|
|
||||||
|
/* physical beginning c,h,s */
|
||||||
|
pbc = pp->b_cyl & 0xff | (pp->b_sec << 2) & 0x300;
|
||||||
|
pbh = pp->b_head;
|
||||||
|
pbs = pp->b_sec & 0x3F;
|
||||||
|
|
||||||
|
/* physical ending c,h,s */
|
||||||
|
pec = pp->e_cyl & 0xff | (pp->e_sec << 2) & 0x300;
|
||||||
|
peh = pp->e_head;
|
||||||
|
pes = pp->e_sec & 0x3F;
|
||||||
|
|
||||||
|
/* compute logical beginning (c,h,s) */
|
||||||
|
/* lsbeg = ((((((pp->lsBeg[3] ) << 8 )
|
||||||
|
| pp->lsBeg[2] ) << 8 )
|
||||||
|
| pp->lsBeg[1] ) << 8 )
|
||||||
|
| pp->lsBeg[0] ; Saul */
|
||||||
|
lsbeg = pp->lsBeg; /* Saul */
|
||||||
|
long2chs(lsbeg, &lbc, &lbh, &lbs);
|
||||||
|
/* compute logical ending (c,h,s) */
|
||||||
|
/* lslen = ((((((pp->lsLen[3]) << 8 )
|
||||||
|
| pp->lsLen[2]) << 8 )
|
||||||
|
| pp->lsLen[1]) << 8 )
|
||||||
|
| pp->lsLen[0] ; Saul */
|
||||||
|
lslen = pp->lsLen; /* Saul*/
|
||||||
|
/* keep beginning <= end ... */
|
||||||
|
if (lslen > 0) long2chs(lsbeg+lslen-1, &lec, &leh, &les);
|
||||||
|
else long2chs(lsbeg, &lec, &leh, &les);
|
||||||
|
|
||||||
|
if (useNTable)
|
||||||
|
name = &buffer[LOC_NT + i * NT_ENTRY_SIZE ]; /* Saul */
|
||||||
|
/* name = &buffer[LOC_NT + i * 8]; Saul */
|
||||||
|
else
|
||||||
|
name = nameID((uint) pp->sysid);
|
||||||
|
|
||||||
|
/* show physical begin, logical end (works for cyl>1023) */
|
||||||
|
/* # ID First(cyl) Last(cyl) Name... # ... */
|
||||||
|
/* printf("%d %3d %4d %4d %-8.8s # %ld, %ld\n", Saul */
|
||||||
|
printf("%d %3d %4d %4d %-5.5s # %ld, %ld\n", /* Saul */
|
||||||
|
i+1, pp->sysid, pbc, lec, name, lsbeg, lslen );
|
||||||
|
|
||||||
|
/* That's all, for an empty partition. */
|
||||||
|
if (pp->sysid == 0) continue;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Now do some consistency checks...
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* Same physical / logical beginning? */
|
||||||
|
if (pbc != lbc || pbh != lbh || pbs != lbs ) {
|
||||||
|
printf("# note: first(%d): ", i+1);
|
||||||
|
printf("phys=(%d,%d,%d) ", pbc, pbh, pbs);
|
||||||
|
printf("logical=(%d,%d,%d)\n",lbc, lbh, lbs);
|
||||||
|
}
|
||||||
|
/* Same physical / logical ending? */
|
||||||
|
if (pec != lec || peh != leh || pes != les ) {
|
||||||
|
printf("# note: last(%d): ", i+1);
|
||||||
|
printf("phys=(%d,%d,%d) ", pec, peh, pes);
|
||||||
|
printf("logical=(%d,%d,%d)\n",lec, leh, les);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Beginning on cylinder boundary? */
|
||||||
|
if (pbc == 0) { /* exception: start on head 1 */
|
||||||
|
if (pbh != 1 || pbs != 1) {
|
||||||
|
printf("# note: first(%i): ", i+1);
|
||||||
|
printf("phys=(%d,%d,%d) ", pbc, pbh, pbs);
|
||||||
|
printf("should be (%d,1,1)\n", pbc);
|
||||||
|
}
|
||||||
|
} else { /* not on cyl 0 */
|
||||||
|
if (pbh != 0 || pbs != 1) {
|
||||||
|
printf("# note: first(%i): ", i+1);
|
||||||
|
printf("phys=(%d,%d,%d) ", pbc, pbh, pbs);
|
||||||
|
printf("should be (%d,0,1)\n", pbc);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Ending on cylinder boundary? */
|
||||||
|
if (peh != (heads-1) || pes != sectors) {
|
||||||
|
printf("# note: last(%i): ", i+1);
|
||||||
|
printf("phys=(%d,%d,%d) ", pec, peh, pes);
|
||||||
|
printf("should be (%d,%d,%d)\n",
|
||||||
|
pec, heads-1, sectors);
|
||||||
|
}
|
||||||
|
|
||||||
|
} /* for */
|
||||||
|
if ( !Active[7] ) /* No active partitions */
|
||||||
|
strcat(Active, " 0 (none)");
|
||||||
|
strcat(Active, "\n");
|
||||||
|
printf(Active);
|
||||||
|
/* printf("active: %d %s\n", numActive,
|
||||||
|
(numActive) ? "" : "(none)"); */
|
||||||
|
} /* listPTable() */
|
||||||
|
|
||||||
|
ulong chs2long(c,h,s)
|
||||||
|
uint c,h,s;
|
||||||
|
{
|
||||||
|
ulong l;
|
||||||
|
if (s<1) s=1;
|
||||||
|
l = c; l *= heads;
|
||||||
|
l += h; l *= sectors;
|
||||||
|
l += (s - 1);
|
||||||
|
return(l);
|
||||||
|
}
|
||||||
|
|
||||||
|
long2chs(ls, c, h, s) /* convert logical sec-num to c,h,s */
|
||||||
|
ulong ls; /* Logical Sector number */
|
||||||
|
uint *c,*h,*s; /* cyl, head, sector */
|
||||||
|
{
|
||||||
|
int spc = heads * sectors;
|
||||||
|
*c = ls / spc;
|
||||||
|
ls = ls % spc;
|
||||||
|
*h = ls / sectors;
|
||||||
|
*s = ls % sectors + 1; /* sectors count from 1 */
|
||||||
|
}
|
||||||
|
|
||||||
|
char * nameID(n)
|
||||||
|
unsigned int n;
|
||||||
|
{
|
||||||
|
struct intString *is;
|
||||||
|
|
||||||
|
is = sysCodes;
|
||||||
|
while (is->i) {
|
||||||
|
if (is->i == n) return(is->s);
|
||||||
|
is++;
|
||||||
|
}
|
||||||
|
if (!n) return(is->s);
|
||||||
|
return("unknown");
|
||||||
|
}
|
||||||
|
|
||||||
|
int printIDs() /* print the known system IDs */
|
||||||
|
{
|
||||||
|
struct intString * is = sysCodes;
|
||||||
|
|
||||||
|
/* This might need to do more processing eventually, i.e.
|
||||||
|
* if (prompt) { ... do more processing ... }
|
||||||
|
*/
|
||||||
|
printf("_ID_\t__Name__ ____Description____\n");
|
||||||
|
while (is->i) {
|
||||||
|
printf("%3d\t%s\n", is->i, is->s);
|
||||||
|
is++;
|
||||||
|
}
|
||||||
|
}
|
||||||
43
Linux-0.98/INSTALL/pfdisk/SYSCODES.C
Normal file
43
Linux-0.98/INSTALL/pfdisk/SYSCODES.C
Normal file
@@ -0,0 +1,43 @@
|
|||||||
|
/* This file holds all knowledge of partition ID codes.
|
||||||
|
* Thanks to leendert@cs.vu.nl (Leendert van Doorn) for
|
||||||
|
* collecting most of this information.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#define extern
|
||||||
|
#include "syscodes.h"
|
||||||
|
#undef extern
|
||||||
|
|
||||||
|
/* Note that my boot program menu can only use the first 8 characters
|
||||||
|
* of these names. The colon in the nineth position shows where the
|
||||||
|
* first truncated char is. (There's not much room in the bootblock!)
|
||||||
|
* changed sysCodes[] below, adding SIZE tms */
|
||||||
|
struct intString sysCodes[SIZE] = {
|
||||||
|
{ 0x01, "DOS12 :12-bit FAT" },
|
||||||
|
{ 0x02, "XENIX :root" },
|
||||||
|
{ 0x03, "XENIX :usr" },
|
||||||
|
{ 0x04, "DOS16 :16-bit FAT" },
|
||||||
|
{ 0x05, "DOSex :DOS 3.3 extended volume" },
|
||||||
|
{ 0x06, "DOSbi :DOS 4.0 large volume" },
|
||||||
|
{ 0x07, "OS/2 :OS/2 (or QNX or Adv. UNIX...)" },
|
||||||
|
{ 0x08, "AIX :file system" },
|
||||||
|
{ 0x09, "AIXbt:boot partition" },
|
||||||
|
|
||||||
|
{ 0x10, "OPUS :?" },
|
||||||
|
{ 0x40, "VENIX :Venix 80286" },
|
||||||
|
{ 0x51, "NOVEL :?" },
|
||||||
|
{ 0x52, "CPM :?" },
|
||||||
|
{ 0x63, "UNIX :System V/386" },
|
||||||
|
{ 0x64, "NOVEL :?" },
|
||||||
|
{ 0x75, "PC/IX :?" },
|
||||||
|
{ 0x80, "Minix :Minix (ver. 1.4a and earlier)" },
|
||||||
|
{ 0x81, "Minix :Minix (ver. 1.4b and later)" },
|
||||||
|
{ 0x93, "Ameba :Amoeba file system" },
|
||||||
|
{ 0x94, "Ameba :Amoeba bad block table?" },
|
||||||
|
{ 0xDB, "C.DOS :Concurrent DOS" },
|
||||||
|
|
||||||
|
/* { 0xF2, "DOS-2nd :DOS 3.3+ second partition" }, */
|
||||||
|
/* { 0xFF, "BAD-TRK :Bad track table?" }, */
|
||||||
|
|
||||||
|
/* Make sure this is last! */
|
||||||
|
{ 0, "empty" }
|
||||||
|
};
|
||||||
4
Linux-0.98/INSTALL/pfdisk/SYSCODES.H
Normal file
4
Linux-0.98/INSTALL/pfdisk/SYSCODES.H
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
#define SIZE 40 /* added tms */
|
||||||
|
struct intString { unsigned int i; char * s; };
|
||||||
|
extern struct intString sysCodes[SIZE]; /* was sysCodes[] modified tms */
|
||||||
|
|
||||||
22
Linux-0.98/INSTALL/pfdisk/SYSDEP.H
Normal file
22
Linux-0.98/INSTALL/pfdisk/SYSDEP.H
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
/* communicate declarations from the files: s_*.c */
|
||||||
|
|
||||||
|
#define SECSIZE 0x200
|
||||||
|
|
||||||
|
extern int usage(); /* print a usage message */
|
||||||
|
/* (char *progname) */
|
||||||
|
|
||||||
|
extern void getGeometry(); /* determine disk parameters */
|
||||||
|
/* (char *dev, uint *cyls, uint *heads, uint *sectors) */
|
||||||
|
|
||||||
|
extern int getFile(); /* open, read, close, return(num-read) */
|
||||||
|
/* (char *name, char *buf, int len) */
|
||||||
|
|
||||||
|
extern int putFile(); /* open, write, close, return(num-writen) */
|
||||||
|
/* (char *name, char *buf, int len) */
|
||||||
|
|
||||||
|
extern int getBBlk(); /* open, read, close, return(num-read) */
|
||||||
|
/* (char *dev, char *buf) */
|
||||||
|
|
||||||
|
extern int putBBlk(); /* open, write, close, return(num-writen) */
|
||||||
|
/* (char *dev, char *buf) */
|
||||||
|
|
||||||
163
Linux-0.98/INSTALL/pfdisk/S_MSDOS.C
Normal file
163
Linux-0.98/INSTALL/pfdisk/S_MSDOS.C
Normal file
@@ -0,0 +1,163 @@
|
|||||||
|
/* This file contains system-specific functions for MS-DOS.
|
||||||
|
* The program pfdisk.c calls these routines.
|
||||||
|
*/
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <fcntl.h>
|
||||||
|
#include <sys/types.h>
|
||||||
|
#include <sys/stat.h>
|
||||||
|
#include <dos.h>
|
||||||
|
|
||||||
|
#define extern
|
||||||
|
#include "sysdep.h"
|
||||||
|
#undef extern
|
||||||
|
|
||||||
|
int usage(prog) /* print a usage message */
|
||||||
|
char *prog; /* program name */
|
||||||
|
{
|
||||||
|
fprintf(stderr,"Usage: %s <disk>\n", prog);
|
||||||
|
fprintf(stderr,"\twhere <disk> is a digit [0-9]\n");
|
||||||
|
}
|
||||||
|
|
||||||
|
void getGeometry(name, c, h, s)
|
||||||
|
char *name; /* device name */
|
||||||
|
unsigned *c,*h,*s; /* cyls, heads, sectors */
|
||||||
|
{
|
||||||
|
int dev; /* hard disk number */
|
||||||
|
union REGS regs;
|
||||||
|
struct SREGS sregs;
|
||||||
|
|
||||||
|
if (name[0] < '0' ||
|
||||||
|
name[0] > '9' ||
|
||||||
|
name[1] != 0 )
|
||||||
|
{
|
||||||
|
fprintf(stderr,"%s: device name must be a digit\n", name);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
dev = (name[0] - '0');
|
||||||
|
|
||||||
|
regs.h.ah = 8; /* get param. */
|
||||||
|
regs.h.dl = dev | 0x80;
|
||||||
|
|
||||||
|
int86x(0x13,®s,®s,&sregs);
|
||||||
|
|
||||||
|
/* Are that many drives responding? */
|
||||||
|
if (regs.h.dl <= dev ) {
|
||||||
|
fprintf(stderr,"%s: drive not found\n", name);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (regs.x.cflag) {
|
||||||
|
fprintf(stderr,"%s: can't get disk parameters\n", name);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
*c = ((((int) regs.h.cl << 2) & 0x300) | regs.h.ch) + 1;
|
||||||
|
*h = regs.h.dh + 1;
|
||||||
|
*s = regs.h.cl & 0x3F;
|
||||||
|
}
|
||||||
|
|
||||||
|
int getFile(name, buf, len) /* read file into buffer */
|
||||||
|
char *name, *buf;
|
||||||
|
int len;
|
||||||
|
{ /* (open, read, close) */
|
||||||
|
int devfd, retval;
|
||||||
|
|
||||||
|
devfd = open(name, O_RDONLY|O_BINARY, 0);
|
||||||
|
if (devfd < 0) {
|
||||||
|
fprintf(stderr,"%s: can't open for reading\n", name);
|
||||||
|
return(devfd);
|
||||||
|
}
|
||||||
|
retval = read(devfd, buf, len);
|
||||||
|
if (retval < 0)
|
||||||
|
fprintf(stderr,"%s: read failed\n", name);
|
||||||
|
close(devfd);
|
||||||
|
return(retval);
|
||||||
|
}
|
||||||
|
|
||||||
|
int putFile(name, buf, len) /* write buffer to file */
|
||||||
|
char *name, *buf;
|
||||||
|
int len;
|
||||||
|
{ /* (open, write, close) */
|
||||||
|
int devfd, retval;
|
||||||
|
|
||||||
|
devfd = open(name,
|
||||||
|
O_WRONLY|O_CREAT|O_BINARY,
|
||||||
|
S_IREAD|S_IWRITE ); /* stupid DOS... */
|
||||||
|
if (devfd < 0) {
|
||||||
|
fprintf(stderr,"%s: can't open for writing\n", name);
|
||||||
|
return(devfd);
|
||||||
|
}
|
||||||
|
retval = write(devfd, buf, len);
|
||||||
|
if (retval < 0)
|
||||||
|
fprintf(stderr,"%s: write failed\n", name);
|
||||||
|
close(devfd);
|
||||||
|
return(retval);
|
||||||
|
}
|
||||||
|
|
||||||
|
int getBBlk(name, buf) /* read boot block into buffer */
|
||||||
|
char *name, *buf;
|
||||||
|
{ /* BIOS absolute disk read */
|
||||||
|
int dev;
|
||||||
|
union REGS regs;
|
||||||
|
struct SREGS sregs;
|
||||||
|
|
||||||
|
if (name[0] < '0' ||
|
||||||
|
name[0] > '9' ||
|
||||||
|
name[1] != 0 )
|
||||||
|
{
|
||||||
|
fprintf(stderr,"%s: device name must be a digit\n",name);
|
||||||
|
return(-1);
|
||||||
|
}
|
||||||
|
dev = (name[0] - '0');
|
||||||
|
|
||||||
|
segread(&sregs); /* get ds */
|
||||||
|
sregs.es = sregs.ds; /* buffer address */
|
||||||
|
regs.x.bx = (int) buf;
|
||||||
|
|
||||||
|
regs.h.ah = 2; /* read */
|
||||||
|
regs.h.al = 1; /* sector count */
|
||||||
|
regs.h.ch = 0; /* track */
|
||||||
|
regs.h.cl = 1; /* start sector */
|
||||||
|
regs.h.dh = 0; /* head */
|
||||||
|
regs.h.dl = dev|0x80; /* drive */
|
||||||
|
|
||||||
|
int86x(0x13,®s,®s,&sregs);
|
||||||
|
if (regs.x.cflag) {
|
||||||
|
fprintf(stderr,"%s: read failed\n", name);
|
||||||
|
return(-1);
|
||||||
|
}
|
||||||
|
return(SECSIZE);
|
||||||
|
}
|
||||||
|
|
||||||
|
int putBBlk(name, buf) /* write buffer to boot block */
|
||||||
|
char *name, *buf;
|
||||||
|
{ /* BIOS absolute disk write */
|
||||||
|
int dev;
|
||||||
|
union REGS regs;
|
||||||
|
struct SREGS sregs;
|
||||||
|
|
||||||
|
if (name[0] < '0' ||
|
||||||
|
name[0] > '9' ||
|
||||||
|
name[1] != 0 )
|
||||||
|
{
|
||||||
|
fprintf(stderr,"%s: device name must be a digit\n", name);
|
||||||
|
return(-1);
|
||||||
|
}
|
||||||
|
dev = (name[0] - '0');
|
||||||
|
|
||||||
|
segread(&sregs); /* get ds */
|
||||||
|
sregs.es = sregs.ds; /* buffer address */
|
||||||
|
regs.x.bx = (int) buf;
|
||||||
|
|
||||||
|
regs.h.ah = 3; /* write */
|
||||||
|
regs.h.al = 1; /* sector count */
|
||||||
|
regs.h.ch = 0; /* track */
|
||||||
|
regs.h.cl = 1; /* start sector */
|
||||||
|
regs.h.dh = 0; /* head */
|
||||||
|
regs.h.dl = dev|0x80; /* drive */
|
||||||
|
|
||||||
|
int86x(0x13,®s,®s,&sregs);
|
||||||
|
if (regs.x.cflag) {
|
||||||
|
fprintf(stderr,"%s: write failed\n",name);
|
||||||
|
return(-1);
|
||||||
|
}
|
||||||
|
return(SECSIZE);
|
||||||
|
}
|
||||||
BIN
Linux-0.98/INSTALL/pfdisktc.zip
Normal file
BIN
Linux-0.98/INSTALL/pfdisktc.zip
Normal file
Binary file not shown.
182
Linux-0.98/INSTALL/rawrite.c
Normal file
182
Linux-0.98/INSTALL/rawrite.c
Normal file
@@ -0,0 +1,182 @@
|
|||||||
|
/*
|
||||||
|
rawrite.c Write a binary image to a 360K diskette.
|
||||||
|
By Mark Becker
|
||||||
|
|
||||||
|
Usage:
|
||||||
|
MS-DOS prompt> RAWRITE
|
||||||
|
|
||||||
|
And follow the prompts.
|
||||||
|
|
||||||
|
History
|
||||||
|
-------
|
||||||
|
|
||||||
|
1.0 - Initial release
|
||||||
|
1.1 - Beta test (fixing bugs) 4/5/91
|
||||||
|
Some BIOS's don't like full-track writes.
|
||||||
|
1.101 - Last beta release. 4/8/91
|
||||||
|
Fixed BIOS full-track write by only
|
||||||
|
writing 3 sectors at a time.
|
||||||
|
1.2 - Final code and documentation clean-ups. 4/9/91
|
||||||
|
*/
|
||||||
|
#include <alloc.h>
|
||||||
|
#include <bios.h>
|
||||||
|
#include <ctype.h>
|
||||||
|
#include <dir.h>
|
||||||
|
#include <dos.h>
|
||||||
|
#include <io.h>
|
||||||
|
#include <fcntl.h>
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
|
||||||
|
#define FALSE 0
|
||||||
|
#define TRUE (!FALSE)
|
||||||
|
|
||||||
|
#define SECTORSIZE 512
|
||||||
|
|
||||||
|
#define RESET 0
|
||||||
|
#define LAST 1
|
||||||
|
#define READ 2
|
||||||
|
#define WRITE 3
|
||||||
|
#define VERIFY 4
|
||||||
|
#define FORMAT 5
|
||||||
|
|
||||||
|
int done;
|
||||||
|
|
||||||
|
/*
|
||||||
|
Catch ^C and ^Break.
|
||||||
|
*/
|
||||||
|
int handler(void)
|
||||||
|
{
|
||||||
|
done = TRUE;
|
||||||
|
return(0);
|
||||||
|
}
|
||||||
|
void msg(char (*s))
|
||||||
|
{
|
||||||
|
fprintf(stderr, "%s\n", s);
|
||||||
|
_exit(1);
|
||||||
|
}
|
||||||
|
/*
|
||||||
|
Identify the error code with a real error message.
|
||||||
|
*/
|
||||||
|
void Error(int (status))
|
||||||
|
{
|
||||||
|
switch (status) {
|
||||||
|
case 0x00: msg("Operation Successful"); break;
|
||||||
|
case 0x01: msg("Bad command"); break;
|
||||||
|
case 0x02: msg("Address mark not found"); break;
|
||||||
|
case 0x03: msg("Attempt to write on write-protected disk"); break;
|
||||||
|
case 0x04: msg("Sector not found"); break;
|
||||||
|
case 0x05: msg("Reset failed (hard disk)"); break;
|
||||||
|
case 0x06: msg("Disk changed since last operation"); break;
|
||||||
|
case 0x07: msg("Drive parameter activity failed"); break;
|
||||||
|
case 0x08: msg("DMA overrun"); break;
|
||||||
|
case 0x09: msg("Attempt to DMA across 64K boundary"); break;
|
||||||
|
case 0x0A: msg("Bad sector detected"); break;
|
||||||
|
case 0x0B: msg("Bad track detected"); break;
|
||||||
|
case 0x0C: msg("Unsupported track"); break;
|
||||||
|
case 0x10: msg("Bad CRC/ECC on disk read"); break;
|
||||||
|
case 0x11: msg("CRC/ECC corrected data error"); break;
|
||||||
|
case 0x20: msg("Controller has failed"); break;
|
||||||
|
case 0x40: msg("Seek operation failed"); break;
|
||||||
|
case 0x80: msg("Attachment failed to respond"); break;
|
||||||
|
case 0xAA: msg("Drive not ready (hard disk only"); break;
|
||||||
|
case 0xBB: msg("Undefined error occurred (hard disk only)"); break;
|
||||||
|
case 0xCC: msg("Write fault occurred"); break;
|
||||||
|
case 0xE0: msg("Status error"); break;
|
||||||
|
case 0xFF: msg("Sense operation failed"); break;
|
||||||
|
}
|
||||||
|
_exit(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
Identify what kind of diskette is installed in the specified drive.
|
||||||
|
Return the number of sectors per track assumed as follows:
|
||||||
|
9 - 360 K and 720 K 5.25".
|
||||||
|
15 - 1.2 M HD 5.25".
|
||||||
|
18 - 1.44 M 3.5".
|
||||||
|
*/
|
||||||
|
int nsects(int (drive))
|
||||||
|
{
|
||||||
|
static int nsect[] = {18, 15, 9};
|
||||||
|
|
||||||
|
char *buffer;
|
||||||
|
int i, status;
|
||||||
|
/*
|
||||||
|
Read sector 1, head 0, track 0 to get the BIOS running.
|
||||||
|
*/
|
||||||
|
buffer = (char *)malloc(SECTORSIZE);
|
||||||
|
biosdisk(RESET, drive, 0, 0, 0, 0, buffer);
|
||||||
|
status = biosdisk(READ, drive, 0, 10, 1, 1, buffer);
|
||||||
|
if (status == 0x06) /* Door signal change? */
|
||||||
|
status = biosdisk(READ, drive, 0, 0, 1, 1, buffer);
|
||||||
|
|
||||||
|
for (i=0; i < sizeof(nsect)/sizeof(int); ++i) {
|
||||||
|
biosdisk(RESET, drive, 0, 0, 0, 0, buffer);
|
||||||
|
status = biosdisk(READ, drive, 0, 0, nsect[i], 1, buffer);
|
||||||
|
if (status == 0x06)
|
||||||
|
status = biosdisk(READ, drive, 0, 0, nsect[i], 1, buffer);
|
||||||
|
if (status == 0x00) break;
|
||||||
|
}
|
||||||
|
if (i == sizeof(nsect)/sizeof(int)) {
|
||||||
|
msg("Can't figure out how many sectors/track for this diskette.");
|
||||||
|
}
|
||||||
|
free(buffer);
|
||||||
|
return(nsect[i]);
|
||||||
|
}
|
||||||
|
|
||||||
|
void main(void)
|
||||||
|
{
|
||||||
|
char fname[MAXPATH];
|
||||||
|
char *buffer, *pbuf;
|
||||||
|
int count, fdin, drive, head, track, status, spt, buflength, ns;
|
||||||
|
|
||||||
|
puts("RaWrite 1.2 - Write disk file to raw floppy diskette\n");
|
||||||
|
ctrlbrk(handler);
|
||||||
|
printf("Enter source file name: ");
|
||||||
|
scanf("%s", fname);
|
||||||
|
_fmode = O_BINARY;
|
||||||
|
if ((fdin = open(fname, O_RDONLY)) <= 0) {
|
||||||
|
perror(fname);
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
printf("Enter destination drive: ");
|
||||||
|
scanf("%s", fname);
|
||||||
|
drive = fname[0];
|
||||||
|
drive = (islower(drive) ? toupper(drive) : drive) - 'A';
|
||||||
|
printf("Please insert a formatted diskette into ");
|
||||||
|
printf("drive %c: and press -ENTER- :", drive + 'A');
|
||||||
|
while (bioskey(1) == 0) ; /* Wait... */
|
||||||
|
if ((bioskey(0) & 0x7F) == 3) exit(1); /* Check for ^C */
|
||||||
|
putchar('\n');
|
||||||
|
done = FALSE;
|
||||||
|
/*
|
||||||
|
* Determine number of sectors per track and allocate buffers.
|
||||||
|
*/
|
||||||
|
spt = nsects(drive);
|
||||||
|
buflength = spt * SECTORSIZE;
|
||||||
|
buffer = (char *)malloc(buflength);
|
||||||
|
printf("Number of sectors per track for this disk is %d\n", spt);
|
||||||
|
printf("Writing image to drive %c:. Press ^C to abort.\n", drive+'A');
|
||||||
|
/*
|
||||||
|
* Start writing data to diskette until there is no more data to write.
|
||||||
|
*/
|
||||||
|
head = track = 0;
|
||||||
|
while ((count = read(fdin, buffer, buflength)) > 0 && !done) {
|
||||||
|
pbuf = buffer;
|
||||||
|
for (ns = 1; count > 0 && !done; ns+=3) {
|
||||||
|
printf("Track: %02d Head: %2d Sector: %2d\r", track, head, ns);
|
||||||
|
status = biosdisk(WRITE, drive, head, track, ns, 3, pbuf);
|
||||||
|
|
||||||
|
if (status != 0) Error(status);
|
||||||
|
|
||||||
|
count -= (3*SECTORSIZE);
|
||||||
|
pbuf += (3*SECTORSIZE);
|
||||||
|
}
|
||||||
|
if ((head = (head + 1) & 1) == 0) ++track;
|
||||||
|
}
|
||||||
|
if (eof(fdin)) {
|
||||||
|
printf("\nDone.\n");
|
||||||
|
biosdisk(2, drive, 0, 0, 1, 1, buffer); /* Retract head */
|
||||||
|
}
|
||||||
|
} /* end main */
|
||||||
86
Linux-0.98/INSTALL/rawrite.doc
Normal file
86
Linux-0.98/INSTALL/rawrite.doc
Normal file
@@ -0,0 +1,86 @@
|
|||||||
|
RaWrite 1.2
|
||||||
|
-----------
|
||||||
|
|
||||||
|
Purpose
|
||||||
|
-------
|
||||||
|
|
||||||
|
Write a disk image file to a 360K floppy disk.
|
||||||
|
|
||||||
|
|
||||||
|
Equipment/Software Requirements
|
||||||
|
-------------------------------
|
||||||
|
|
||||||
|
PC/XT/AT with a floppy disk drive capable of reading and writing a 360K
|
||||||
|
diskette.
|
||||||
|
|
||||||
|
This program uses generic low-level BIOS diskette read/write functions. It
|
||||||
|
should be portable to nearly every PC in existance. PS/2's should be able
|
||||||
|
to run RawWrite but this has not been tested.
|
||||||
|
|
||||||
|
|
||||||
|
CAVEAT
|
||||||
|
------
|
||||||
|
|
||||||
|
This program will write ANY disk file to a floppy, overwriting any previous
|
||||||
|
information that may have been present. If you wish to re-use a diskette
|
||||||
|
under MS-DOS thats been written to by RawWrite then the disk will need to be
|
||||||
|
reformatted; all MS-DOS specific information will have been erased.
|
||||||
|
|
||||||
|
|
||||||
|
How to Compile
|
||||||
|
--------------
|
||||||
|
|
||||||
|
TCC rawrite.c
|
||||||
|
|
||||||
|
The source code is specific to Borland International's Turbo C 2.01 and has
|
||||||
|
been tested in all memory models.
|
||||||
|
|
||||||
|
|
||||||
|
Usage
|
||||||
|
-----
|
||||||
|
|
||||||
|
C> RAWRITE
|
||||||
|
|
||||||
|
And follow the prompts. All arguments are case-insensitive.
|
||||||
|
|
||||||
|
A sample run is shown below. The disk file being written, in this example,
|
||||||
|
is named DEMODISK and the destination - where the image is being written -
|
||||||
|
is the B: drive.
|
||||||
|
|
||||||
|
This program may be aborted at any time by typing ^C.
|
||||||
|
|
||||||
|
|
||||||
|
Sample Run
|
||||||
|
----------
|
||||||
|
|
||||||
|
C> RAWRITE
|
||||||
|
RaWrite 1.2 - Write disk file to raw floppy diskette
|
||||||
|
|
||||||
|
Enter source file name: DEMODISK
|
||||||
|
Enter destination drive: B
|
||||||
|
Please insert a formatted 360K diskette into drive B: and press -ENTER- :
|
||||||
|
Writing image to drive B:
|
||||||
|
|
||||||
|
|
||||||
|
Errors
|
||||||
|
------
|
||||||
|
|
||||||
|
RaWrite attempts to determine if the diskette is a 360K, 720K, 1.2M, or
|
||||||
|
1.44M diskette by reading specific sectors. If the inserted diskette is not
|
||||||
|
one of the mentioned types, then RaWrite will abort with a short error
|
||||||
|
message.
|
||||||
|
|
||||||
|
Errors such as write protect, door open, bad disk, bad sector, etc. cause a
|
||||||
|
program abort with a short error message.
|
||||||
|
|
||||||
|
|
||||||
|
History
|
||||||
|
-------
|
||||||
|
|
||||||
|
1.0 - Initial release
|
||||||
|
1.1 - Beta test (fixing bugs) 4/5/91
|
||||||
|
Some BIOS's don't like full-track writes.
|
||||||
|
1.101 - Last beta release. 4/8/91
|
||||||
|
Fixed BIOS full-track write by only only
|
||||||
|
writing 3 sectors at a time.
|
||||||
|
1.2 - Final code and documentation clean-ups. 4/9/91
|
||||||
500
Linux-0.98/Yggdrasil-0.98.3/.bash_history
Normal file
500
Linux-0.98/Yggdrasil-0.98.3/.bash_history
Normal file
@@ -0,0 +1,500 @@
|
|||||||
|
fg
|
||||||
|
mv Xconfig.microsoft{,-mouse}
|
||||||
|
rm *~
|
||||||
|
diff Xconfig{,.microsoft-mouse}
|
||||||
|
cp ~adam/Xconfig Xconfig.ET4000-1024x768
|
||||||
|
more Xconfig.ET4000-1024x768
|
||||||
|
sync
|
||||||
|
mv Xconfig.ET4000-1024x768 Xconfig.ET4000-1024x768.72MHz
|
||||||
|
mv Xconfig.ET4000-1024x768.72MHz Xconfig.72MHz-ET4000-1024x768
|
||||||
|
ls
|
||||||
|
sync
|
||||||
|
vi Xconfig
|
||||||
|
chmod +w Xconfig
|
||||||
|
vi Xconfig
|
||||||
|
vi /INSTALL/install
|
||||||
|
echo /etc/*.install
|
||||||
|
vi /INSTALL/install
|
||||||
|
pwd
|
||||||
|
cat /etc/passwd
|
||||||
|
sync
|
||||||
|
vi /INSTALL/install
|
||||||
|
vi /INSTALL/install
|
||||||
|
sync
|
||||||
|
vi /INSTALL/install
|
||||||
|
rm /usr/spool/install/partitioned
|
||||||
|
vi /INSTALL/install
|
||||||
|
vi /INSTALL/install
|
||||||
|
mkefs
|
||||||
|
pwd
|
||||||
|
vi /INSTALL/install
|
||||||
|
vi /INSTALL/install
|
||||||
|
vi /INSTALL/install
|
||||||
|
man bash
|
||||||
|
jobs
|
||||||
|
fg
|
||||||
|
ojbs
|
||||||
|
jobs
|
||||||
|
vi /INSTALL/install
|
||||||
|
pwd
|
||||||
|
cat > /tmp/foo
|
||||||
|
chmod a+rx /tmp/foo
|
||||||
|
/tmp/foo
|
||||||
|
man bash
|
||||||
|
vi /tmp/foo
|
||||||
|
/tmp/foo
|
||||||
|
vi /tmp/foo
|
||||||
|
/tmp/foo
|
||||||
|
jobs
|
||||||
|
vi /INSTALL/install
|
||||||
|
vi /tmp/foo
|
||||||
|
/tmp/foo
|
||||||
|
cat /tmp/foo
|
||||||
|
man bash
|
||||||
|
jobs
|
||||||
|
vi /tmp/foo
|
||||||
|
/tmp/foo
|
||||||
|
vi /tmp/foo
|
||||||
|
/tmp/foo
|
||||||
|
vi /tmp/foo
|
||||||
|
ans='abc def'
|
||||||
|
set $ans
|
||||||
|
echo $1
|
||||||
|
echo $2
|
||||||
|
echo $@
|
||||||
|
echo $*
|
||||||
|
echo $@[1]
|
||||||
|
echo $@(2)
|
||||||
|
echo ${@:2}
|
||||||
|
echo $@[2]
|
||||||
|
echo $@
|
||||||
|
echo $*
|
||||||
|
man bash
|
||||||
|
echo $1
|
||||||
|
echo $2
|
||||||
|
shift
|
||||||
|
echo $1
|
||||||
|
echo $#
|
||||||
|
pwd
|
||||||
|
pwd
|
||||||
|
vi /INSTALL/install
|
||||||
|
vi /INSTALL/install
|
||||||
|
vi /INSTALL/install
|
||||||
|
pwd
|
||||||
|
pwd
|
||||||
|
vi /INSTALL/install
|
||||||
|
pwd
|
||||||
|
cd /usr/src/linux/
|
||||||
|
cd ../usr.bin/efsprogs/
|
||||||
|
ls
|
||||||
|
vi mkefs.c
|
||||||
|
mkefs &
|
||||||
|
pwd
|
||||||
|
fg
|
||||||
|
jobs
|
||||||
|
cd
|
||||||
|
vi /INSTALL/install
|
||||||
|
vi /INSTALL/install
|
||||||
|
cd /bin
|
||||||
|
mv ../sbin/* .
|
||||||
|
rmdir ../sbin
|
||||||
|
rm ../usr/sbin
|
||||||
|
pwd
|
||||||
|
rmdir ../usr/sbin
|
||||||
|
pwd
|
||||||
|
vi .profiel
|
||||||
|
vi .profile
|
||||||
|
cd
|
||||||
|
vi .bashrc
|
||||||
|
vi /INSTALL/install
|
||||||
|
vi /INSTALL/install
|
||||||
|
vi /INSTALL/install
|
||||||
|
vi /INSTALL/install
|
||||||
|
vi /INSTALL/install
|
||||||
|
mount -t ext /dev/hdb1 /mnt
|
||||||
|
umount /dev/hdb1
|
||||||
|
vi /INSTALL/install
|
||||||
|
vi /INSTALL/
|
||||||
|
vi /INSTALL/install
|
||||||
|
for new in ; do
|
||||||
|
echo bar
|
||||||
|
done
|
||||||
|
for new in x y ; do
|
||||||
|
echo bar
|
||||||
|
done
|
||||||
|
fg
|
||||||
|
goto crap
|
||||||
|
go to grap
|
||||||
|
label x
|
||||||
|
x:
|
||||||
|
echo $SHELL
|
||||||
|
vi /INSTALL/install
|
||||||
|
echo $?child
|
||||||
|
jobs
|
||||||
|
fg
|
||||||
|
vi /INSTALL/install
|
||||||
|
umount /dev/hdb1
|
||||||
|
vi /INSTALL/install
|
||||||
|
trap
|
||||||
|
man trap
|
||||||
|
man bash
|
||||||
|
pwd
|
||||||
|
vi /INSTALL/install
|
||||||
|
jobs
|
||||||
|
df
|
||||||
|
umount /dev/hdb1
|
||||||
|
umount /dev/hdb1
|
||||||
|
man mkdir
|
||||||
|
ls -gdl foo
|
||||||
|
mkdir -p foo/bar
|
||||||
|
ls -gdl foo
|
||||||
|
ls -gdl foo/bar
|
||||||
|
rm -rf foo
|
||||||
|
umask
|
||||||
|
pwd
|
||||||
|
vi /INSTALL/install
|
||||||
|
df
|
||||||
|
ls
|
||||||
|
echo
|
||||||
|
echo
|
||||||
|
pwd
|
||||||
|
pwd
|
||||||
|
pwd
|
||||||
|
df
|
||||||
|
mount -t ext /dev/hdb1 /mnt
|
||||||
|
cd /mnt
|
||||||
|
ls
|
||||||
|
mkdir -p /etc/lilo
|
||||||
|
cd /etc/lilo
|
||||||
|
mkdir -p /mnt/etc/lilo
|
||||||
|
pwd
|
||||||
|
tar cf - . ( cd /mnt/etc/lilo ; tar xf - ) &
|
||||||
|
tar cf - . | ( cd /mnt/etc/lilo ; tar xf - ) &
|
||||||
|
pwd
|
||||||
|
cd /mnt/etc/lilo/
|
||||||
|
ls
|
||||||
|
cd /
|
||||||
|
umount /dev/hdb1
|
||||||
|
vi /INSTALL/install
|
||||||
|
umount /dev/hdb1
|
||||||
|
umount /dev/hdb1
|
||||||
|
vi /INSTALL/install
|
||||||
|
df
|
||||||
|
pwd
|
||||||
|
cp -r . /usr/include
|
||||||
|
cd ..
|
||||||
|
pwd
|
||||||
|
make
|
||||||
|
cd boot
|
||||||
|
make clean
|
||||||
|
ls -gld *.S *.s
|
||||||
|
rm *.s
|
||||||
|
cd ..
|
||||||
|
make
|
||||||
|
make clean
|
||||||
|
vi Makefile
|
||||||
|
sync
|
||||||
|
d
|
||||||
|
df
|
||||||
|
make
|
||||||
|
vi Makefile
|
||||||
|
rm Image
|
||||||
|
make
|
||||||
|
ls -gdl system.tmp Image
|
||||||
|
suspend
|
||||||
|
ls /mnt
|
||||||
|
cd etc/lilo/
|
||||||
|
cat install
|
||||||
|
pwd
|
||||||
|
cd /mnt/etc
|
||||||
|
pwd
|
||||||
|
df
|
||||||
|
mount -t ext /dev/hdb1 /mnt
|
||||||
|
cd /mnt/etc/lilo/
|
||||||
|
cat install
|
||||||
|
ls -gdl /vmlinux
|
||||||
|
lilo -c -i /etc/lilo -b /dev/hdb1 /vmlinux
|
||||||
|
lilo -c -i /etc/lilo -b /dev/hdb1 /mnt/vmlinux
|
||||||
|
ls -gdl /mnt/vmlinux
|
||||||
|
cat /etc/lilo/install
|
||||||
|
jobs
|
||||||
|
vi /INSTALL/install
|
||||||
|
setroot
|
||||||
|
cd /usr/src
|
||||||
|
echo */*setro*
|
||||||
|
pwd
|
||||||
|
echo */*/*setro*
|
||||||
|
sync
|
||||||
|
pwd
|
||||||
|
pwd
|
||||||
|
cd /usr/src/linux
|
||||||
|
ls
|
||||||
|
make
|
||||||
|
which as86
|
||||||
|
ls -gdl /usr/bin/as86
|
||||||
|
df
|
||||||
|
umount /dev/hdb1
|
||||||
|
mount -t iso9660 /dev/cdrom /mnt
|
||||||
|
ls -gdl /mnt/usr/bin/as86
|
||||||
|
cmp /mnt/usr/bin/as86 /usr/bin/as86
|
||||||
|
umount /dev/cdrom
|
||||||
|
make
|
||||||
|
cd boot/
|
||||||
|
egrep NORMAL_VGA *.[ch]
|
||||||
|
ls
|
||||||
|
erep NORMAL_VGA *
|
||||||
|
egrep NORMAL_VGA *
|
||||||
|
more setup.S
|
||||||
|
pwd
|
||||||
|
more ../include/linux/config.h
|
||||||
|
!
|
||||||
|
vi /usr/include/linux/config.h
|
||||||
|
pwd
|
||||||
|
cd ..
|
||||||
|
pwd
|
||||||
|
cd include/
|
||||||
|
pwd
|
||||||
|
su
|
||||||
|
pwd
|
||||||
|
fg
|
||||||
|
jobs
|
||||||
|
emacs setroot.c &
|
||||||
|
man stat
|
||||||
|
make setroot
|
||||||
|
make
|
||||||
|
make setroot
|
||||||
|
make setroot
|
||||||
|
make setroot
|
||||||
|
mkdir /usr/src/bin/setroot
|
||||||
|
cp setroot.c /usr/src/bin/setroot
|
||||||
|
mv setroot /bin
|
||||||
|
egrep /vmlinux /INSTALL/install
|
||||||
|
cp /INSTALL/install ~adam
|
||||||
|
vi /INSTALL/install
|
||||||
|
egrep setroot /INSTALL/install
|
||||||
|
setroot
|
||||||
|
df
|
||||||
|
cd /mnt
|
||||||
|
ls -gdl vmlinux
|
||||||
|
setroot /dev/cdrom vmlinux
|
||||||
|
emacs /usr/src/bin/setroot/setroot.c
|
||||||
|
vi /INSTALL/install
|
||||||
|
cd /usr/src/bin
|
||||||
|
cd setroot/
|
||||||
|
ls
|
||||||
|
jobs
|
||||||
|
vi setroot.c
|
||||||
|
make setroot
|
||||||
|
cp setroot /bin/setroot
|
||||||
|
ls -gdl /bin/setroot
|
||||||
|
df
|
||||||
|
cd /mnt/
|
||||||
|
setroot /dev/cdrom vmlinux
|
||||||
|
ls -gdl /dev/cdrom
|
||||||
|
jobs
|
||||||
|
cd /usr/src/bin
|
||||||
|
cd setroot/
|
||||||
|
vi setroot.c
|
||||||
|
make setroot
|
||||||
|
./setroot /dev/cdrom /mnt/vmlinux
|
||||||
|
vi setroot.c
|
||||||
|
make setroot
|
||||||
|
./setroot /dev/cdrom /mnt/vmlinux
|
||||||
|
ls -gdl /dev/hda3
|
||||||
|
./setroot /dev/hda3 /mnt/vmlinux
|
||||||
|
jobs
|
||||||
|
vi setroot.c
|
||||||
|
make setroot
|
||||||
|
./setroot /dev/hda3 /mnt/vmlinux
|
||||||
|
ls -gdl /dev/hda3
|
||||||
|
jobs
|
||||||
|
vi setroot.c
|
||||||
|
make setroot
|
||||||
|
./setroot /dev/hda3 /mnt/vmlinux
|
||||||
|
ls -gdl /dev/hda3
|
||||||
|
vi setroot.c
|
||||||
|
make setroot
|
||||||
|
./setroot /dev/hda3 /mnt/vmlinux
|
||||||
|
jobs
|
||||||
|
vi setroot.c
|
||||||
|
make setroot
|
||||||
|
./setroot /dev/hda3 /mnt/vmlinux
|
||||||
|
vi setroot.c
|
||||||
|
make setroot
|
||||||
|
./setroot /dev/hda3 /mnt/vmlinux
|
||||||
|
./setroot /dev/cdrom /mnt/vmlinux
|
||||||
|
vi setroot.c
|
||||||
|
make setroot
|
||||||
|
cp setroot /bin/setroot
|
||||||
|
sync
|
||||||
|
rm setroot
|
||||||
|
pwd
|
||||||
|
cd /mnt/vmlinux
|
||||||
|
pwd
|
||||||
|
cd /mnt
|
||||||
|
rm vmlinux
|
||||||
|
cp /usr/src/linux/Image vmlinux
|
||||||
|
setroot /dev/cdrom vmlinux
|
||||||
|
setroot /dev/cdrom /hda2
|
||||||
|
setroot /dev/hda2 vmlinux
|
||||||
|
ls -gdl /dev/hda2
|
||||||
|
pwd
|
||||||
|
pushd /usr/src/bin/setroot/
|
||||||
|
vi setroot.c
|
||||||
|
make setroot
|
||||||
|
mv setroot /bin/
|
||||||
|
sycn
|
||||||
|
sync
|
||||||
|
pwd
|
||||||
|
vi /INSTALL/install
|
||||||
|
df
|
||||||
|
umount /dev/hdb1
|
||||||
|
pwd
|
||||||
|
cd
|
||||||
|
ls -gld /etc/passwd*
|
||||||
|
cd /
|
||||||
|
find / -name '*.o' -type f -print
|
||||||
|
cd /usr/src
|
||||||
|
find . -name '*.o' -type f -exec rm -f {} \;
|
||||||
|
df
|
||||||
|
vi /INSTALL/install
|
||||||
|
pwd
|
||||||
|
du -s /usr/src
|
||||||
|
df
|
||||||
|
sync
|
||||||
|
vi /INSTALL/install
|
||||||
|
cd /tmp
|
||||||
|
touch -f a b c
|
||||||
|
cat > exclude
|
||||||
|
tar cf - . | tar tf -
|
||||||
|
tar cfX - exclude . | tar tf -
|
||||||
|
cat /INSTALL/exclude
|
||||||
|
sync
|
||||||
|
df
|
||||||
|
umount /dev/hda3
|
||||||
|
umount /dev/hda3
|
||||||
|
df
|
||||||
|
vi /INSTALL/install
|
||||||
|
vi /INSTALL/install
|
||||||
|
vi /INSTALL/install
|
||||||
|
vi /INSTALL/install
|
||||||
|
df
|
||||||
|
sync
|
||||||
|
cat /etc/issue.install
|
||||||
|
wc -l /etc/issue
|
||||||
|
wc -l /etc/issue.install
|
||||||
|
vi /etc/issue.install
|
||||||
|
wc -l /etc/issue*
|
||||||
|
mv /etc/issue /etc/issue-
|
||||||
|
cp /etc/issue.install /etc/issue
|
||||||
|
rm /etc/issue~
|
||||||
|
vi /etc/issue.install
|
||||||
|
cp /etc/issue.install /etc/issue
|
||||||
|
vi /etc/issue.install
|
||||||
|
cp /etc/issue.install /etc/issue
|
||||||
|
ls -gdl /etc/issue*
|
||||||
|
mv /etc/issue- /etc/issue
|
||||||
|
sync
|
||||||
|
df
|
||||||
|
umount /dev/hdb3
|
||||||
|
umount /dev/hda3
|
||||||
|
mkdir -p /usr/spool/install
|
||||||
|
ls -gdl /usr/spool
|
||||||
|
ls -gld /usr/spool/install/
|
||||||
|
jobs
|
||||||
|
sync
|
||||||
|
df
|
||||||
|
cd /mnt
|
||||||
|
ls
|
||||||
|
cd usr/src
|
||||||
|
ls
|
||||||
|
cd ..
|
||||||
|
ls
|
||||||
|
pwd
|
||||||
|
cd src
|
||||||
|
ls
|
||||||
|
ls linux
|
||||||
|
ls
|
||||||
|
ls -gdl /bin/ps
|
||||||
|
ls -gdl /dev/*mem
|
||||||
|
ls
|
||||||
|
ls usr.bin
|
||||||
|
ls
|
||||||
|
ps aux | egrep tar
|
||||||
|
kill 87 88
|
||||||
|
cd /mnt
|
||||||
|
mount -t /dev/hdb1 /mnt
|
||||||
|
mount -t ext /dev/hdb1 /mnt
|
||||||
|
df
|
||||||
|
ls -gdl /mnt
|
||||||
|
cd /
|
||||||
|
mount -t ext /dev/hdb1 /mnt
|
||||||
|
cd /mnt
|
||||||
|
ls
|
||||||
|
cd etc
|
||||||
|
cat fstab
|
||||||
|
egrep fstab /INSTALL/install
|
||||||
|
vi /INSTALL/install
|
||||||
|
pwd
|
||||||
|
cd /etc
|
||||||
|
cp fstab fstab.install
|
||||||
|
vi fstab.install
|
||||||
|
cat /mnt/etc/rc
|
||||||
|
more /mnt/etc/rc
|
||||||
|
more /mnt/etc/rc.local
|
||||||
|
vi /INSTALL/install
|
||||||
|
jobs
|
||||||
|
df
|
||||||
|
cd /
|
||||||
|
umount /dev/hdb1
|
||||||
|
mount -t ext /dev/hdb1 /mnt
|
||||||
|
cd /mnt
|
||||||
|
ls
|
||||||
|
cd etc
|
||||||
|
cd lilo
|
||||||
|
more install
|
||||||
|
pwd
|
||||||
|
cd ~adam/lilo/lilo/doc
|
||||||
|
ls
|
||||||
|
emacs doc.tex &
|
||||||
|
egrep blocks /INSTALL/install
|
||||||
|
blocks
|
||||||
|
numblocks
|
||||||
|
countblocks
|
||||||
|
blocks /dev/hda1
|
||||||
|
df
|
||||||
|
emacs /INSTALL/install
|
||||||
|
cat install
|
||||||
|
pwd
|
||||||
|
cd /mnt
|
||||||
|
cd etc/lilo/
|
||||||
|
cat install
|
||||||
|
lilo -c -i /mnt/etc/lilo/boot.b -b /dev/hda /mnt/vmlinux
|
||||||
|
sync
|
||||||
|
reboot
|
||||||
|
vi /INSTALL/install
|
||||||
|
ps aux | egrep tar
|
||||||
|
stop 45
|
||||||
|
kill -STOP 45
|
||||||
|
df
|
||||||
|
mount /dev/hda3
|
||||||
|
umount /dev/hda3
|
||||||
|
kill 45 46
|
||||||
|
umount /dev/hda3
|
||||||
|
vi /INSTALL/install
|
||||||
|
df
|
||||||
|
sync
|
||||||
|
df
|
||||||
|
umount /dev/hda3
|
||||||
|
umount /dev/hda3
|
||||||
|
df
|
||||||
|
egrep lilo /INSTALL/install
|
||||||
|
pwd
|
||||||
|
vi /INSTALL/install
|
||||||
|
ls
|
||||||
|
df
|
||||||
|
umount /dev/hda3
|
||||||
|
sync
|
||||||
|
df
|
||||||
|
umount /dev/hda3
|
||||||
|
sync
|
||||||
27
Linux-0.98/Yggdrasil-0.98.3/.bash_profile
Normal file
27
Linux-0.98/Yggdrasil-0.98.3/.bash_profile
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
# stty dec crt
|
||||||
|
#fi
|
||||||
|
|
||||||
|
HOSTNAME=`hostname`
|
||||||
|
#PS1='$HOSTNAME[!]$PWD> '
|
||||||
|
PS2='rest?> '
|
||||||
|
export HOSTNAME PS1 PS2
|
||||||
|
|
||||||
|
CDPATH=:$HOME
|
||||||
|
ENV=$HOME/.bashrc
|
||||||
|
FCEDIT=/usr/bin/vi
|
||||||
|
#export HISTFILE=$HOME/.bash_history
|
||||||
|
#export HISTSIZE=25
|
||||||
|
#export HZ=100
|
||||||
|
MAIL=/usr/spool/mail/$USER
|
||||||
|
MBOX=$HOME/mail/mbox
|
||||||
|
PATH=$HOME/bin:/bin:/usr/bin:/etc:/usr/etc
|
||||||
|
VISUAL=/usr/bin/vi
|
||||||
|
#export TERMCAP=$HOME/etc/termcap
|
||||||
|
|
||||||
|
umask 022
|
||||||
|
trap clear 0
|
||||||
|
export CDPATH ENV FCEDIT
|
||||||
|
export MBOX SHELL VISUAL
|
||||||
|
export TERM MAIL PATH
|
||||||
|
|
||||||
|
if [ -f ~/.bashrc ]; then source ~/.bashrc; fi
|
||||||
11
Linux-0.98/Yggdrasil-0.98.3/.bashrc
Executable file
11
Linux-0.98/Yggdrasil-0.98.3/.bashrc
Executable file
@@ -0,0 +1,11 @@
|
|||||||
|
#bash environment setup
|
||||||
|
#LESS=-MM
|
||||||
|
#alias more=less
|
||||||
|
ignoreeof=0
|
||||||
|
export TERM PS1 ignoreeof
|
||||||
|
alias which='type -path'
|
||||||
|
alias ls='ls -AF'
|
||||||
|
|
||||||
|
PS1=`hostname`'# '
|
||||||
|
|
||||||
|
PATH=/bin:/usr/bin:/usr/local/bin:/usr/bin/X11:/usr/TeX/bin
|
||||||
58
Linux-0.98/Yggdrasil-0.98.3/.emacs
Normal file
58
Linux-0.98/Yggdrasil-0.98.3/.emacs
Normal file
@@ -0,0 +1,58 @@
|
|||||||
|
(setq text-mode-hook 'turn-on-auto-fill)
|
||||||
|
(setq make-backup-files nil)
|
||||||
|
(put 'eval-expression 'disabled nil)
|
||||||
|
(setq auto-mode-alist (mapcar 'purecopy
|
||||||
|
'(("\\.c$" . c-mode)
|
||||||
|
("\\.h$" . c-mode)
|
||||||
|
("\\.tex$" . TeX-mode)
|
||||||
|
("\\.txi$" . Texinfo-mode)
|
||||||
|
("\\.el$" . emacs-lisp-mode)
|
||||||
|
("\\.a$" . c-mode))))
|
||||||
|
|
||||||
|
(defvar cursor-map-2 (make-keymap)
|
||||||
|
"for ESC-[")
|
||||||
|
(fset 'Cursor-Map-2 cursor-map-2)
|
||||||
|
(define-key esc-map "[" 'Cursor-Map-2)
|
||||||
|
|
||||||
|
(define-key esc-map "[A" 'previous-line)
|
||||||
|
(define-key esc-map "[B" 'next-line)
|
||||||
|
(define-key esc-map "[C" 'forward-char)
|
||||||
|
(define-key esc-map "[D" 'backward-char)
|
||||||
|
(define-key esc-map "[H" 'beginning-of-line)
|
||||||
|
(define-key esc-map "[Y" 'end-of-line)
|
||||||
|
(define-key esc-map "[5^" 'scroll-down)
|
||||||
|
(define-key esc-map "[6^" 'scroll-up)
|
||||||
|
(define-key esc-map "[[A" 'help-for-help)
|
||||||
|
(define-key esc-map "[[B" 'byte-compile-file)
|
||||||
|
(define-key esc-map "[[C" 'isearch-forward)
|
||||||
|
(define-key esc-map "[[D" 'query-replace-regexp)
|
||||||
|
(define-key esc-map "[[E" 'eval-defun)
|
||||||
|
(define-key esc-map "[[F" 'eval-current-buffer)
|
||||||
|
(define-key esc-map "[[G" 'buffer-menu)
|
||||||
|
(define-key esc-map "[[H" 'global-set-key)
|
||||||
|
(define-key esc-map "[[I" 'save-buffer)
|
||||||
|
(define-key esc-map "[[J" 'save-buffers-kill-emacs)
|
||||||
|
(define-key esc-map "[2^" 'set-mark-command)
|
||||||
|
(define-key esc-map "[3^" 'delete-char)
|
||||||
|
|
||||||
|
(setq load-path (cons (expand-file-name "PATH_FOR_AUC-TEX") load-path))
|
||||||
|
(autoload 'tex-mode "auc-tex" "Automatic select TeX or LaTeX mode" t)
|
||||||
|
(autoload 'plain-tex-mode "auc-tex" "Mode for Plain TeX" t)
|
||||||
|
(autoload 'latex-mode "auc-tex" "Mode for LaTeX" t)
|
||||||
|
(autoload 'LaTeX-math-mode "tex-math" "Math mode for TeX." t)
|
||||||
|
(autoload 'outline-minor-mode "outline-m" "Minor Outline Mode." t)
|
||||||
|
|
||||||
|
(defun Ctl-C-prefix ()
|
||||||
|
Ctl-C-keymap)
|
||||||
|
(setq Ctl-C-keymap (make-keymap))
|
||||||
|
(global-set-key "\C-c" (Ctl-C-prefix))
|
||||||
|
|
||||||
|
(define-key Ctl-C-keymap "m" 'LaTeX-math-mode)
|
||||||
|
(define-key Ctl-C-keymap "o" 'outline-minor-mode)
|
||||||
|
|
||||||
|
(make-variable-buffer-local 'outline-prefix-char)
|
||||||
|
(setq-default outline-prefix-char "\C-l")
|
||||||
|
(make-variable-buffer-local 'outline-regexp)
|
||||||
|
(setq-default outline-regexp "[*\l]+")
|
||||||
|
(make-variable-buffer-local 'outline-level-function)
|
||||||
|
(setq-default outline-level-function 'outline-level-default)
|
||||||
5
Linux-0.98/Yggdrasil-0.98.3/.kermrc
Normal file
5
Linux-0.98/Yggdrasil-0.98.3/.kermrc
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
set line /dev/ttys2
|
||||||
|
set file type binary
|
||||||
|
set file name literal
|
||||||
|
set case off
|
||||||
|
conn
|
||||||
6
Linux-0.98/Yggdrasil-0.98.3/.profile
Normal file
6
Linux-0.98/Yggdrasil-0.98.3/.profile
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
TERM=con80x25
|
||||||
|
export TERM
|
||||||
|
|
||||||
|
if [ -f ~/.bashrc ]; then
|
||||||
|
source ~/.bashrc
|
||||||
|
fi
|
||||||
3
Linux-0.98/Yggdrasil-0.98.3/.xsession-errors
Normal file
3
Linux-0.98/Yggdrasil-0.98.3/.xsession-errors
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
XIO: fatal IO error 32 (Broken pipe) on X server ":0.0"
|
||||||
|
after 361 requests (359 known processed) with 0 events remaining.
|
||||||
|
The connection was probably broken by a server shutdown or KillClient.
|
||||||
16
Linux-0.98/Yggdrasil-0.98.3/INSTALL/docs/README
Normal file
16
Linux-0.98/Yggdrasil-0.98.3/INSTALL/docs/README
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
README - 0.97 Root Filesystem
|
||||||
|
Jim Winstead Jr. - 4 August 1992
|
||||||
|
|
||||||
|
This root disk is in many ways a bug fix to the 0.96 version - no
|
||||||
|
significant changes. Maybe I should charge $50 for it and call it a
|
||||||
|
major new release - it worked for Microsoft and Windows 3.1. :)
|
||||||
|
|
||||||
|
You should be careful to read all the documentation on the disk. To
|
||||||
|
do otherwise could result in an endless number of problems.
|
||||||
|
|
||||||
|
Unfortunately, this disk is not very well suited to updating an
|
||||||
|
existing Linux system. This will be addressed in future releases. If
|
||||||
|
you have suggestions on how this should be done, please send mail to
|
||||||
|
the address below.
|
||||||
|
|
||||||
|
jwinstea@jarthur.Claremont.EDU
|
||||||
150
Linux-0.98/Yggdrasil-0.98.3/INSTALL/docs/changes
Normal file
150
Linux-0.98/Yggdrasil-0.98.3/INSTALL/docs/changes
Normal file
@@ -0,0 +1,150 @@
|
|||||||
|
CHANGES IN THE LINUX v0.97 ROOT DISKETTE
|
||||||
|
Jim Winstead Jr. - 4 August 1992
|
||||||
|
|
||||||
|
This file mostly contains info about the changes in the root diskette
|
||||||
|
from Linux v0.96 to Linux v0.97.
|
||||||
|
|
||||||
|
BUGS
|
||||||
|
|
||||||
|
'mount' is broken in strange ways, particularly in passing
|
||||||
|
options '-o whatever'. I'm working on this.
|
||||||
|
|
||||||
|
CHANGES
|
||||||
|
|
||||||
|
With the release of Linux v0.95a, the maintenance of the root diskette
|
||||||
|
has been assumed by Jim Winstead Jr. (jwinstea@jarthur.Claremont.EDU).
|
||||||
|
|
||||||
|
This continues with the release of the Linux 0.97 release diskette.
|
||||||
|
The changes between the Linux 0.97 and Linux 0.96 root diskettes are
|
||||||
|
detailed below, and the changes in earlier releases are summarized
|
||||||
|
after that:
|
||||||
|
|
||||||
|
- many small binaries were added, including:
|
||||||
|
|
||||||
|
cmp cut date env find head id install logname nice
|
||||||
|
nohup pathchk printenv printf sed setserial sort sum
|
||||||
|
tac tee tr tty uname uniq wall wc who whoami write yes
|
||||||
|
|
||||||
|
(Some of these may have been on previous root disks -
|
||||||
|
I don't have the motivation to double check that. In any
|
||||||
|
case, they are definitely on 0.97. :)
|
||||||
|
|
||||||
|
- ps, w, uptime, and related utilities were removed.
|
||||||
|
Because these programs rely very closely upon the
|
||||||
|
kernel being used, they can be outdated quite quickly.
|
||||||
|
|
||||||
|
- migrated mount/umount/swapon from /bin to /etc.
|
||||||
|
This conforms to common usage (only root can use these
|
||||||
|
programs), and current standards.
|
||||||
|
|
||||||
|
- moved 'rootdev' to /usr/bin and renamed to 'setroot'.
|
||||||
|
This reflects more common usage of the utility - it is no
|
||||||
|
longer needed for inserting the root device in /etc/mtab, but
|
||||||
|
it is still useful to change the root device of a kernel image.
|
||||||
|
|
||||||
|
- removed /lib/libhard.2.2.2 and moved /lib/libsoft.2.2.2 to
|
||||||
|
/lib/libm.2.2.2, instead of using a symlink.
|
||||||
|
|
||||||
|
- upgraded efdisk and renamed to fdisk.
|
||||||
|
efdisk was upgraded to v0.93, from Owen LeBlanc's MCC 0.96c
|
||||||
|
interim release, with some small changes from me to support the
|
||||||
|
-l flag, allowing it to completely replace fdisk.
|
||||||
|
|
||||||
|
- fixed compress to work with long filenames.
|
||||||
|
Previous versions of compress would refuse to compress files
|
||||||
|
with names longer than 12 characters - this was hardcoded in
|
||||||
|
the source the FSF makes available.
|
||||||
|
|
||||||
|
- brought device names up to standards.
|
||||||
|
Fixed some device names according to decisions made on
|
||||||
|
the Linux Standards discussion list, particularly
|
||||||
|
renaming /dev/lp* to /dev/par*, 'hard' /dev/fd*
|
||||||
|
devices, /dev/bm (bus mouse), and fixing the numbering
|
||||||
|
of /dev/ttys*.
|
||||||
|
|
||||||
|
- revised /etc/group.
|
||||||
|
/etc/group now contains only the 'standard' group names
|
||||||
|
discussed in the Linux Standards list. Of special note is the
|
||||||
|
renaming of the 'bin' group to 'obsolete'.
|
||||||
|
|
||||||
|
Using the 'bin' group as a means of identifying executables is
|
||||||
|
not recommended. That is what the executable bits are designed
|
||||||
|
to do.
|
||||||
|
|
||||||
|
- revised /etc/passed.
|
||||||
|
/etc/passwd was changed as a result of the new /etc/group, and
|
||||||
|
to eliminate unnecessary usernames - many groups were removed
|
||||||
|
because using uid != 0 for important files is a security hole
|
||||||
|
on NFS-mountable drives
|
||||||
|
|
||||||
|
- changes file permissions and ownerships.
|
||||||
|
This was done to reflect changes in /etc/group and /etc/passwd.
|
||||||
|
|
||||||
|
- fixed up the install script where it was broken.
|
||||||
|
All known major bugs were fixed. Particularly where /usr was
|
||||||
|
concerned.
|
||||||
|
|
||||||
|
- fixed the install documentation to refer to pax.
|
||||||
|
|
||||||
|
- minor gaffes from 0.96 fixed (/etc/getty linked with
|
||||||
|
shared libs, correct file ownerships, etc)
|
||||||
|
|
||||||
|
If you have questions, problems, or complaints about the root
|
||||||
|
diskette, either post to comp.os.linux, or send mail to me at
|
||||||
|
jwinstea@jarthur.Claremont.EDU.
|
||||||
|
|
||||||
|
If you have questions, problems, or complaints about the boot diskette
|
||||||
|
or the kernel itself, post to comp.os.linux or send mail to Linus
|
||||||
|
Torvalds at torvalds@cc.helsinki.fi.
|
||||||
|
|
||||||
|
Remember, the only stupid questions are the ones you don't ask.
|
||||||
|
|
||||||
|
SUMMARY
|
||||||
|
|
||||||
|
This section very briefly summarizes previous changes.
|
||||||
|
|
||||||
|
0.95a -> 0.96
|
||||||
|
- reintroduced GNU bash as /bin/sh
|
||||||
|
- replaced GNU tar (/bin/tar) with POSIX pax utility
|
||||||
|
- all-new and improved installation script
|
||||||
|
- split /etc/rc into /etc/rc and /etc/rc.local
|
||||||
|
- new mount/umount/swapon with auto-mounting - uses /etc/fstab
|
||||||
|
- recompiled all utilities with shared libraries (gcc 2.2.2)
|
||||||
|
- added /dev/MAKEDEV - device creation script
|
||||||
|
- all new /etc/termcap using "tc=con-unk" entries
|
||||||
|
|
||||||
|
FUTURE CHANGES
|
||||||
|
|
||||||
|
I'm already anticipating some changes for future releases, so here's
|
||||||
|
a sneak preview:
|
||||||
|
|
||||||
|
- the install script will be improved. The current one was
|
||||||
|
written rather rapidly, so there are parts of it I'm not
|
||||||
|
entirely happy with.
|
||||||
|
|
||||||
|
- I'd like to write an update script that will allow people who
|
||||||
|
have already installed Linux to update their binaries from the
|
||||||
|
latest root disk. The install script could serve as a base
|
||||||
|
for this, but is a little destructive at present. (It would
|
||||||
|
simply copy over old binaries, etc.)
|
||||||
|
|
||||||
|
- program to allow the 'intro' login to be more interactive, and
|
||||||
|
will also serve more general purposes (it will be a generic
|
||||||
|
curses-based file-selector with support for file descriptions).
|
||||||
|
|
||||||
|
- the documentation on disk will be cleaned up, and possibly
|
||||||
|
added to.
|
||||||
|
|
||||||
|
- fill in the gaps in the MAKEDEV script. (SCSI tapes, more pty
|
||||||
|
devices.)
|
||||||
|
|
||||||
|
- the release after the extended filesystem is added to the
|
||||||
|
Linux kernel, the root disk will use it. That means v0.98, if
|
||||||
|
things go according to current plans. This is to allow time
|
||||||
|
for bugs in the extended filesystem to filter out, and for the
|
||||||
|
new mkfs and fsck to stabilize. (For those that don't know,
|
||||||
|
the extended filesystem supports 4 terabyte partitions and long
|
||||||
|
filenames, and is currently in testing.)
|
||||||
|
|
||||||
|
Again, mail your questions, comments and suggestions about the root
|
||||||
|
diskette to me at jwinstea@jarthur.Claremont.EDU.
|
||||||
479
Linux-0.98/Yggdrasil-0.98.3/INSTALL/docs/fdisk
Normal file
479
Linux-0.98/Yggdrasil-0.98.3/INSTALL/docs/fdisk
Normal file
@@ -0,0 +1,479 @@
|
|||||||
|
SUBJECT
|
||||||
|
This file documents fdisk 0.92 - the version on the root disk is
|
||||||
|
0.96, plus some other small modifications. The documentation
|
||||||
|
should be quite close, however.
|
||||||
|
|
||||||
|
fdisk 0.93 was written by A.V. LeBlanc (A.V.LeBlanc@mcc.ac.uk)
|
||||||
|
modifications for -l made by Jim Winstead Jr.
|
||||||
|
(jwinstea@jarthur.claremont.edu)
|
||||||
|
|
||||||
|
TABLE OF CONTENTS:
|
||||||
|
|
||||||
|
WARNINGS
|
||||||
|
Introduction
|
||||||
|
Disks and how they are described
|
||||||
|
Dividing up your disk
|
||||||
|
Running fdisk
|
||||||
|
Deleting and adding partitions
|
||||||
|
Active flags and system types
|
||||||
|
Extra commands for experts
|
||||||
|
Messages, errors, and warnings
|
||||||
|
|
||||||
|
|
||||||
|
WARNINGS:
|
||||||
|
|
||||||
|
In general, you should not use this 'fdisk' program to create
|
||||||
|
partitions for other operating systems, only for Linux.
|
||||||
|
|
||||||
|
Dr. DOS 5.0 and 6.0 has been reported to have problems cooperating
|
||||||
|
with Linux, and with this version of fdisk in particular. This fdisk
|
||||||
|
sets the system type to hexadecimal 81. Dr. DOS seems to confuse
|
||||||
|
this with hexadecimal 1, a DOS code. If you use Dr. DOS, use the
|
||||||
|
fdisk command 't' to change the system code of any Linux partitions
|
||||||
|
to some number less than hexadecimal 80; I suggest 41 and 42 for
|
||||||
|
the moment.
|
||||||
|
|
||||||
|
PARTITIONING a hard disk may DESTROY data which is on that disk
|
||||||
|
if you are not careful. Go slowly, write down a description of
|
||||||
|
what you started out with, and always verify before you write.
|
||||||
|
See the explanations below for more more information.
|
||||||
|
|
||||||
|
|
||||||
|
INTRODUCTION
|
||||||
|
|
||||||
|
In this document we look at the utility 'fdisk', and we try to cover
|
||||||
|
enough of its general background to help anyone use it. 'fdisk' is
|
||||||
|
Linux's partition table editor.
|
||||||
|
|
||||||
|
|
||||||
|
DISKS AND HOW THEY ARE DESCRIBED
|
||||||
|
|
||||||
|
A typical disk consists physically of one or more circular objects
|
||||||
|
called 'platters', which rotate about a central axis. Devices
|
||||||
|
called 'heads' move to specified places on the disk surface to
|
||||||
|
read or write information. There is typically one head on each side
|
||||||
|
of every platter, and all of these heads are attached to a comb-like
|
||||||
|
controller arm which moves all of them at the same time, either
|
||||||
|
closer to the centre of the disk, or closer to the outer edge.
|
||||||
|
|
||||||
|
Suppose the arm is in one position, putting an area of the disk
|
||||||
|
surface within reach of one or another of the heads. This total
|
||||||
|
area, everything that is accessible without moving the arm, is
|
||||||
|
called a 'cylinder'. A cylinder is a barrel-shaped cross section
|
||||||
|
of a disk, consisting of a circular strip from each side of each
|
||||||
|
platter. Each of these strips is the part of a cylinder that one
|
||||||
|
head can read or write without moving, and it is called a 'track'.
|
||||||
|
|
||||||
|
Each track is divided into a number of pie-shaped slices called
|
||||||
|
'sectors', which are the smallest parts of the disk which can
|
||||||
|
be read or written at a time. The sectors on one disk are usually
|
||||||
|
all the same size.
|
||||||
|
|
||||||
|
(If you want to be accurate, there are not always two heads to
|
||||||
|
every platter, there are some disks which do not have the same
|
||||||
|
amount of data in every cylinder, and there may be disks which
|
||||||
|
do not have the same amount of data in every sector. I hope you
|
||||||
|
are not dealing with such disks, for both our sakes.)
|
||||||
|
|
||||||
|
The numbers which describe the 'geometry' of a disk are
|
||||||
|
|
||||||
|
(a) the number of cylinders it contains,
|
||||||
|
(b) the number of tracks per cylinder, which is the number of heads,
|
||||||
|
(c) the number of sectors per track, and
|
||||||
|
(d) the size of each sector.
|
||||||
|
|
||||||
|
Some of these numbers will vary, but a typical PC disk might have
|
||||||
|
about 1000 cylinders, about half a dozen heads, and 15 or 20 sectors
|
||||||
|
per track, with each sector containing 512 bytes or characters;
|
||||||
|
such a disk contains 40 to 60 megabytes of data. A 'double density'
|
||||||
|
floppy disk contains 40 cylinders, with 2 heads (2 tracks per cylinder),
|
||||||
|
and with 9 sectors per track; such a disk contains 360 kilobytes, or
|
||||||
|
360 * 1024 characters. A 'high density' 3.5 inch floppy contains
|
||||||
|
80 cylinders, with 2 heads and 18 sectors per track, or 1.44 megabytes,
|
||||||
|
or 1440 * 1024 characters.
|
||||||
|
|
||||||
|
The exact size of a track or cylinder in bytes varies from one disk
|
||||||
|
to another. This fdisk for Linux, at least in its present form,
|
||||||
|
deals mainly with 'sectors', which are 512 bytes each. fdisk also
|
||||||
|
reports partition sizes in 'blocks' of 1024 bytes, or 2 sectors, since
|
||||||
|
you need the size in blocks in order to make a file system using mkfs.
|
||||||
|
A block is the smallest amount of space which can be set aside for
|
||||||
|
a file in the current file system.
|
||||||
|
|
||||||
|
An operating system, such as Linux or MS-DOS or OS/2, may use a disk
|
||||||
|
in any way that it wishes, but if two operating systems share the
|
||||||
|
same disk, they must agree on who owns what, or else one will
|
||||||
|
interfere with the other (that is, by damaging the other's files).
|
||||||
|
A 'partition' is a section of a hard disk which is handled as a unit
|
||||||
|
by all operating systems which can access the disk. The standard way
|
||||||
|
to define partitions (for the moment) is the 'partition table',
|
||||||
|
a list of information which is stored in parts of the disk that don't
|
||||||
|
belong to any of the systems using the disk. The beginning of the
|
||||||
|
partition table is stored in the disk's primary boot sector, and the
|
||||||
|
rest is stored in a chain of sectors scattered throughout the disk.
|
||||||
|
|
||||||
|
The first sector on the disk is called the 'primary boot block' or
|
||||||
|
'primary boot sector' because (1) it comes first, before other,
|
||||||
|
similar sectors; (2) it tells where the other, similar sectors are
|
||||||
|
found, so that it is logically 'prior' to them; and (3) it usually
|
||||||
|
contains code which is executed when the system boots up. This
|
||||||
|
sector contains a table describing at most four partitions. These
|
||||||
|
areas are called 'primary partitions'.
|
||||||
|
|
||||||
|
The partition table in the primary boot sector may also describe
|
||||||
|
at most one 'extended partition'. This is a large area of the disk,
|
||||||
|
usually containing all the space which is not in any primary partition.
|
||||||
|
Within this space we can set aside other areas which are called
|
||||||
|
'logical partitions', because they look almost exactly like
|
||||||
|
primary partitions. In fact, the main difference between them is
|
||||||
|
that we can boot from primary partitions, while we cannot boot from
|
||||||
|
logical partitions. This happens because the address of primary
|
||||||
|
partitions is in a fixed place, whereas the address of secondary
|
||||||
|
partitions is not, and so we require a more complicated process to
|
||||||
|
discover it, one which is too difficult for most primary boot programs.
|
||||||
|
|
||||||
|
|
||||||
|
DIVIDING UP YOUR DISK
|
||||||
|
|
||||||
|
It is a good idea to plan ahead before you start creating partitions
|
||||||
|
on your disk. If you set aside a partition for some purpose, it is
|
||||||
|
not easy to change its size: you've got to copy all the data off of
|
||||||
|
the partition, whether to floppies, to another partition, to another
|
||||||
|
hard disk, or somewhere else; then you must edit the table which
|
||||||
|
describes this partition, so changing its size; then you must reboot
|
||||||
|
and initialise the new partition, formatting it, for example,
|
||||||
|
under MS-DOS, or running 'mkfs' under Linux; finally you can copy
|
||||||
|
all of the data back. It is possible, if you have several partitions,
|
||||||
|
to copy data back and forth between them while you change their sizes,
|
||||||
|
but this is a bit risky and time consuming. It is better to plan well
|
||||||
|
what you will need, since it is hard to change it afterwards.
|
||||||
|
|
||||||
|
Many people with large disks and recent versions of MS-DOS have their
|
||||||
|
entire file system on one large partition. They always ask, 'Isn't
|
||||||
|
there any way I can reformat my disk without copying everything off?'
|
||||||
|
There is no way to do it using standard DOS utilities, and there is
|
||||||
|
no truly safe way to do it using commercial software, because if you
|
||||||
|
make a mistake, you will lose the entire contents of your disk.
|
||||||
|
So if you are going to back up your disk anyway, you might as well
|
||||||
|
copy the data back safely.
|
||||||
|
|
||||||
|
MS-DOS and Linux both allow you to access several partitions on a
|
||||||
|
single disk; on MS-DOS these are treated as if they were separate
|
||||||
|
disks or drives, and under Linux they are treated as different
|
||||||
|
'devices'. You can have up to 60 partitions on a single disk,
|
||||||
|
at least as far as Linux is concerned; in practice you will rarely
|
||||||
|
want so many. The maximum size of a Linux file system on a single
|
||||||
|
partition is presently 64 megabytes. You may, in other words,
|
||||||
|
have all of your Linux files in a single partition, or you may
|
||||||
|
have two, three, or more Linux file systems, and similarly with
|
||||||
|
MS-DOS. If you have several small partitions, you run much less
|
||||||
|
risk of losing all your files if your disk gets corrupted. On the
|
||||||
|
other hand, you may run out of space on a small partition more easily.
|
||||||
|
Under MS-DOS, you must refer to each partition by a separate drive
|
||||||
|
letter, but all partitions are automatically accessible. Under Linux
|
||||||
|
only the root partition is automatically accessible, but once we
|
||||||
|
'mount' another partition, it is indistinguishable from the rest of
|
||||||
|
the file system. Disks are usually mounted by a command in one of
|
||||||
|
the system startup files, /etc/rc, so that you need not worry about
|
||||||
|
having to do it yourself whenever you boot the system.
|
||||||
|
|
||||||
|
Linux requires at least one partition, which is the 'root' of the
|
||||||
|
file system. You may prefer to have a separate partition for /usr,
|
||||||
|
which contains most of the executable files, or for /home, which
|
||||||
|
contains most of your private files. You may also wish to set aside
|
||||||
|
a partition to use for swap space, depending on the amount of memory
|
||||||
|
your PC has. You will certainly need swap space if you have less
|
||||||
|
than 4 megabytes of RAM and wish to compile anything substantial.
|
||||||
|
You can reserve swap space in a file, but you need a partition big
|
||||||
|
enough to hold it, and this will probably be less efficient than
|
||||||
|
having a partition devoted to swap.
|
||||||
|
|
||||||
|
If you wish to play with Linux, without compiling C programs or using
|
||||||
|
any large packages (like Emacs, TeX, or the X window system), you need
|
||||||
|
4 to 5 megabytes of disk space, plus 2 megabytes of RAM. If you install
|
||||||
|
the C and C++ compilers, you will need 8 to 10 megabytes of disk space,
|
||||||
|
plus at least 4 megabytes of RAM: you can compile with 2 megabytes of
|
||||||
|
RAM plus some swap space, but performance will be poor. Also, remember
|
||||||
|
that /tmp, which many programs (compilers and editors) use for scratch
|
||||||
|
files: you'll need to have a couple of free megabytes on the partition
|
||||||
|
containing this directory. No matter how much space you have, it is
|
||||||
|
never enough.
|
||||||
|
|
||||||
|
Are you going to boot Linux up from the hard disk, or will you boot
|
||||||
|
from a floppy? If you boot Linux from a hard disk, then the root
|
||||||
|
of the file system must be one of the four primary partitions. If you
|
||||||
|
have an extended partition with logical partitions in it, you can have
|
||||||
|
only three primary partitions containing data.
|
||||||
|
|
||||||
|
|
||||||
|
RUNNING fdisk
|
||||||
|
|
||||||
|
Every operating system, whether MS-DOS, OS/2, or Linux, should provide
|
||||||
|
its own utility for editing hard disk partition tables. At least four
|
||||||
|
of these utilities have been called 'fdisk', for 'Fixed DISK setup
|
||||||
|
program', where 'fixed' means 'not removable'. I believe the first
|
||||||
|
program named fdisk came from Microsoft in about 1985; before that time
|
||||||
|
disks were too small to divide into separate sections.
|
||||||
|
|
||||||
|
Every operating system has its own peculiarities. Normally you should
|
||||||
|
set up a partition for the use of one operating system by using its
|
||||||
|
own fdisk program. Do not use the Linux fdisk to create partitions for
|
||||||
|
MS-DOS or for any system besides Linux. Otherwise you may have problems.
|
||||||
|
|
||||||
|
An fdisk program performs two functions: it reports how the disk is
|
||||||
|
configured, and it changes that configuration by adding or deleting
|
||||||
|
partitions. Most fdisks can also change other information in partition
|
||||||
|
tables.
|
||||||
|
|
||||||
|
This fdisk for Linux operates on one hard disk at a time. If you give
|
||||||
|
the command
|
||||||
|
|
||||||
|
fdisk
|
||||||
|
|
||||||
|
it reports on, and is able to change, /dev/hda, the first hard disk.
|
||||||
|
To look at or change the second hard disk, /dev/hdb, give the command
|
||||||
|
|
||||||
|
fdisk /dev/hdb
|
||||||
|
|
||||||
|
To look at or change the first SCSI disk, give the command
|
||||||
|
|
||||||
|
fdisk /dev/sda
|
||||||
|
|
||||||
|
efdisk responds by printing a list of partitions n the selected drive,
|
||||||
|
and asks for a command:
|
||||||
|
|
||||||
|
Command (m for help): _
|
||||||
|
|
||||||
|
Each fdisk command consists of a single letter, which must be followed
|
||||||
|
by <RETURN> before it is obeyed. Upper and lower case are not
|
||||||
|
distinguished. Anything you type after the first character is ignored.
|
||||||
|
Give the command 'm', and you should see this menu:
|
||||||
|
|
||||||
|
Command action
|
||||||
|
a toggle a bootable flag
|
||||||
|
d delete a partition
|
||||||
|
l list known partition types
|
||||||
|
m print this menu
|
||||||
|
n add a new partition
|
||||||
|
p print the partition table
|
||||||
|
q quit without saving changes
|
||||||
|
t change a partition's system id
|
||||||
|
v verify the partition table
|
||||||
|
w write table to disk and exit
|
||||||
|
x extra functionality
|
||||||
|
|
||||||
|
The simplest commands are Print, Verify, and Quit. On a small disk, the
|
||||||
|
Print command might produce a display like this one:
|
||||||
|
|
||||||
|
Disk /dev/hda: 5 heads, 17 sectors, 977 cylinders
|
||||||
|
Device Boot Begin Start End Blocks Id System
|
||||||
|
/dev/hda1 * 1 17 20059 10021+ 1 DOS 12-bit FAT
|
||||||
|
/dev/hda2 71060 71060 83044 5992+ 5 Extended
|
||||||
|
/dev/hda3 * 20060 20060 71059 25500 81 Linux/MINIX
|
||||||
|
/dev/hda5 71061 71061 79559 4249+ 82 Linux swap
|
||||||
|
/dev/hda6 80002 80018 83044 1734 1 DOS 12-bit FAT
|
||||||
|
|
||||||
|
There are 5 partitions reported; /dev/hda4 does not appear because it is
|
||||||
|
not allocated. Partitions 1 and 3 are flagged as bootable. Note that
|
||||||
|
the start of data in both DOS partitions is 16 sectors after the
|
||||||
|
beginning of the partition: this is one reason why you should use DOS's
|
||||||
|
own fdisk to create DOS partitions. The size of each partition is reported
|
||||||
|
in 1 kilobyte blocks; hence the primary Linux partition, partition 3, is
|
||||||
|
25 1/2 megabytes in size. The '+' after three of the sizes warns that
|
||||||
|
these partitions contain an odd number of sectors: Linux normally allocates
|
||||||
|
filespace in 1 kilobyte blocks, so the extra sector in partition 5 is
|
||||||
|
wasted. Id numbers are reported in hexadecimal and explained in English.
|
||||||
|
|
||||||
|
The Verify command is useful because
|
||||||
|
|
||||||
|
(1) It warns you if anything is wrong. ALWAYS give a Verify command
|
||||||
|
before writing any changes to disk. See the section on Messages,
|
||||||
|
Errors, and Warnings.
|
||||||
|
|
||||||
|
(2) It reports how many unallocated sectors there are on the disk.
|
||||||
|
|
||||||
|
The Quit command is also useful. fdisk does not actually change any
|
||||||
|
data on your disk unless you give a Write command. If you are unhappy
|
||||||
|
about any changes you may have made, give the Quit command, and your
|
||||||
|
disk will remain as it was before you ran fdisk. You can also interrupt
|
||||||
|
fdisk with CTRL-C.
|
||||||
|
|
||||||
|
|
||||||
|
DELETING AND ADDING PARTITIONS
|
||||||
|
|
||||||
|
Deleting a partition is simple. Give the Delete command. fdisk asks:
|
||||||
|
|
||||||
|
Partition number (1-6): _
|
||||||
|
|
||||||
|
Once you get this far, you must either delete a partition or interrupt
|
||||||
|
the program with CTRL-C (or whatever your current interrupt character is).
|
||||||
|
Note:
|
||||||
|
|
||||||
|
(1) You may delete a nonexistent partition. You will get a warning
|
||||||
|
message.
|
||||||
|
(2) You may delete an extended partition. This has the side effect
|
||||||
|
of deleting all partitions greater than or equal to 5.
|
||||||
|
(3) You may delete a logical partition. In that case, all partitions
|
||||||
|
above it are renumbered at once. For example, if you delete
|
||||||
|
partition 5, then partition 6 becomes known as partition 5, and
|
||||||
|
partition 7 as partition 6.
|
||||||
|
|
||||||
|
Adding a partition is just a bit more complicated. Give the New command.
|
||||||
|
fdisk allows you to
|
||||||
|
|
||||||
|
(1) create a primary partition, if there is a free slot in the
|
||||||
|
primary partition table;
|
||||||
|
(2) create an extended partition if there is a free slot in the
|
||||||
|
primary partition table, and if there is no extended partition;
|
||||||
|
(3) create a logical partition if an extended partition exists.
|
||||||
|
|
||||||
|
If more than one of these actions is possible, you will be asked to
|
||||||
|
select Primary, Extended, or Logical, depending on what is currently
|
||||||
|
permissible. Before you create a primary or an extended partition,
|
||||||
|
you are asked what slot it is to have in the table (1-4).
|
||||||
|
|
||||||
|
You may not add a primary or an extended partition if the selected slot
|
||||||
|
in the primary partition table is already occupied: in that case you
|
||||||
|
simply return to the main menu. You are not allowed to add a new
|
||||||
|
primary partition unless there are sectors available outside of the
|
||||||
|
extended partition. You are not allowed to add a new logical partition
|
||||||
|
unless there are sectors available inside the extended partition.
|
||||||
|
|
||||||
|
If space is available, you are prompted for the first sector:
|
||||||
|
|
||||||
|
First sector (20060-71059): _
|
||||||
|
|
||||||
|
The limits are the lowest and the highest free sectors available in
|
||||||
|
the appropriate part of the disk. Not all numbers in this range are
|
||||||
|
necessarily available: they may fall inside an existing partition.
|
||||||
|
If you select a sector which is already in use, you are told off
|
||||||
|
and prompted again for the first sector. After selecting the
|
||||||
|
first sector, you are prompted again:
|
||||||
|
|
||||||
|
Last sector (20060-71059): _
|
||||||
|
|
||||||
|
The limits are the sector you have chosen as the first sector, and the
|
||||||
|
highest available sector which is legitimate as the other boundary of
|
||||||
|
the partition. In other words, all numbers in the given range are
|
||||||
|
legitimate, unlike those in the first sector range.
|
||||||
|
|
||||||
|
Adding or deleting partitions has no effect unless you subsequently
|
||||||
|
give the Write command. Please remember to give the Verify command
|
||||||
|
first, just before giving the Write command: this is a safety
|
||||||
|
precaution. After giving the Write command, you will see this
|
||||||
|
message:
|
||||||
|
|
||||||
|
The partition table has been altered.
|
||||||
|
Please reboot before doing anything else.
|
||||||
|
|
||||||
|
Here are some important things to note:
|
||||||
|
|
||||||
|
(1) Before you reboot, you MAY run fdisk again, either to manage another
|
||||||
|
disk, or to make additional changes to the same disk, or just to
|
||||||
|
check that the changes have been made as you expected.
|
||||||
|
|
||||||
|
(2) NEVER run any of the programs mkfs, mkswap, mount, or swapon before
|
||||||
|
you reboot. It is dangerous to run any programs, but these in
|
||||||
|
particular may cause serious damage to any data on your disk,
|
||||||
|
including the partition tables themselves.
|
||||||
|
|
||||||
|
|
||||||
|
ACTIVE FLAGS AND SYSTEM TYPES
|
||||||
|
|
||||||
|
The active flag is a bit in the partition table entry which marks a
|
||||||
|
partition as bootable. This is important to some primary boot
|
||||||
|
sector programs, which will not boot from an unflagged partition.
|
||||||
|
Other such programs do not allow more than one partition to be flagged.
|
||||||
|
Some, like shoelace, ignore the flags completely. I prefer to flag
|
||||||
|
all bootable partitions as active so that they stand out on the
|
||||||
|
menu shoelace displays. fdisk prints a star after the name of a
|
||||||
|
partition's device file if its active flag is set.
|
||||||
|
|
||||||
|
The Active command changes, or toggles, a partitions active flag.
|
||||||
|
Give the Active command, and select a partition by number. If it
|
||||||
|
was marked inactive, it will be flagged as active; if it was
|
||||||
|
flagged as active, it will be marked inactive. You may not set
|
||||||
|
the active flag on an extended partition, but you may set it on
|
||||||
|
a logical partition, though the meaning of such a flag is
|
||||||
|
by no means clear.
|
||||||
|
|
||||||
|
The Type command changes the ID number which describes what type
|
||||||
|
a partition is. fdisk currently recognises 24 system ID's, in the
|
||||||
|
sense that it prints a string for each of them, but it allows you
|
||||||
|
to change any system ID to any other, with the following exceptions:
|
||||||
|
you may not change any partition to or from the type Extended, and
|
||||||
|
you may not change a partition whose type is Empty (0) to any other
|
||||||
|
type. You may, however, change the type of any data partition to
|
||||||
|
0, which is equivalent to deleting it.
|
||||||
|
|
||||||
|
The new system ID or type code is a hexadecimal number. There are
|
||||||
|
two ways of listing the numbers which fdisk recognises: use the
|
||||||
|
List command, which prints the list, or use the Type command, which,
|
||||||
|
when it prompts you for the code, says
|
||||||
|
|
||||||
|
Hex code (type L to list codes): _
|
||||||
|
|
||||||
|
where the upper case 'L' is used for clarity. The codes printed are
|
||||||
|
|
||||||
|
1 DOS 12-bit FAT 7 OS/2 HPFS 51 Novell? 81 Linux/MINIX
|
||||||
|
2 XENIX 8 AIX 52 CP/M? 82 Linux swap
|
||||||
|
3 Old XENIX 9 AIX bootable 63 386/IX 93 Amoeba
|
||||||
|
4 DOS 16-bit <32mb a OPUS? 64 Novell 94 Amoeba BBT
|
||||||
|
5 Extended 10 OPUS? 75 PCIX db CP/M
|
||||||
|
6 DOS 16-b >=32mb 40 Venix 80 Old MINIX ff BBT
|
||||||
|
|
||||||
|
Some of these numbers are a trifle uncertain. By default (for the
|
||||||
|
moment) fdisk uses a type of 81, the type used by the present
|
||||||
|
MINIX fdisk. When our new file system is introduced, I shall
|
||||||
|
change the default to a new value. The number 81 in any case gives
|
||||||
|
problems to Dr. DOS 5.0 and 6.0; if you use this software, change the
|
||||||
|
81 to any other value (except 0, 5, 80, or 85).
|
||||||
|
|
||||||
|
The value of 82 for Linux swap partitions is my own invention, and
|
||||||
|
is intended to give some recognisable distinctiveness to the
|
||||||
|
partitions when the values are displayed in hexadecimal, as they
|
||||||
|
are by shoelace.
|
||||||
|
|
||||||
|
New active flags and new system type codes are not written to the
|
||||||
|
disk until you exit from fdisk with the Write command, as described
|
||||||
|
above, in the section on deleting and adding partitions.
|
||||||
|
|
||||||
|
|
||||||
|
EXTRA COMMANDS FOR EXPERTS
|
||||||
|
|
||||||
|
The eXtra command 'x' puts fdisk into 'expert' mode, in which a
|
||||||
|
slightly different set of commands is available. The Active, Delete,
|
||||||
|
List, New, Type, Verify, and 'eXpert' commands are not available in
|
||||||
|
expert mode. The commands Write and Quit are available as in
|
||||||
|
ordinary mode, the Print command is available, but produces output
|
||||||
|
in a slightly different format, and of course the Menu command prints
|
||||||
|
the expert menu. There are several new commands.
|
||||||
|
|
||||||
|
(1) The Return command brings you back to the main menu.
|
||||||
|
|
||||||
|
(2) The Extended command prints the list of table entries which
|
||||||
|
point to other tables. Ordinary users do not need this
|
||||||
|
information. The data is shown as it is stored. The same
|
||||||
|
format is used for the expert Print command.
|
||||||
|
|
||||||
|
(3) The dangerous Begin command allows you to move the start of
|
||||||
|
data in a partition away from its beginning. I believe
|
||||||
|
shoelace has difficulties with partitions changed in this
|
||||||
|
way. But other systems create partitions with this format,
|
||||||
|
and it is sometimes useful to be able to reproduce it.
|
||||||
|
|
||||||
|
(4) The slightly dangerous Cylinders command allows you to change
|
||||||
|
the available number of cylinders. This will allow you to end
|
||||||
|
a partition at the end of a cylinder, if you wish.
|
||||||
|
|
||||||
|
(5) The extremely dangerous Heads and Sectors commands allow you
|
||||||
|
to change the number of heads and sectors. It should not be
|
||||||
|
necessary to use these commands, but I understand that there
|
||||||
|
are disks whose geometry generic Linux is unable to determine,
|
||||||
|
so I have provided the ability to cope with such cases.
|
||||||
|
WARNING: If you set either of these numbers to a false value,
|
||||||
|
you may lose all data on your disk.
|
||||||
|
|
||||||
|
Always, after giving any of the commands Begin, Cylinder, Heads, or
|
||||||
|
Sectors, you should Return to the main menu and give the Verify
|
||||||
|
command.
|
||||||
124
Linux-0.98/Yggdrasil-0.98.3/INSTALL/docs/install
Normal file
124
Linux-0.98/Yggdrasil-0.98.3/INSTALL/docs/install
Normal file
@@ -0,0 +1,124 @@
|
|||||||
|
INSTALL NOTES FOR LINUX v0.97
|
||||||
|
Jim Winstead Jr. - 4 August 1992
|
||||||
|
|
||||||
|
This file contains basic instructions for installing Linux v0.97.
|
||||||
|
More detailed instructions have been written by others. Read the
|
||||||
|
Linux FAQ for some suggestions, and for pointers to other installation
|
||||||
|
documents.
|
||||||
|
|
||||||
|
COPYRIGHT
|
||||||
|
|
||||||
|
Linux 0.97 is NOT public domain software, but is copyrighted by Linus
|
||||||
|
Torvalds (torvalds@cc.helsinki.fi). The copyright terms follow the
|
||||||
|
GNU Copyleft. See the file COPYING from any GNU software package for
|
||||||
|
the finer points. Note that the unistd library functions and all
|
||||||
|
library functions written by Linus Torvalds are exempt from this
|
||||||
|
copyright, and you may use them as you wish.
|
||||||
|
|
||||||
|
WARNING
|
||||||
|
|
||||||
|
The 0.97 root disk requires the 0.96b or later kernel, although
|
||||||
|
the 0.97 kernel is strongly recommended. A bootable image of this
|
||||||
|
kernel should be available where you got the image for the 0.97
|
||||||
|
root disk.
|
||||||
|
|
||||||
|
INSTALLATION
|
||||||
|
|
||||||
|
1) First, and absolutely the most important step, MAKE BACKUPS OF YOUR
|
||||||
|
SYSTEM! This system won't do anything nearly as nasty as coredump all
|
||||||
|
over your harddrive (see 386BSD v0.0), but it is quite easy to
|
||||||
|
accidently screw something up while installing.
|
||||||
|
|
||||||
|
2) Test out the Linux v0.97 boot disk with the Linux v0.97 root
|
||||||
|
disk. If you are unable to get the boot disk to work properly on
|
||||||
|
your system, try posting to comp.os.linux, or contacting Linus.
|
||||||
|
|
||||||
|
Notice that Linux (as of v0.95) contains an init/getty/login suite,
|
||||||
|
and this will start up 'login' on the first four virtual consoles,
|
||||||
|
accessed by Left-Alt-F[1234]. If you experience problems on one
|
||||||
|
virtual console, it should be possible to switch to another one.
|
||||||
|
|
||||||
|
3) login as 'install', and the system will walk you through the
|
||||||
|
process of installing Linux on a hard drive partition. The
|
||||||
|
process is fairly automated, but the process requires that you go
|
||||||
|
through the steps of creating a partition for Linux usage. Some
|
||||||
|
tips follow:
|
||||||
|
|
||||||
|
Read the efdisk file from the intro login, which will explain
|
||||||
|
the basic concepts of hard disk partitions, and how to use
|
||||||
|
efdisk.
|
||||||
|
|
||||||
|
You may find it useful to login to one virtual console as
|
||||||
|
intro, so you can access the on-disk documentation, and
|
||||||
|
another as install, so you can do the installation and easy
|
||||||
|
access the documentation.
|
||||||
|
|
||||||
|
The maximum size of a Minix filesystem (the type created by
|
||||||
|
mkfs) is 64 megabytes. This is not a limitation of mkfs or
|
||||||
|
Linux, but a limitation of the Minix filesystem that is used.
|
||||||
|
|
||||||
|
With the release of Linux v0.97, a new 'extended' filesystem
|
||||||
|
has been released that supports 4 terabyte (!) partitions,
|
||||||
|
and extended filenames. The root disk does not contain
|
||||||
|
utilities to use this extended filesystem, however, because
|
||||||
|
the filesystem is still consider alpha code.
|
||||||
|
|
||||||
|
4) You should now have a complete (but very basic) root filesystem on
|
||||||
|
your harddrive. To be able to boot from floppy with this as your
|
||||||
|
root filesystem, you will have to edit the boot diskette. This is
|
||||||
|
done by modifying the word at offset 508 (decimal) with a program
|
||||||
|
such as Norton's Disk Editor, or use pboot.exe (available where
|
||||||
|
you got this file, the boot disk and the root disk, hopefully.)
|
||||||
|
|
||||||
|
This word is in 386-order (that is, least-significant byte first),
|
||||||
|
which means it should look like one of the following:
|
||||||
|
|
||||||
|
LSB MSB - device
|
||||||
|
--------------------------
|
||||||
|
01 03 - /dev/hda1 LSB = Least-Significant Byte
|
||||||
|
02 03 - /dev/hda2 MSB = Most-Significant Byte
|
||||||
|
03 03 - /dev/hda3
|
||||||
|
04 03 - /dev/hda4
|
||||||
|
|
||||||
|
41 03 - /dev/hdb1
|
||||||
|
42 03 - /dev/hdb2
|
||||||
|
43 03 - /dev/hdb3
|
||||||
|
44 03 - /dev/hdb4
|
||||||
|
|
||||||
|
The numbers are in hex, and if you're editing the boot diskette by
|
||||||
|
hand, these two bytes should initially be 00 00 (and are followed
|
||||||
|
by two non-zero bytes).
|
||||||
|
|
||||||
|
Note that pboot.exe predates Linux 0.95a, so some of the
|
||||||
|
information it presents is inaccurate (it refers to the old hd*
|
||||||
|
naming scheme). The codes to use are as above, but with the most-
|
||||||
|
significant byte first. (So /dev/hda1 = 0301, /dev/hda2 = 0302,
|
||||||
|
etc.)
|
||||||
|
|
||||||
|
5) You should now be able to boot from this diskette and it will use
|
||||||
|
your new Linux partition as the root partition. You'll notice,
|
||||||
|
however, that you can't do a whole lot with just the programs on
|
||||||
|
the root diskette. You'll need to get further packages from
|
||||||
|
whereever you got the root and boot diskettes, and read these from
|
||||||
|
a floppy using pax and compress.
|
||||||
|
|
||||||
|
(Simple instructions: Download the file to DOS, use rawrite to write
|
||||||
|
the tar file to diskette. Use 'dd if=/dev/fd[01] | uncompress | pax
|
||||||
|
-rv' to read the file from floppy, where /dev/fd0 is your first
|
||||||
|
floppy drive (A: under DOS), and /dev/fd1 is your second floppy drive
|
||||||
|
(B: under DOS).
|
||||||
|
|
||||||
|
6) To reboot your machine when running Linux, you should use the
|
||||||
|
'reboot' command. This makes sure to flush all caches to disk,
|
||||||
|
and notifies other users that the system is going down (well, the
|
||||||
|
last bit isn't real important).
|
||||||
|
|
||||||
|
FAILURE TO DO THIS COULD RESULT IN BADLY CORRUPTED FILESYSTEMS.
|
||||||
|
|
||||||
|
----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
These instructions are not the best, but should be enough to get you
|
||||||
|
going. If you have more questions, either post on comp.os.linux, or
|
||||||
|
send mail to me (jwinstea@jarthur.Claremont.EDU), or to Linus
|
||||||
|
(torvalds@cc.helsinki.fi). Remember, the only stupid questions are
|
||||||
|
the ones that you don't ask.
|
||||||
2
Linux-0.98/Yggdrasil-0.98.3/INSTALL/exclude
Normal file
2
Linux-0.98/Yggdrasil-0.98.3/INSTALL/exclude
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
usr/src
|
||||||
|
mnt
|
||||||
479
Linux-0.98/Yggdrasil-0.98.3/INSTALL/install
Executable file
479
Linux-0.98/Yggdrasil-0.98.3/INSTALL/install
Executable file
@@ -0,0 +1,479 @@
|
|||||||
|
#! /bin/sh -
|
||||||
|
# Install v0.97 - getting better!
|
||||||
|
|
||||||
|
install=`basename $0`
|
||||||
|
partitioned=/usr/spool/install/partitioned
|
||||||
|
default_root=/dev/hda1
|
||||||
|
set_default_root=
|
||||||
|
function prtc {
|
||||||
|
echo
|
||||||
|
echo -n [ press return to continue ]
|
||||||
|
read
|
||||||
|
}
|
||||||
|
clear
|
||||||
|
echo "Welcome to the Linux v0.97 installation script."
|
||||||
|
|
||||||
|
# skip this junk if the hard drive has been partitioned
|
||||||
|
if [ ! -e $partitioned ]; then
|
||||||
|
cat <<!!
|
||||||
|
|
||||||
|
This script will guide you through installing Linux on your hard
|
||||||
|
disk. Doing so will require allocating a partition on your hard
|
||||||
|
disk, making a filesystem on that partition, and installing the
|
||||||
|
binaries from this disk on to that partition. You will also have the
|
||||||
|
option of making a swap partition, and a /var partition.
|
||||||
|
|
||||||
|
When you are prompted for a response to a question, the default will
|
||||||
|
appear within square brackets.
|
||||||
|
|
||||||
|
!!
|
||||||
|
|
||||||
|
echo -n "Do you wish to continue (y/n)? [y]: "
|
||||||
|
read ans
|
||||||
|
if [ .$ans = .n -o .$ans = .N ]; then
|
||||||
|
echo
|
||||||
|
echo Okay, goodbye.
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
cat <<!!
|
||||||
|
|
||||||
|
|
||||||
|
The first step in installing Linux involves creating partitions on your
|
||||||
|
hard drive(s). To do this, you need to edit your hard disk(s)
|
||||||
|
partition table using 'fdisk'.
|
||||||
|
|
||||||
|
!!
|
||||||
|
prtc
|
||||||
|
clear
|
||||||
|
cat <<!!
|
||||||
|
If you are not installing /usr/src, you will need at least 70 megabytes
|
||||||
|
for your root partition. If you are installing /usr/src, you will need
|
||||||
|
at least 176 megabytes. If you are not creating a separate /var partition,
|
||||||
|
then you should add approximately another 5 megabytes to these minimum
|
||||||
|
requirements so that you'll have space for /tmp.
|
||||||
|
|
||||||
|
If you want to be able to boot Linux from your hard disk, don't forget
|
||||||
|
to mark the root partition as active with the "a" command in fdisk.
|
||||||
|
Also note that you can ignore the warnings claiming that the partition
|
||||||
|
is too big for Linux to use (which is false, because we're using the
|
||||||
|
extended file system) or that you have an odd number of sectors (which
|
||||||
|
only means that you're wasting 512 bytes of your multimegabyte disk).
|
||||||
|
|
||||||
|
You must specify the hard drive to partition. For standard hard disk,
|
||||||
|
drive 1 is specified by /dev/hda, and drive 2 by /dev/hdb. SCSI disk
|
||||||
|
drives drives follow a similar nameing scheme: /dev/sda, /dev/sdb, and
|
||||||
|
so on. When you are done partitioning your hard disk, type 'done' at
|
||||||
|
the prompt. To skip the partitioning step (e.g., you are installing
|
||||||
|
over an old Linux installation, or have already done this step), type
|
||||||
|
'skip'. To abort this procedure completely, type 'abort' at the prompt.
|
||||||
|
|
||||||
|
!!
|
||||||
|
|
||||||
|
loop=true
|
||||||
|
while [ $loop = true ]; do
|
||||||
|
echo -n "Drive to partition (/dev/hda|/dev/hdb|done|skip|abort): "
|
||||||
|
read ans
|
||||||
|
if [ .$ans = .done -o .$ans = .skip ]; then
|
||||||
|
loop=false
|
||||||
|
elif [ .$ans = .abort ]; then
|
||||||
|
echo "Process aborted."
|
||||||
|
exit 1
|
||||||
|
elif [ $ans ]; then
|
||||||
|
fdisk $ans
|
||||||
|
else
|
||||||
|
echo Sorry, there is no default.
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
if [ .$ans = .done ]; then
|
||||||
|
clear
|
||||||
|
cat <<!!
|
||||||
|
|
||||||
|
You must now reboot your computer so Linux can reread the partition
|
||||||
|
tables.
|
||||||
|
|
||||||
|
To continue the installation, login as 'install' again, and select
|
||||||
|
'skip' when you are again prompted to partition the disk.
|
||||||
|
|
||||||
|
!!
|
||||||
|
prtc
|
||||||
|
touch $partitioned
|
||||||
|
sync
|
||||||
|
reboot
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ .$ans = .skip ]; then
|
||||||
|
touch $partitioned
|
||||||
|
fi
|
||||||
|
|
||||||
|
fi #endif bit about partitioning
|
||||||
|
|
||||||
|
clear
|
||||||
|
cat <<!!
|
||||||
|
|
||||||
|
We now return to the installation process after having partitioned
|
||||||
|
the disk.
|
||||||
|
|
||||||
|
The next step in installing Linux is to make filesystems on the
|
||||||
|
partition(s) you created.
|
||||||
|
|
||||||
|
Linux knows about the following partitions:
|
||||||
|
|
||||||
|
!!
|
||||||
|
showdisk -q /dev/hd
|
||||||
|
showdisk -q /dev/sd
|
||||||
|
echo
|
||||||
|
prtc
|
||||||
|
cat <<!!
|
||||||
|
|
||||||
|
The following prompt accepts four commands:
|
||||||
|
|
||||||
|
mkefs -c /dev/hd* - make a filesystem of
|
||||||
|
or specified size on the
|
||||||
|
mkefs -c /dev/sd* specified partition.
|
||||||
|
|
||||||
|
list /dev/hd
|
||||||
|
or - list the partitions again.
|
||||||
|
list /dev/sd
|
||||||
|
|
||||||
|
done - done with this step
|
||||||
|
|
||||||
|
abort - abort out of this script
|
||||||
|
!!
|
||||||
|
|
||||||
|
loop=true
|
||||||
|
while [ $loop = true ]; do
|
||||||
|
|
||||||
|
echo
|
||||||
|
echo -n "Action (mkefs|list|done|abort): "
|
||||||
|
read ans
|
||||||
|
set $ans
|
||||||
|
if [ $1 ]; then
|
||||||
|
if [ .$1 = .list ]; then
|
||||||
|
echo
|
||||||
|
showdisk $2
|
||||||
|
elif [ .$1 = .done ]; then
|
||||||
|
loop=false
|
||||||
|
elif [ .$1 = .abort ]; then
|
||||||
|
echo
|
||||||
|
echo Process aborted.
|
||||||
|
exit 1
|
||||||
|
elif [ .$1 = .mkefs ]; then
|
||||||
|
echo
|
||||||
|
if ( $* ) && [ ! $set_default_root ] ; then
|
||||||
|
until [ $# = 1 ] ; do
|
||||||
|
shift
|
||||||
|
done
|
||||||
|
default_root=$1
|
||||||
|
set_default_root=1
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
echo "unsupported action."
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
echo
|
||||||
|
echo "Sorry, there is no default action."
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
cat <<!!
|
||||||
|
|
||||||
|
Now we're ready to mount the new partition(s), and actually
|
||||||
|
start copying Linux to your system.
|
||||||
|
|
||||||
|
However, since I'm not very smart, I don't have the slightest idea
|
||||||
|
what partitions I'm supposed to use, so you'll have to tell me.
|
||||||
|
Please answer the following questions carefully:
|
||||||
|
|
||||||
|
(For a reminder of the partitions available, type 'list' at any of the
|
||||||
|
prompts. If you don't wish to specify a partition, select 'none'. )
|
||||||
|
!!
|
||||||
|
|
||||||
|
# root partition
|
||||||
|
|
||||||
|
loop=true
|
||||||
|
while [ $loop = true ]; do
|
||||||
|
|
||||||
|
echo
|
||||||
|
echo -n "Root partition [$default_root]: "
|
||||||
|
read ans
|
||||||
|
if [ $ans ]; then
|
||||||
|
if [ $ans = none ]; then
|
||||||
|
echo
|
||||||
|
echo "You must specify a root partition."
|
||||||
|
elif [ $ans = list ]; then
|
||||||
|
echo
|
||||||
|
showdisk -q /dev/hd
|
||||||
|
showdisk -q /dev/sd
|
||||||
|
prtc
|
||||||
|
elif [ $ans = abort ]; then
|
||||||
|
echo Process aborted.
|
||||||
|
exit 1
|
||||||
|
elif [ ! -b $ans ]; then
|
||||||
|
echo
|
||||||
|
echo $ans is not a block device.
|
||||||
|
else
|
||||||
|
root=$ans
|
||||||
|
loop=false
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
root=$default_root
|
||||||
|
loop=false
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
root_disk=${root%%[0-9]}
|
||||||
|
primary_disk=${root_disk%%[a-h]}
|
||||||
|
|
||||||
|
# /var partition
|
||||||
|
|
||||||
|
loop=true
|
||||||
|
while [ $loop = true ]; do
|
||||||
|
|
||||||
|
echo
|
||||||
|
echo -n "/var partition [none]: "
|
||||||
|
read ans
|
||||||
|
if [ $ans ]; then
|
||||||
|
if [ $ans = none ]; then
|
||||||
|
var=
|
||||||
|
loop=false
|
||||||
|
elif [ $ans = list ]; then
|
||||||
|
echo
|
||||||
|
showdisk -q /dev/hd
|
||||||
|
showdisk -q /dev/sd
|
||||||
|
prtc
|
||||||
|
elif [ $ans = $root ]; then
|
||||||
|
echo
|
||||||
|
echo "You have already selected $ans as your root partition."
|
||||||
|
elif [ $ans = abort ]; then
|
||||||
|
echo Process aborted.
|
||||||
|
exit 1
|
||||||
|
elif [ ! -b $ans ]; then
|
||||||
|
echo
|
||||||
|
echo $ans is not a block device.
|
||||||
|
else
|
||||||
|
var=$ans
|
||||||
|
loop=false
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
var=
|
||||||
|
loop=false
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
# swap partition
|
||||||
|
|
||||||
|
loop=true
|
||||||
|
while [ $loop = true ]; do
|
||||||
|
|
||||||
|
echo
|
||||||
|
echo -n "swap partition [none]: "
|
||||||
|
read ans
|
||||||
|
if [ $ans ]; then
|
||||||
|
if [ $ans = none ]; then
|
||||||
|
swap=
|
||||||
|
loop=false
|
||||||
|
elif [ $ans = list ]; then
|
||||||
|
echo
|
||||||
|
showdisk -q /dev/hd
|
||||||
|
showdisk -q /dev/sd
|
||||||
|
prtc
|
||||||
|
elif [ $ans = $root ]; then
|
||||||
|
echo
|
||||||
|
echo "You have already selected $ans as your root partition."
|
||||||
|
elif [ $ans = $var ]; then
|
||||||
|
echo
|
||||||
|
echo "You have already selected $ans as your /var partition."
|
||||||
|
elif [ $ans = abort ]; then
|
||||||
|
echo Process aborted.
|
||||||
|
exit 1
|
||||||
|
elif [ ! -b $ans ]; then
|
||||||
|
echo
|
||||||
|
echo $ans is not a block device.
|
||||||
|
else
|
||||||
|
swap=$ans
|
||||||
|
loop=false
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
swap=
|
||||||
|
loop=false
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
if [ $swap ] ; then
|
||||||
|
echo "Preparing swap partition..."
|
||||||
|
mkswap -c $swap `blocks $swap`
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "Mounting root partition..."
|
||||||
|
if [ ! -d /mnt ] ; then
|
||||||
|
mkdir /mnt
|
||||||
|
fi
|
||||||
|
if ! mount -t ext $root /mnt && ! mount $root /mnt ; then
|
||||||
|
echo
|
||||||
|
echo "Could not mount the root file system $root. Giving up."
|
||||||
|
echo
|
||||||
|
prtc
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ $var ]; then
|
||||||
|
|
||||||
|
echo "Mounting /var partition..."
|
||||||
|
if [ ! -d /mnt/var ]; then
|
||||||
|
mkdir /mnt/var
|
||||||
|
fi
|
||||||
|
mount $var /mnt/var
|
||||||
|
fi
|
||||||
|
|
||||||
|
cat <<!!
|
||||||
|
|
||||||
|
Now we are ready to being installing the actual Linux binaries
|
||||||
|
(programs) on your hard disk. This will be done automatically, and
|
||||||
|
without regard to anything that may currently be on those partitions.
|
||||||
|
|
||||||
|
(This means if you are upgrading from a previous version of Linux, it
|
||||||
|
is possible that a number of old, incorrect binaries may be left
|
||||||
|
behind, and that any 'customized' binaries you have installed on top
|
||||||
|
of the standard binaries may be overwritten.)
|
||||||
|
|
||||||
|
!!
|
||||||
|
|
||||||
|
echo -n "[ press return to continue, and type abort to stop here ]"
|
||||||
|
read $ans
|
||||||
|
if [ .$ans = .abort ]; then
|
||||||
|
echo
|
||||||
|
echo "Aborting installation."
|
||||||
|
umount $root
|
||||||
|
umount $var
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo
|
||||||
|
echo "Installing files..."
|
||||||
|
( cd / ; tar cfX - /INSTALL/exclude . ) | ( cd /mnt ; umask 0 ; tar xpfv - )
|
||||||
|
mkdir -p /mnt/mnt /mnt/usr/src
|
||||||
|
|
||||||
|
( cd /mnt/etc; for new in *.install; do mv -fv $new `basename $new .install`; done )
|
||||||
|
|
||||||
|
echo
|
||||||
|
echo -n "Do you want to install /usr/src (106 megabytes) right now (y/n)? [n]: "
|
||||||
|
read ans
|
||||||
|
if [ .$ans = .y -o .$ans = .Y ]; then
|
||||||
|
echo -n "Installing /usr/src..."
|
||||||
|
( cd / ; tar cf - usr/src ) | ( cd /mnt ; umask 0 ; tar xfv - )
|
||||||
|
echo "installation of /usr/src complete."
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo
|
||||||
|
echo -n "What would you like to name your system? [linux]: "
|
||||||
|
read arg
|
||||||
|
if [ ! $arg ]; then
|
||||||
|
name=linux
|
||||||
|
else
|
||||||
|
name=$arg
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo
|
||||||
|
|
||||||
|
echo Generating /etc/rc.local...
|
||||||
|
|
||||||
|
cat >/mnt/etc/rc.local <<!!
|
||||||
|
hostname $name
|
||||||
|
setterm -blank 10
|
||||||
|
!!
|
||||||
|
|
||||||
|
echo
|
||||||
|
echo Generating /etc/fstab...
|
||||||
|
echo $root / ext defaults >> /mnt/etc/fstab
|
||||||
|
if [ $var ]; then
|
||||||
|
echo $var /var ext defaults >> /mnt/etc/fstab
|
||||||
|
fi
|
||||||
|
if [ $swap ]; then
|
||||||
|
echo $swap none swap sw >> /mnt/etc/fstab
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo Configuring kernel...
|
||||||
|
cp /usr/src/linux/Image /mnt/vmlinux
|
||||||
|
setroot $root /mnt/vmlinux
|
||||||
|
lilo -c -i /mnt/etc/lilo/boot.b -b $root /mnt/vmlinux
|
||||||
|
echo '#!/bin/sh' > /mnt/etc/lilo/install
|
||||||
|
echo lilo -c -i /etc/lilo/boot.b -b $root \$\* /vmlinux >> /mnt/etc/lilo/install
|
||||||
|
chmod u+rwx,go+rx,go-w /mnt/etc/lilo/install
|
||||||
|
|
||||||
|
cat > /dev/null <<!!
|
||||||
|
The kernel image lives in the file "/vmlinux" on your root partition.
|
||||||
|
If you ever change /vmlinux, you MUST RUN THE SHELL SCRIPT
|
||||||
|
/etc/lilo/install before rebooting or halting your system. OTHERWISE,
|
||||||
|
YOUR SYSTEM MAY NOT BE ABLE TO REBOOT FROM DISK. You might want
|
||||||
|
to have a look at /etc/lilo/install to see the commands that are
|
||||||
|
being executed to make a kernel image boot from your hard disk.
|
||||||
|
|
||||||
|
The following question exists for the benefit of people who have
|
||||||
|
another operating system coexisting with Linux and want that other
|
||||||
|
operating system to control the boot process. Unless you fall into
|
||||||
|
that category, you want the Linux boot loader (LILO) to control the
|
||||||
|
hard disk boot process (i.e., install itself in the master boot
|
||||||
|
record), and you should should answer in the affirmative to the
|
||||||
|
following question.
|
||||||
|
|
||||||
|
!!
|
||||||
|
echo -n "Should the Linux boot loader control the boot process (y/n)? [y]: "
|
||||||
|
read ans
|
||||||
|
if [ .$ans != .n -o .$ans != .N ]; then
|
||||||
|
lilo -c -i /mnt/etc/lilo/boot.b -b ${primary_disk}a /mnt/vmlinux
|
||||||
|
echo lilo -c -i /etc/lilo/boot.b -b ${primary_disk}a \$\* /vmlinux >> /mnt/etc/lilo/install
|
||||||
|
fi
|
||||||
|
rm -f $partitioned
|
||||||
|
sync
|
||||||
|
umount $root
|
||||||
|
if [ $var ] ; then
|
||||||
|
umount $var
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo
|
||||||
|
echo "You should now have a useable filesystem on your disk."
|
||||||
|
echo
|
||||||
|
|
||||||
|
prtc
|
||||||
|
clear
|
||||||
|
|
||||||
|
cat <<!!
|
||||||
|
You should probably write down the following information, in case have
|
||||||
|
trouble rebooting your hard disk. If you are unable to boot from your
|
||||||
|
hard disk, reboot from the CDROM and the system floppy, mount your
|
||||||
|
root partition (e.g., with the command "mount -t ext $root /mnt"), and
|
||||||
|
then try one or both of the following.
|
||||||
|
|
||||||
|
1. Make a boot floppy by doing the following
|
||||||
|
|
||||||
|
mount -t ext $root /mnt
|
||||||
|
umount /dev/fd0
|
||||||
|
<--- REPLACE THE YGGDRASIL SYSTEM DISKETTE
|
||||||
|
<--- IN THE FLOPPY DRIVE WITH A BLANK
|
||||||
|
<--- FORMATTED DISKETTE AT THIS POINT
|
||||||
|
dd if=/mnt/vmlinux of=/dev/fd0
|
||||||
|
|
||||||
|
You will then have a floppy disk that will boot to your root
|
||||||
|
partition (you can remove the floppy after booting, since it isn't
|
||||||
|
used as a mounted file system).
|
||||||
|
|
||||||
|
2. Take a look at the /etc/lilo/install shell script to see
|
||||||
|
if the Linux boot information is somehow screwed up.
|
||||||
|
|
||||||
|
!!
|
||||||
|
prtc
|
||||||
|
clear
|
||||||
|
cat <<!!
|
||||||
|
That completes the installation. If you want to try booting your
|
||||||
|
system from the hard disk, shut down the system (log in as root,
|
||||||
|
issue the "halt" command, and wait for the message that it's okay to
|
||||||
|
turn the power off), remove the floppy disk if there is one in the
|
||||||
|
drive and reset the computer.
|
||||||
|
|
||||||
|
Good luck!
|
||||||
|
|
||||||
|
!!
|
||||||
|
prtc
|
||||||
|
|
||||||
|
# clean up
|
||||||
|
exit 0
|
||||||
45
Linux-0.98/Yggdrasil-0.98.3/INSTALL/intro
Executable file
45
Linux-0.98/Yggdrasil-0.98.3/INSTALL/intro
Executable file
@@ -0,0 +1,45 @@
|
|||||||
|
#! /bin/sh -
|
||||||
|
# Intro v0.97 - system for viewing introductory-type files
|
||||||
|
|
||||||
|
intro=`basename $0`
|
||||||
|
|
||||||
|
cat <<!!
|
||||||
|
|
||||||
|
Welcome to Linux v0.97. This program will allow you to view the
|
||||||
|
various documentation files on this disk, which will help guide you
|
||||||
|
through the process of installing Linux on your computer.
|
||||||
|
|
||||||
|
To access the various files, just type the name at the prompt. To get
|
||||||
|
a listing of the files available, type '?'.
|
||||||
|
|
||||||
|
To get out of this system, type 'quit' at the prompt.
|
||||||
|
|
||||||
|
!!
|
||||||
|
|
||||||
|
echo Available files:
|
||||||
|
ls /INSTALL/docs
|
||||||
|
echo quit
|
||||||
|
|
||||||
|
while [ 1 ]; do
|
||||||
|
echo
|
||||||
|
echo -n "Choice (? for options): "
|
||||||
|
read ans
|
||||||
|
if [ $ans ]; then
|
||||||
|
if [ $ans = \? ]; then
|
||||||
|
echo
|
||||||
|
ls /INSTALL/docs
|
||||||
|
echo quit
|
||||||
|
elif [ $ans = quit ]; then
|
||||||
|
echo
|
||||||
|
exit 0
|
||||||
|
elif [ -e /INSTALL/docs/$ans ]; then
|
||||||
|
echo
|
||||||
|
more /INSTALL/docs/$ans
|
||||||
|
else
|
||||||
|
echo
|
||||||
|
echo "Sorry, invalid command."
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
exit 1
|
||||||
BIN
Linux-0.98/Yggdrasil-0.98.3/bin/[
Executable file
BIN
Linux-0.98/Yggdrasil-0.98.3/bin/[
Executable file
Binary file not shown.
74
Linux-0.98/Yggdrasil-0.98.3/bin/adduser
Executable file
74
Linux-0.98/Yggdrasil-0.98.3/bin/adduser
Executable file
@@ -0,0 +1,74 @@
|
|||||||
|
#! /bin/sh
|
||||||
|
#
|
||||||
|
# $ADM/adduser -- add a user, creating directories and stuff
|
||||||
|
#
|
||||||
|
# usage: adduser name [options]
|
||||||
|
# options are:
|
||||||
|
# -p password (not encrypted if it starts with '*')
|
||||||
|
# -u userid (numeric or '-')
|
||||||
|
# -g groupid (numeric or symbolic)
|
||||||
|
# -n real name (gecos field)
|
||||||
|
# -d home directory (checked iff it exists)
|
||||||
|
# -s login shell (must exist and be executable)
|
||||||
|
#
|
||||||
|
# Written by Steven Robbins
|
||||||
|
#
|
||||||
|
MAIL_DIR=/usr/spool/mail
|
||||||
|
|
||||||
|
# Set up the defaults
|
||||||
|
#
|
||||||
|
PW_USER=$1
|
||||||
|
PW_PASS=$PW_USER
|
||||||
|
PW_UID="-"
|
||||||
|
PW_GID="user"
|
||||||
|
PW_GCOS=$PW_USER
|
||||||
|
PW_DIR="/home/"$PW_USER
|
||||||
|
PW_SHELL="/bin/sh"
|
||||||
|
|
||||||
|
# Deal with overriding options
|
||||||
|
#
|
||||||
|
shift
|
||||||
|
badcase=0
|
||||||
|
while getopts "p:u:g:n:d:s:" OPT; do
|
||||||
|
case $OPT in
|
||||||
|
p) PW_PASS=$OPTARG;;
|
||||||
|
u) PW_UID=$OPTARG;;
|
||||||
|
g) PW_GID=$OPTARG;;
|
||||||
|
n) PW_GCOS=$OPTARG;;
|
||||||
|
d) PW_DIR=$OPTARG;;
|
||||||
|
s) PW_SHELL=$OPTARG;;
|
||||||
|
?) badcase=1
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
if [ $badcase -eq 1 ]; then exit 1; fi
|
||||||
|
|
||||||
|
# Now, put the entry into /etc/passwd, and do all the other admin chores
|
||||||
|
#
|
||||||
|
PWENT="$PW_USER $PW_PASS $PW_UID $PW_GID \"$PW_GCOS\" $PW_DIR $PW_SHELL"
|
||||||
|
MAIL_FILE=$MAIL_DIR/$PW_USER
|
||||||
|
|
||||||
|
if eval mkpwent $PWENT; then
|
||||||
|
#
|
||||||
|
# Setup the home directory, and related things
|
||||||
|
#
|
||||||
|
mkdir $PW_DIR
|
||||||
|
mkdir $PW_DIR/bin
|
||||||
|
|
||||||
|
touch $MAIL_FILE
|
||||||
|
chmod 600 $MAIL_FILE
|
||||||
|
|
||||||
|
cp $ADM/dot/bashrc $PW_DIR/.bashrc
|
||||||
|
cp $ADM/dot/bash_logout $PW_DIR/.bash_logout
|
||||||
|
|
||||||
|
chown -R $PW_USER:$PW_GID $PW_DIR $MAIL_FILE
|
||||||
|
|
||||||
|
cat <<-!G!R!O!K! | mail $PW_USER
|
||||||
|
Welcome, $PW_GCOS!
|
||||||
|
|
||||||
|
You have been given a default password.
|
||||||
|
Please change it now using the command 'passwd' from the shell prompt.
|
||||||
|
|
||||||
|
The Management
|
||||||
|
!G!R!O!K!
|
||||||
|
fi
|
||||||
BIN
Linux-0.98/Yggdrasil-0.98.3/bin/basename
Executable file
BIN
Linux-0.98/Yggdrasil-0.98.3/bin/basename
Executable file
Binary file not shown.
BIN
Linux-0.98/Yggdrasil-0.98.3/bin/bash
Executable file
BIN
Linux-0.98/Yggdrasil-0.98.3/bin/bash
Executable file
Binary file not shown.
BIN
Linux-0.98/Yggdrasil-0.98.3/bin/cat
Executable file
BIN
Linux-0.98/Yggdrasil-0.98.3/bin/cat
Executable file
Binary file not shown.
BIN
Linux-0.98/Yggdrasil-0.98.3/bin/chgrp
Executable file
BIN
Linux-0.98/Yggdrasil-0.98.3/bin/chgrp
Executable file
Binary file not shown.
BIN
Linux-0.98/Yggdrasil-0.98.3/bin/chmod
Executable file
BIN
Linux-0.98/Yggdrasil-0.98.3/bin/chmod
Executable file
Binary file not shown.
BIN
Linux-0.98/Yggdrasil-0.98.3/bin/chown
Executable file
BIN
Linux-0.98/Yggdrasil-0.98.3/bin/chown
Executable file
Binary file not shown.
BIN
Linux-0.98/Yggdrasil-0.98.3/bin/chsh
Executable file
BIN
Linux-0.98/Yggdrasil-0.98.3/bin/chsh
Executable file
Binary file not shown.
BIN
Linux-0.98/Yggdrasil-0.98.3/bin/cmp
Executable file
BIN
Linux-0.98/Yggdrasil-0.98.3/bin/cmp
Executable file
Binary file not shown.
BIN
Linux-0.98/Yggdrasil-0.98.3/bin/comm
Executable file
BIN
Linux-0.98/Yggdrasil-0.98.3/bin/comm
Executable file
Binary file not shown.
BIN
Linux-0.98/Yggdrasil-0.98.3/bin/compress
Executable file
BIN
Linux-0.98/Yggdrasil-0.98.3/bin/compress
Executable file
Binary file not shown.
BIN
Linux-0.98/Yggdrasil-0.98.3/bin/cp
Executable file
BIN
Linux-0.98/Yggdrasil-0.98.3/bin/cp
Executable file
Binary file not shown.
BIN
Linux-0.98/Yggdrasil-0.98.3/bin/cpio
Executable file
BIN
Linux-0.98/Yggdrasil-0.98.3/bin/cpio
Executable file
Binary file not shown.
BIN
Linux-0.98/Yggdrasil-0.98.3/bin/crond
Executable file
BIN
Linux-0.98/Yggdrasil-0.98.3/bin/crond
Executable file
Binary file not shown.
BIN
Linux-0.98/Yggdrasil-0.98.3/bin/csplit
Executable file
BIN
Linux-0.98/Yggdrasil-0.98.3/bin/csplit
Executable file
Binary file not shown.
BIN
Linux-0.98/Yggdrasil-0.98.3/bin/ctrlaltdel
Executable file
BIN
Linux-0.98/Yggdrasil-0.98.3/bin/ctrlaltdel
Executable file
Binary file not shown.
BIN
Linux-0.98/Yggdrasil-0.98.3/bin/cut
Executable file
BIN
Linux-0.98/Yggdrasil-0.98.3/bin/cut
Executable file
Binary file not shown.
BIN
Linux-0.98/Yggdrasil-0.98.3/bin/d
Executable file
BIN
Linux-0.98/Yggdrasil-0.98.3/bin/d
Executable file
Binary file not shown.
BIN
Linux-0.98/Yggdrasil-0.98.3/bin/date
Executable file
BIN
Linux-0.98/Yggdrasil-0.98.3/bin/date
Executable file
Binary file not shown.
BIN
Linux-0.98/Yggdrasil-0.98.3/bin/dd
Executable file
BIN
Linux-0.98/Yggdrasil-0.98.3/bin/dd
Executable file
Binary file not shown.
BIN
Linux-0.98/Yggdrasil-0.98.3/bin/df
Executable file
BIN
Linux-0.98/Yggdrasil-0.98.3/bin/df
Executable file
Binary file not shown.
BIN
Linux-0.98/Yggdrasil-0.98.3/bin/dir
Executable file
BIN
Linux-0.98/Yggdrasil-0.98.3/bin/dir
Executable file
Binary file not shown.
BIN
Linux-0.98/Yggdrasil-0.98.3/bin/dirname
Executable file
BIN
Linux-0.98/Yggdrasil-0.98.3/bin/dirname
Executable file
Binary file not shown.
BIN
Linux-0.98/Yggdrasil-0.98.3/bin/doshell
Executable file
BIN
Linux-0.98/Yggdrasil-0.98.3/bin/doshell
Executable file
Binary file not shown.
BIN
Linux-0.98/Yggdrasil-0.98.3/bin/du
Executable file
BIN
Linux-0.98/Yggdrasil-0.98.3/bin/du
Executable file
Binary file not shown.
2
Linux-0.98/Yggdrasil-0.98.3/bin/echo
Executable file
2
Linux-0.98/Yggdrasil-0.98.3/bin/echo
Executable file
@@ -0,0 +1,2 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
echo $*
|
||||||
BIN
Linux-0.98/Yggdrasil-0.98.3/bin/env
Executable file
BIN
Linux-0.98/Yggdrasil-0.98.3/bin/env
Executable file
Binary file not shown.
BIN
Linux-0.98/Yggdrasil-0.98.3/bin/expand
Executable file
BIN
Linux-0.98/Yggdrasil-0.98.3/bin/expand
Executable file
Binary file not shown.
BIN
Linux-0.98/Yggdrasil-0.98.3/bin/expr
Executable file
BIN
Linux-0.98/Yggdrasil-0.98.3/bin/expr
Executable file
Binary file not shown.
2
Linux-0.98/Yggdrasil-0.98.3/bin/false
Executable file
2
Linux-0.98/Yggdrasil-0.98.3/bin/false
Executable file
@@ -0,0 +1,2 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
exit 1
|
||||||
BIN
Linux-0.98/Yggdrasil-0.98.3/bin/fdformat
Executable file
BIN
Linux-0.98/Yggdrasil-0.98.3/bin/fdformat
Executable file
Binary file not shown.
BIN
Linux-0.98/Yggdrasil-0.98.3/bin/fdisk
Executable file
BIN
Linux-0.98/Yggdrasil-0.98.3/bin/fdisk
Executable file
Binary file not shown.
BIN
Linux-0.98/Yggdrasil-0.98.3/bin/fold
Executable file
BIN
Linux-0.98/Yggdrasil-0.98.3/bin/fold
Executable file
Binary file not shown.
BIN
Linux-0.98/Yggdrasil-0.98.3/bin/free
Executable file
BIN
Linux-0.98/Yggdrasil-0.98.3/bin/free
Executable file
Binary file not shown.
BIN
Linux-0.98/Yggdrasil-0.98.3/bin/fsck
Executable file
BIN
Linux-0.98/Yggdrasil-0.98.3/bin/fsck
Executable file
Binary file not shown.
29
Linux-0.98/Yggdrasil-0.98.3/bin/groups
Executable file
29
Linux-0.98/Yggdrasil-0.98.3/bin/groups
Executable file
@@ -0,0 +1,29 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
# groups -- print the groups a user is in
|
||||||
|
# Copyright (C) 1991 Free Software Foundation, Inc.
|
||||||
|
|
||||||
|
# This program is free software; you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
# the Free Software Foundation; either version 2, or (at your option)
|
||||||
|
# any later version.
|
||||||
|
|
||||||
|
# This program is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU General Public License for more details.
|
||||||
|
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with this program; if not, write to the Free Software
|
||||||
|
# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||||
|
|
||||||
|
# Written by David MacKenzie <djm@gnu.ai.mit.edu>.
|
||||||
|
|
||||||
|
PATH=/bin/bin:$PATH
|
||||||
|
|
||||||
|
if [ $# -eq 0 ]; then
|
||||||
|
id -Gn
|
||||||
|
else
|
||||||
|
for name in "$@"; do
|
||||||
|
echo $name : `id -Gn $name`
|
||||||
|
done
|
||||||
|
fi
|
||||||
BIN
Linux-0.98/Yggdrasil-0.98.3/bin/halt
Executable file
BIN
Linux-0.98/Yggdrasil-0.98.3/bin/halt
Executable file
Binary file not shown.
BIN
Linux-0.98/Yggdrasil-0.98.3/bin/head
Executable file
BIN
Linux-0.98/Yggdrasil-0.98.3/bin/head
Executable file
Binary file not shown.
BIN
Linux-0.98/Yggdrasil-0.98.3/bin/hostname
Executable file
BIN
Linux-0.98/Yggdrasil-0.98.3/bin/hostname
Executable file
Binary file not shown.
BIN
Linux-0.98/Yggdrasil-0.98.3/bin/id
Executable file
BIN
Linux-0.98/Yggdrasil-0.98.3/bin/id
Executable file
Binary file not shown.
BIN
Linux-0.98/Yggdrasil-0.98.3/bin/install
Executable file
BIN
Linux-0.98/Yggdrasil-0.98.3/bin/install
Executable file
Binary file not shown.
BIN
Linux-0.98/Yggdrasil-0.98.3/bin/join
Executable file
BIN
Linux-0.98/Yggdrasil-0.98.3/bin/join
Executable file
Binary file not shown.
BIN
Linux-0.98/Yggdrasil-0.98.3/bin/laceup
Executable file
BIN
Linux-0.98/Yggdrasil-0.98.3/bin/laceup
Executable file
Binary file not shown.
BIN
Linux-0.98/Yggdrasil-0.98.3/bin/last
Executable file
BIN
Linux-0.98/Yggdrasil-0.98.3/bin/last
Executable file
Binary file not shown.
BIN
Linux-0.98/Yggdrasil-0.98.3/bin/ldd
Executable file
BIN
Linux-0.98/Yggdrasil-0.98.3/bin/ldd
Executable file
Binary file not shown.
BIN
Linux-0.98/Yggdrasil-0.98.3/bin/lilo
Executable file
BIN
Linux-0.98/Yggdrasil-0.98.3/bin/lilo
Executable file
Binary file not shown.
BIN
Linux-0.98/Yggdrasil-0.98.3/bin/lmail
Executable file
BIN
Linux-0.98/Yggdrasil-0.98.3/bin/lmail
Executable file
Binary file not shown.
BIN
Linux-0.98/Yggdrasil-0.98.3/bin/ln
Executable file
BIN
Linux-0.98/Yggdrasil-0.98.3/bin/ln
Executable file
Binary file not shown.
BIN
Linux-0.98/Yggdrasil-0.98.3/bin/login
Executable file
BIN
Linux-0.98/Yggdrasil-0.98.3/bin/login
Executable file
Binary file not shown.
BIN
Linux-0.98/Yggdrasil-0.98.3/bin/logname
Executable file
BIN
Linux-0.98/Yggdrasil-0.98.3/bin/logname
Executable file
Binary file not shown.
BIN
Linux-0.98/Yggdrasil-0.98.3/bin/ls
Executable file
BIN
Linux-0.98/Yggdrasil-0.98.3/bin/ls
Executable file
Binary file not shown.
BIN
Linux-0.98/Yggdrasil-0.98.3/bin/mail
Executable file
BIN
Linux-0.98/Yggdrasil-0.98.3/bin/mail
Executable file
Binary file not shown.
BIN
Linux-0.98/Yggdrasil-0.98.3/bin/mkdir
Executable file
BIN
Linux-0.98/Yggdrasil-0.98.3/bin/mkdir
Executable file
Binary file not shown.
BIN
Linux-0.98/Yggdrasil-0.98.3/bin/mkfifo
Executable file
BIN
Linux-0.98/Yggdrasil-0.98.3/bin/mkfifo
Executable file
Binary file not shown.
BIN
Linux-0.98/Yggdrasil-0.98.3/bin/mkfs
Executable file
BIN
Linux-0.98/Yggdrasil-0.98.3/bin/mkfs
Executable file
Binary file not shown.
BIN
Linux-0.98/Yggdrasil-0.98.3/bin/mknod
Executable file
BIN
Linux-0.98/Yggdrasil-0.98.3/bin/mknod
Executable file
Binary file not shown.
BIN
Linux-0.98/Yggdrasil-0.98.3/bin/mkpwent
Executable file
BIN
Linux-0.98/Yggdrasil-0.98.3/bin/mkpwent
Executable file
Binary file not shown.
BIN
Linux-0.98/Yggdrasil-0.98.3/bin/mkswap
Executable file
BIN
Linux-0.98/Yggdrasil-0.98.3/bin/mkswap
Executable file
Binary file not shown.
BIN
Linux-0.98/Yggdrasil-0.98.3/bin/mount
Executable file
BIN
Linux-0.98/Yggdrasil-0.98.3/bin/mount
Executable file
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user