FIPS.DOC
资源名称:os_source.zip [点击查看]
上传用户:datang2001
上传日期:2007-02-01
资源大小:53269k
文件大小:24k
源码类别:
操作系统开发
开发平台:
C/C++
- Welcome to FIPS
- The First nondestructive Interactive Partition Splitting program
- Version 1.5
- august 22, 1995
- Copyright 1993-95 by Arno Schaefer
- 0. What you need to use FIPS
- 1. Introduction
- 2. What FIPS does
- 3. Safety
- 4. Restrictions
- 5. Before you start
- 6. Use with a multitasking OS
- 7. Using FIPS
- 8. After splitting the partition
- 9. Commandline Switches
- 10. Troubleshooting
- 11. Credits
- In file SPECIAL.DOC:
- S1. Use with Stacker/SuperStor/Doublespace etc.
- S2. Use with OS/2
- S3. Use with OnTrack Disk Manager and similar drivers
- FIPS is a program designed to split an existing DOS partition without deleting
- the data on it.
- FIPS 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.
- FIPS 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 FIPS; see the file COPYING. If not, write to
- the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
- Report problems and direct all questions to:
- schaefer@rbg.informatik.th-darmstadt.de
- 0. What you need to use FIPS
- You need a defragmentation program in order to move all data to the beginning
- of the hard disk. FIPS will only split your partition if you have enough free
- space at the end. DOS 6.0 and later contains DEFRAG, which is suitable for
- this purpose. Other suitable programs are Norton Speedisk (actually DEFRAG
- is speedisk with less functions, licensed from Norton), PCTools' Compress,
- DISKOPT in Novell DOS 7, or the shareware programs ORG, DOG or SAFPAK
- (available by anonymous FTP from any SimTel mirror in the diskutil directory).
- I did not test these however, so don't blame me if they don't work for you.
- You may also want to use a program like Norton Disk Doctor (or 'scandisk'
- in DOS 6.2) to check your harddisk before and after using FIPS.
- FIPS was developed under DOS 5.0. It should work fine with anything above
- 3.0, perhaps even with 2.0. However it will not be of much use with older
- DOS versions, since the large partition sizes are only available since DOS 4.
- It has been reported to work with DOS 6.0 and 6.2 and Novell DOS 7. I have
- also received reports about successful use with Windows95 partitions. Note
- that the long filenames are no problem for FIPS, because it works on a
- lower level where directory structure is of no concern. It is probably
- sensible to boot from a DOS disk before using FIPS in such a setup (see 6.)
- 1. Introduction
- The program was inspired by the Linux Project. When installing Linux on a
- PC that was used for DOS / Windows, many people want to retain a smaller
- partition for their DOS software. However, since most Harddisks contain
- only one large partition, you would normally be required to do a complete
- backup, erase the partition and build two (or more) new partitions. Then you
- would restore the backup to one of the new partitions. On today's systems
- with hard disk capacities of usually 500MB or more, a complete backup becomes
- practically infeasible without large media like streamer tapes once the
- drive has filled up to some considerable fraction. Even though many people
- backup their most valuable date (a practice which I would highly recommend
- in any case), the process of reinstalling all the software packages takes
- many hours or even days.
- FIPS was written to remedy this problem. You can now split a partition
- without losing any data, provided there is enough free space for the new
- partition at the end of the old one.
- 2. What FIPS does
- FIPS reduces the size of a partition by changing some values in the
- partition table and boot sector. It does not change the formatting of
- the partition, especially not the cluster size and the size of the file
- allocation table (FAT). Therefore the reduced partition will have a FAT
- that is in part unused, but this is not a problem for DOS.
- From the free space that is won by this, FIPS creates a new _primary_ DOS
- partition.
- If you want to use the new partition under a different OS (e.g. Linux), use
- its supplied fdisk program to make any necessary changes (refer to the OS
- manuals).
- If you want to use the new partition under DOS/Windows, you can use it as
- it is (after formatting!), but be aware of the following:
- According to the official references, DOS can only have one primary
- partition. All DOS versions (at least from v5.0 on) will happily work with
- multiple primary partitions, but this is an 'undocumented feature'. If
- you want to follow the official rules, you can delete the new partition with
- fdisk and create an extended partition in its place.
- There are reasons for having multiple primary partitions, among them the
- possibility to boot from different partitions by changing the active par-
- tition with fdisk.
- Known problems with multiple primary partitions are:
- - If you accidentally delete one primary partition with fdisk, you can not
- easily recreate it, since fdisk will refuse to. There may be other fdisk
- programs around that work, and if all else fails you can boot from a
- Linux boot disk to run Linux' fdisk, but it is always a hassle.
- - There exist some software packages that work with the partition table and
- which may be confused by multiple primary partitions. Among them was SFS,
- the 'Secure file system' by Peter Gutmann. I think Peter has made a change
- to his program to accept some unusual configuration, but there may exist
- other software packages that will have problems.
- 3. Safety
- FIPS was specifically designed to provide a maximum of safety. On startup
- it checks the Partition Table, Boot Sector and FAT for any inconsistencies.
- If it finds anything suspicious, it will tell you so. If there are errors,
- FIPS will not proceed.
- You have the possibility to write backup copies of your root and boot sector
- to a floppy disk before proceeding. If something goes wrong, you may restore
- these with the program 'restorrb.exe' (see section 5). I strongly recommend
- making use of this feature. It will also enable you to reverse the partition
- split afterwards, so it might be a good idea to save the root/boot sector
- image in a safe place.
- FIPS checks for free space on the partition and will let you choose the
- new start cylinder accordingly.
- After having calculated the new partition table and boot sector, FIPS will
- check everything again, so that possible bugs in the calculation may be
- detected. Only if everything is ok, FIPS will ask for permission to write
- the new root and boot sector.
- 4. Restrictions
- FIPS will only work with Hard Disk BIOSes that use interrupt 13h for low
- level harddisk access. This is true for almost all PCs. I have received
- a report that an older Adaptec SCSI controller had a software driver
- that worked on a higher level. In this case you can only hope to get a
- new driver from Adaptec. This is no problem any more for all newer
- Adaptecs (I personally use one).
- FIPS will only work on disks with a sector size of 512 bytes.
- It seems that DOS is prepared to deal with different sector sizes, but
- so far I have never seen this.
- FIPS will not split partitions with 12 bit FATs (you would not want to split
- partitions with less than 10 MB, would you?).
- FIPS will only split DOS partitions. Partition pable and boot sector must
- conform to the MSDOS 3.0+ conventions. This is marked by the system
- indicator byte in the partition table, it must have the value 4 (16 bit
- sector number) or 6 (32 bit sector number).
- It will especially *not* split Linux partitions.
- FIPS does not yet work on extended DOS partitions. Support for these has
- been planned for a long time, but I can't say when it will come.
- FIPS will not work if you already have four partitions, since it needs one
- free partition entry.
- FIPS will not reduce the original partition to a size with less than 4085
- clusters, because this would imply rewriting the 16 bit FAT to a 12 bit FAT.
- 5. Before you start
- Run CHKDSK or (under DOS 6.2) SCANDISK on the partition you want to split.
- If you have Norton Disk Doctor or something similar, you may use it alter-
- natively. Make sure there remain no 'dead' clusters on the disk.
- Prepare a bootable floppy disk in drive A:. Under DOS this is usually done
- by giving the command 'sys a:' or 'format a:/s'. Under Windows NT or OS/2
- this may be different, if in doubt check your manual or boot from a boot
- disk from a DOS PC.
- Copy the FIPS files RESTORRB.EXE, FIPS.EXE and ERRORS.TXT to this disk.
- Test booting from the prepared floppy disk. Read you manual or ask a local
- guru if you can't boot from floppy disk or if you can not access your hard
- disk after booting (test this by giving the command 'dir c:', you should
- see your hard disk's root directory). If all else fails, try using FIPS
- after booting normally from the hard disk (a bit more risky, but sometimes
- the last resort).
- When you start FIPS (later!), you will be given the opportunity to write
- backup copies of your root and boot sector to a file on drive A: called
- ROOTBOOT.00x (where x stands for a digit from 0 to 9). If anything goes wrong
- while using FIPS, you can restore the original configuration by booting from
- the floppy and running RESTORRB. Please note: if you use FIPS more than once
- (this is normally not necessary, but it may happen), more than one ROOTBOOT
- file is written to the floppy disk. RESTORRB lets you choose which configu-
- ration file to restore. The file RESTORRB.000 contains your original confi-
- guration. Try not to confuse the versions.
- You will need this backup file (ROOTBOOT.00x) if you want to undo the
- partition split later.
- But before starting FIPS you _must_ now defragment your Harddisk. All of the
- space that will be used for the new partition must be free. Be aware that the
- Windows Swapfile will not be moved by most defragmentation programs. You must
- uninstall it (in the 386enhanced part of the Windows Control Panel) and rein-
- stall it after using FIPS.
- If you use IMAGE or MIRROR, the last sector of the hard disk contains a
- hidden system file with a pointer to your mirror files. You _must_ delete this
- file before using FIPS (it will be recreated the next time you run mirror).
- Do 'attrib -r -s -h image.idx' or 'attrib -r -s -h mirorsav.fil' in the root
- directory, then delete the file.
- If FIPS does not offer as much disk space for creation of the new partition
- as you would expect it to have, this may mean that
- a. You still have too much data in the remaining partition. Consider making
- the new partition smaller or deleting some of the data.
- b. There are hidden files in the space of the new partition that have not
- been moved by the defragmentation program. You can find the hidden files
- on the disk by typeing the command 'dir /a:h /s' (and 'dir /a:s /s' for
- the system files). Make sure to which program they belong. If a file is
- a swap file of some program (e.g. NDOS) it is possible that it can be
- safely deleted (and will be recreated automatically later when the need
- arises). See your manual for details.
- If the file belongs to some sort of copy protection, you must uninstall
- the program to which it belongs and reinstall it after repartitioning.
- I can't give you more aid in this - if you really can't figure out what
- to do, contact me directly.
- Attention! Do _not_ try to move DOS' hidden system files (ibmbio.com &
- ibmdos.com or something similar). You may end up with a hard disk that
- will not boot any more. Since these files are already in the first sectors
- of the partition, it is not necessary to move them. In DOS 5.0 and later,
- at least one of the system files _may_ be moved, but it is nevertheless a
- good idea to leave it alone.
- When you have run FIPS, you must reboot, so make sure to disable any
- programs in the config.sys and autoexec.bat that write to the disk, in
- particular mirror or image. Consider temporarily renaming these files.
- Be aware that the location of your DOS partitions in the partition table may
- change after using FIPS. If you use the new partition under DOS _and_ you
- have an extended partition and/or two drives, this means that the names of
- the partitions may change (e.g. D: may become E:). I have taken care that C:
- always remains C:, so that you will still be able to boot.
- Also if you have a CD-ROM, it will in most cases change its drive letter.
- If you use the /L switch to explicitly specify the drive letter in the call
- to MSCDEX in the autoexec.bat file, you might have to change it accordingly.
- If you don't use the /L switch, MSCDEX will automatically choose the first
- free letter, so that you do not need to change anything.
- Apropos drive letters: DOS uses the following order to assign them:
- 1. The first primary partition on each drive
- 2. The volumes inside the extended partitions on all drives
- 3. The remaining primary partitions on all drives
- Example:
- C: first primary partition on first HD
- D: first primary partition on second HD
- E: first volume in extended partition on first HD
- F: second volume in extended partition on first HD
- G: first volume in extended partition on second HD
- H: second primary partition on second HD
- I: CD ROM
- I am not aware of an easy way to change this scheme. In particular you
- can not assign an arbitrary drive letter to a partition. You can however
- influence the ordering by changing a primary partition into an extended one.
- For Linux users:
- The possible change of the location of the DOS paritition in the partition
- table also means that the device number of the DOS partition under Linux may
- change (e.g. /dev/hda3 may become /dev/hda1). Any existing Linux partitions
- will not change, so that you will have no trouble booting. You just need to
- edit your /etc/fstab file if you mount your DOS partition on bootup.
- 6. Use with a multitasking OS
- You should not use FIPS in multitasking environments like OS/2, Desqview,
- Windows, Novell Task Manager or the Linux DOS Emulator. These systems might
- still write to the disk after FIPS has changed the hard disk structure,
- which may result in corrupting the disk. This is not necessarily so, I'd
- suppose that in most cases it would work nevertheless. But since safety is my
- first concern with FIPS, I would recommend booting from a DOS boot disk and
- then running FIPS, that should be safe.
- In version 1.0 I added some code by Dave McCaldon to detect Windows and
- Desqview (thanks, Dave!). OS/2 and Novell Task Manager are not yet detected.
- I had to remove the code for detecting the Linux DOS emulator because it
- caused a hangup on many machines.
- 7. Using FIPS
- If you have prepared a bootable floppy disk as described in section 5,
- boot from it now.
- Important! Make sure not to have a disk cache program like Smartdrive
- running. It has been reported that in some cases the changes FIPS made
- were only written to the disk in part, which resulted in hard disk
- corruption later. I think this may be caused by the use of Smartdrive,
- which in the default configuration delays the disk writes for some seconds.
- If you reboot too fast, some of the changes may be lost.
- You start FIPS by typing FIPS at the DOS prompt, followed by <ENTER>.
- You may exit from the program at any time by pressing <CTRL-C>.
- FIPS will first try to detect under which OS it is running. If it is
- Windows or Desqview, it will complain and tell you to boot from a floppy
- disk. You can proceed nevertheless, but this is at your own risk (see
- section 8).
- Then FIPS will detect your hard disks, if you have more than one, it will
- ask you which one you want to work on.
- In previous releases, FIPS failed to detect the correct number of hard disks
- with some BIOSes (esp. in Gateway Pentium machines). I hope to have corrected
- this. If FIPS fails to detect the correct number of disks, please let me
- know. In the meantime you may use the '-n' switch to select the drive
- by hand (see below).
- FIPS then reads the root sector of the hard disk and displays the partition
- table.
- Example:
- | | Start | | End | Start |Number of|
- Part.|bootable|Head Cyl. Sector|System|Head Cyl. Sector| Sector |Sectors | MB
- -----+--------+----------------+------+----------------+--------+---------+----
- 1 | yes | 0 148 1| 83h| 15 295 63| 149184| 149184| 72
- 2 | no | 1 0 1| 06h| 15 139 63| 63| 141057| 68
- 3 | no | 0 140 1| 06h| 15 147 63| 141120| 8064| 3
- 4 | no | 0 0 0| 00h| 0 0 0| 0| 0| 0
- If you don't know what to make of this, don't worry too much. You may just use
- the number of Megabytes to identify your partitions.
- The root sector is then checked for errors.
- If you have more than one partition on the disk, you will be asked which one
- you want to split.
- The boot sector of the chosen partition is read and some information is dis-
- played.
- Example:
- Bytes per sector: 512
- Sectors per cluster: 8
- Reserved sectors: 1
- Number of FATs: 2
- Number of rootdirectory entries: 512
- Number of sectors (short): 0
- Media descriptor byte: f8h
- Sectors per FAT: 145
- Sectors per track: 63
- Drive heads: 16
- Hidden sectors: 63
- Number of sectors (long): 141057
- Physical drive number: 80h
- Signature: 29h
- FIPS checks if this information is consistent with the partition table and
- tries to detect other errors.
- It then verifies if the two copies of the FAT are identical, if they are not,
- FIPS will exit with an error message.
- If everything checks out ok, FIPS now looks for free space at the end of
- the partition. The new partition must have at least one cylinder, so if
- the last cylinder is not free, you have no chance of splitting the
- partition: FIPS will exit with an error message. Probably you forgot
- to remove a mirror or image file (see above).
- You must now enter on which cylinder the new partition should start.
- Use the cursor keys right/left to increase or decrease the cylinder
- count. The size of the remaining partition and the new partition are
- displayed in the process, so you will have no trouble choosing the
- right cylinder. With cursor up/down you can change the count in steps
- of 10. When ready, press enter to continue.
- FIPS will check again if the space for the new partition is empty -
- this is an additional security measure and should never show an error,
- since the free space was already determined before.
- After this, FIPS will calculate the changes to the root sector, check the
- changes and display the new partition table. You may now choose to reedit the
- partition table (this will return you to the point where you select the par-
- tition) or to continue. If you type 'c', FIPS will calculate the changed
- boot sector, check it again and prompt you if you want to proceed. If you type
- 'y' then, FIPS will write the changes to the disk and exit.
- 8. After splitting the partition
- Make sure that the changes have been written to the disk. If you used
- a disk cache like Smartdrive (despite my explicit recommendation not
- to use it :-), wait for some seconds so that the cache is flushed to disk.
- Your new partition will be recognized by DOS after you rebooted. DO NOT
- WRITE ANYTHING TO THE DISK BEFORE REBOOTING. After rebooting, use CHKDSK
- or Norton Disk Doctor to make sure your old (now smaller) partition is ok.
- There have been cases where the changes made by FIPS were not correctly
- written. To make sure that this is not the case, run FIPS again with the
- -t (test mode) switch after rebooting. Select the drive and partition that
- you were splitting. If FIPS displays no error until the cylinder selection
- dialogue, there is no problem and you can stop the program with CTRL-C.
- Otherwise you should undo the changes with 'restorrb' and contact me by
- email.
- If you don't find any errors, you may now reboot with your normal config.sys
- and autoexec.bat. Start some programs and make sure you can still read your
- data.
- If you want to use your new partition under DOS, you must format it. If you
- have multiple partitions, make sure to format the right one, the drive names
- may have changed!
- If you want to use the partition under Linux, you may now change the system
- indicator byte with Linux' fdisk, then use MKFS.
- If you want to split the new partition again in two smaller ones, you must
- first format it under DOS, otherwise FIPS will complain.
- 9. Commandline Switches
- Here is the explanation of FIPS' commandline switches. If you prefer the DOS
- style, you may use '/' instead of '-' as the switch character. The switches
- may be arbitrarily combined. Type 'FIPS -help' to get a list of the switches.
- Here is a more detailed explanation:
- -t or -test : test mode (no writes to disk)
- This doesn't need much explanation.
- -d or -debug : debug mode
- In this mode, a complete transcript of your session along with some additio-
- nal information is written to the file FIPSINFO.DBG in the current directory.
- You can send this file to me in case of trouble (see below).
- -h or -help or -? : help page
- A short summary of the switches
- -n<num> : select drive <num>
- Preselect the drive number with this switch. Valid numbers are 128 to 255.
- This may also be used to override the automatic drive detection - if for any
- reason the drive is not found by FIPS, you may try this switch.
- 10. Troubleshooting
- FIPS is still somewhat experimental, although it has been used by many
- people successfully and without serious problems.
- When in doubt I usually decided to stay safe and display error messages
- when encountering suspicious configurations. Some of the minor errors may
- be overridden.
- Please make sure you have read this doc carefully and also look in the file
- FIPS.FAQ that covers some frequently asked questions.
- If you can't resolve a problem yourself, or have a configuration not sup-
- ported by FIPS, or if you suspect a bug in FIPS, make a transcript of your
- session using the -d switch and send the full FIPSINFO.DBG file along with a
- short comment to schaefer@rbg.informatik.th-darmstadt.de. Possibly your
- problem has already been solved.
- 11. Credits
- FIPS is based on the procedure described by Drew Eckhardt in Linux digest132.
- Most of what I know about Harddisk structures comes from the excellent german
- book 'Scheibenkleister II' by Claus Brod and Anton Stepper. It is for the
- Atari ST, but much of it applies to PCs also.
- Information on the Harddisk Interrupts was drawn from Ralf Brown's Interrupt
- List. Thanks to Hamish Coleman for some useful info and to Paul Smith for
- his good suggestions. Gunnar Hilmarsson suggested the procedure for stacked
- drives, and Miguel Alvarez helped me improve the partition ordering. Chetan
- Patil, Rand Phares and Eric Jung pointed me at bugs in the program and
- documentation. Stefan Andreasen provided important informations about OS/2.
- Keith Crews suggested some additions to the documentation concerning the
- preparation of the boot disk and new features of DOS 6.x. Dave McCaldon
- wrote the code for detecting the OS FIPS is running under. Scott Ellentuch
- and Billy Patton provided info about OnTrack Disk Manager.
- A very valuable piece of info on EIDE drives and address translation is the
- Linux EIDE-Mini-HOWTO by Patrick LoPresti.
- Thanks to all others who sent me feedback and suggestions. FIPS would not be
- the same program without the innumerable emails I received.
- Arno Schaefer
- schaefer@rbg.informatik.th-darmstadt.de