home *** CD-ROM | disk | FTP | other *** search
/ Freelog Special Edition 1: Linux / CD1.iso / dosutils / fips20 / fips.doc < prev    next >
Text File  |  1998-05-09  |  24KB  |  526 lines

  1.                   Welcome to FIPS
  2.     The First nondestructive Interactive Partition Splitting program
  3.  
  4.                 Version 2.0
  5.                    May 11, 1998
  6.  
  7.               Copyright 1993-98 Arno Schaefer
  8.         Parts of the code Copyright 1997/98 Gordon Chaffee
  9.  
  10.  
  11. 0.  What you need to use FIPS
  12. 1.  Introduction
  13. 2.  What FIPS does
  14. 3.  Safety
  15. 4.  Restrictions
  16. 5.  Before you start
  17. 6.  Use with a multitasking OS
  18. 7.  Using FIPS
  19. 8.  After splitting the partition
  20. 9.  Commandline Switches
  21. 10. Troubleshooting
  22. 11. Credits
  23.  
  24.  
  25. In file SPECIAL.DOC:
  26.  
  27. S1. Use with Stacker/SuperStor/Doublespace etc.
  28. S2. Use with OS/2
  29. S3. Use with OnTrack Disk Manager and similar drivers
  30.  
  31.  
  32. FIPS is a program designed to split an existing DOS partition without deleting
  33. the data on it.
  34.  
  35. FIPS is free software; you can redistribute it and/or modify
  36. it under the terms of the GNU General Public License as published by
  37. the Free Software Foundation; either version 2, or (at your option)
  38. any later version.
  39.  
  40. FIPS is distributed in the hope that it will be useful,
  41. but WITHOUT ANY WARRANTY; without even the implied warranty of
  42. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  43. GNU General Public License for more details.
  44.  
  45. You should have received a copy of the GNU General Public License
  46. along with FIPS; see the file COPYING.  If not, write to
  47. the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
  48.  
  49. Report problems and direct all questions to:
  50.  
  51.     schaefer@rbg.informatik.th-darmstadt.de
  52.  
  53.  
  54. 0. What you need to use FIPS
  55.  
  56. You need a defragmentation program in order to move all data to the beginning
  57. of the hard disk. FIPS will only split your partition if you have enough free
  58. space at the end. Windows 95 and later MS-DOS versions contain DEFRAG, which
  59. is suitable for this purpose. Other suitable programs are Norton Speedisk
  60. PCTools' Compress, DISKOPT in Novell DOS 7, or the shareware programs ORG,
  61. DOG or SAFPAK (available by anonymous FTP from any SimTel mirror in the
  62. diskutil directory). I did not test these however, so don't blame me if they
  63. don't work for you.
  64.  
  65. You may also want to use a program like Norton Disk Doctor (or 'scandisk'
  66. in DOS 6.*/Windows 95) to check your harddisk before and after using FIPS.
  67.  
  68. FIPS was developed under DOS 5.0. It should work fine with anything above
  69. 3.0, perhaps even with 2.0. However it will not be of much use with older
  70. DOS versions, since the large partition sizes are only available since DOS 4.
  71. It has been reported to work with DOS 6.0 and 6.2 and Novell DOS 7. I have
  72. also received reports about successful use with Windows 95 partitions. Note
  73. that the long filenames are no problem for FIPS, because it works on a
  74. lower level where directory structure is of no concern. It is probably
  75. sensible to boot from a DOS disk before using FIPS in such a setup (see 6.)
  76.  
  77.  
  78.  
  79. 1. Introduction
  80.  
  81. The program was inspired by the Linux Project. When installing Linux on a
  82. PC that was used for DOS / Windows, many people want to retain a smaller
  83. partition for their DOS software. However, since most Harddisks contain
  84. only one large partition, you would normally be required to do a complete
  85. backup, erase the partition and build two (or more) new partitions. Then you
  86. would restore the backup to one of the new partitions. On today's systems
  87. with hard disk capacities of usually 500MB or more, a complete backup becomes
  88. practically infeasible without large media like streamer tapes once the
  89. drive has filled up to some considerable fraction. Even though many people
  90. backup their most valuable date (a practice which I would highly recommend
  91. in any case), the process of reinstalling all the software packages takes
  92. many hours or even days.
  93.  
  94. FIPS was written to remedy this problem. You can now split a partition
  95. without losing any data, provided there is enough free space for the new
  96. partition at the end of the old one.
  97.  
  98.  
  99. 2. What FIPS does
  100.  
  101. FIPS reduces the size of a partition by changing some values in the
  102. partition table and boot sector. It does not change the formatting of
  103. the partition, especially not the cluster size and the size of the file
  104. allocation table (FAT). Therefore the reduced partition will have a FAT
  105. that is in part unused, but this is not a problem for DOS.
  106.  
  107. From the free space that is won by this, FIPS creates a new _primary_ DOS
  108. partition.
  109.  
  110. If you want to use the new partition under a different OS (e.g. Linux), use
  111. its supplied fdisk program to make any necessary changes (refer to the OS
  112. manuals).
  113.  
  114. If you want to use the new partition under DOS/Windows, you can use it as
  115. it is (after formatting!), but be aware of the following:
  116.  
  117. According to the official references, DOS can only have one primary
  118. partition. All DOS versions (at least from v5.0 on) will happily work with
  119. multiple primary partitions, but this is an 'undocumented feature'. If
  120. you want to follow the official rules, you can delete the new partition with
  121. fdisk and create an extended partition in its place.
  122.  
  123. There are reasons for having multiple primary partitions, among them the
  124. possibility to boot from different partitions by changing the active par-
  125. tition with fdisk.
  126.  
  127. Known problems with multiple primary partitions are:
  128.  
  129. - If you accidentally delete one primary partition with fdisk, you can not
  130.   easily recreate it, since fdisk will refuse to. There may be other fdisk
  131.   programs around that work, and if all else fails you can boot from a
  132.   Linux boot disk to run Linux' fdisk, but it is always a hassle.
  133.  
  134. - There exist some software packages that work with the partition table and
  135.   which may be confused by multiple primary partitions. Among them was SFS,
  136.   the 'Secure file system' by Peter Gutmann. I think Peter has made a change
  137.   to his program to accept some unusual configuration, but there may exist
  138.   other software packages that will have problems.
  139.  
  140.  
  141. 3. Safety
  142.  
  143. FIPS was specifically designed to provide a maximum of safety. On startup
  144. it checks the Partition Table, Boot Sector and FAT for any inconsistencies.
  145. If it finds anything suspicious, it will tell you so. If there are errors,
  146. FIPS will not proceed.
  147. You have the possibility to write backup copies of your root and boot sector
  148. to a floppy disk before proceeding. If something goes wrong, you may restore
  149. these with the program 'restorrb.exe' (see section 5). I strongly recommend
  150. making use of this feature. It will also enable you to reverse the partition
  151. split afterwards, so it might be a good idea to save the root/boot sector
  152. image in a safe place.
  153. FIPS checks for free space on the partition and will let you choose the
  154. new start cylinder accordingly.
  155. After having calculated the new partition table and boot sector, FIPS will
  156. check everything again, so that possible bugs in the calculation may be
  157. detected. Only if everything is ok, FIPS will ask for permission to write
  158. the new root and boot sector.
  159.  
  160.  
  161. 4. Restrictions
  162.  
  163. FIPS will only work with Hard Disk BIOSes that use interrupt 13h for low
  164. level harddisk access. This is true for almost all PCs. I have received
  165. a report that an older Adaptec SCSI controller had a software driver
  166. that worked on a higher level. In this case you can only hope to get a
  167. new driver from Adaptec. This is no problem any more for all newer
  168. Adaptecs (I personally use one).
  169.  
  170. FIPS will only work on disks with a sector size of 512 bytes.
  171. It seems that DOS is prepared to deal with different sector sizes, but
  172. so far I have never seen this.
  173.  
  174. FIPS will not split partitions with 12 bit FATs (you would not want to split
  175. partitions with less than 10 MB, would you?).
  176.  
  177. FIPS will only split DOS partitions. Partition table and boot sector must
  178. conform to the MSDOS 3.0+ conventions. This is marked by the system
  179. indicator byte in the partition table, it must have the value 4 (16 bit
  180. sector number) or 6 (32 bit sector number).
  181. It will especially *not* split Linux partitions.
  182. NEW: Windows 95 FAT32 partitions are now also supported.
  183.  
  184. FIPS does not work on extended DOS partitions.
  185.  
  186. FIPS will not work if you already have four partitions, since it needs one
  187. free partition entry.
  188.  
  189. FIPS will not reduce the original partition to a size with less than 4085
  190. clusters, because this would imply rewriting the 16 bit FAT to a 12 bit FAT.
  191.  
  192.  
  193. 5. Before you start
  194.  
  195. Run CHKDSK or SCANDISK on the partition you want to split.
  196. If you have Norton Disk Doctor or something similar, you may use it alter-
  197. natively. Make sure there remain no 'dead' clusters on the disk.
  198.  
  199. Prepare a bootable floppy disk in drive A:. Under DOS this is usually done
  200. by giving the command 'sys a:' or 'format a:/s'. Under Windows NT or OS/2
  201. this may be different, if in doubt check your manual or boot from a boot
  202. disk from a DOS PC.
  203.  
  204. Copy the FIPS files RESTORRB.EXE, FIPS.EXE and ERRORS.TXT to this disk.
  205.  
  206. Test booting from the prepared floppy disk. Read you manual or ask a local
  207. guru if you can't boot from floppy disk or if you can not access your hard
  208. disk after booting (test this by giving the command 'dir c:', you should
  209. see your hard disk's root directory). If all else fails, try using FIPS
  210. after booting normally from the hard disk (a bit more risky, but sometimes
  211. the last resort).
  212.  
  213. When you start FIPS (later!), you will be given the opportunity to write
  214. backup copies of your root and boot sector to a file on drive A: called
  215. ROOTBOOT.00x (where x stands for a digit from 0 to 9). If anything goes wrong
  216. while using FIPS, you can restore the original configuration by booting from
  217. the floppy and running RESTORRB. Please note: if you use FIPS more than once
  218. (this is normally not necessary, but it may happen), more than one ROOTBOOT
  219. file is written to the floppy disk. RESTORRB lets you choose which configu-
  220. ration file to restore. The file RESTORRB.000 contains your original confi-
  221. guration. Try not to confuse the versions.
  222.  
  223. You will need this backup file (ROOTBOOT.00x) if you want to undo the
  224. partition split later.
  225.  
  226. But before starting FIPS you _must_ now defragment your Harddisk. All of the
  227. space that will be used for the new partition must be free. Be aware that the
  228. Windows Swapfile will not be moved by most defragmentation programs. You must
  229. uninstall it (in the 386enhanced part of the Windows Control Panel) and rein-
  230. stall it after using FIPS.
  231. If you use IMAGE or MIRROR, the last sector of the hard disk contains a
  232. hidden system file with a pointer to your mirror files. You _must_ delete this
  233. file before using FIPS (it will be recreated the next time you run mirror).
  234. Do 'attrib -r -s -h image.idx' or 'attrib -r -s -h mirorsav.fil' in the root
  235. directory, then delete the file.
  236. If FIPS does not offer as much disk space for creation of the new partition
  237. as you would expect it to have, this may mean that
  238.  
  239. a. You still have too much data in the remaining partition. Consider making
  240.    the new partition smaller or deleting some of the data.
  241.  
  242. b. There are hidden files in the space of the new partition that have not
  243.    been moved by the defragmentation program. You can find the hidden files
  244.    on the disk by typeing the command 'dir /a:h /s' (and 'dir /a:s /s' for
  245.    the system files). Make sure to which program they belong. If a file is
  246.    a swap file of some program (e.g. NDOS) it is possible that it can be
  247.    safely deleted (and will be recreated automatically later when the need
  248.    arises). See your manual for details.
  249.  
  250.    If the file belongs to some sort of copy protection, you must uninstall
  251.    the program to which it belongs and reinstall it after repartitioning.
  252.  
  253.    I can't give you more aid in this - if you really can't figure out what
  254.    to do, contact me directly.
  255.  
  256. Attention! Do _not_ try to move DOS' hidden system files (ibmbio.com &
  257. ibmdos.com or something similar). You may end up with a hard disk that
  258. will not boot any more. Since these files are already in the first sectors
  259. of the partition, it is not necessary to move them. In DOS 5.0 and later,
  260. at least one of the system files _may_ be moved, but it is nevertheless a
  261. good idea to leave it alone.
  262.  
  263. When you have run FIPS, you must reboot, so make sure to disable any
  264. programs in the config.sys and autoexec.bat that write to the disk, in
  265. particular mirror or image. Consider temporarily renaming these files.
  266.  
  267. Be aware that the location of your DOS partitions in the partition table may
  268. change after using FIPS. If you use the new partition under DOS _and_ you
  269. have an extended partition and/or two drives, this means that the names of
  270. the partitions may change (e.g. D: may become E:). I have taken care that C:
  271. always remains C:, so that you will still be able to boot.
  272.  
  273. Also if you have a CD-ROM, it will in most cases change its drive letter.
  274. If you use the /L switch to explicitly specify the drive letter in the call
  275. to MSCDEX in the autoexec.bat file, you might have to change it accordingly.
  276. If you don't use the /L switch, MSCDEX will automatically choose the first
  277. free letter, so that you do not need to change anything.
  278.  
  279. Apropos drive letters: DOS uses the following order to assign them:
  280. 1. The first primary partition on each drive
  281. 2. The volumes inside the extended partitions on all drives
  282. 3. The remaining primary partitions on all drives
  283.  
  284. Example:
  285.  
  286. C: first primary partition on first HD
  287. D: first primary partition on second HD
  288. E: first volume in extended partition on first HD
  289. F: second volume in extended partition on first HD
  290. G: first volume in extended partition on second HD
  291. H: second primary partition on second HD
  292. I: CD ROM
  293.  
  294. I am not aware of an easy way to change this scheme. In particular you
  295. can not assign an arbitrary drive letter to a partition. You can however
  296. influence the ordering by changing a primary partition into an extended one.
  297.  
  298. For Linux users:
  299. The possible change of the location of the DOS paritition in the partition 
  300. table also means that the device number of the DOS partition under Linux may
  301. change (e.g. /dev/hda3 may become /dev/hda1). Any existing Linux partitions
  302. will not change, so that you will have no trouble booting. You just need to
  303. edit your /etc/fstab file if you mount your DOS partition on bootup.
  304.  
  305.  
  306. 6. Use with a multitasking OS
  307.  
  308. You should not use FIPS in multitasking environments like OS/2, Desqview,
  309. Windows, Novell Task Manager or the Linux DOS Emulator. These systems might
  310. still write to the disk after FIPS has changed the hard disk structure,
  311. which may result in corrupting the disk. This is not necessarily so, I'd
  312. suppose that in most cases it would work nevertheless. But since safety is my
  313. first concern with FIPS, I would recommend booting from a DOS boot disk and
  314. then running FIPS, that should be safe.
  315. In version 1.0 I added some code by Dave McCaldon to detect Windows and
  316. Desqview (thanks, Dave!). OS/2 and Novell Task Manager are not yet detected.
  317. I had to remove the code for detecting the Linux DOS emulator because it
  318. caused a hangup on many machines.
  319.  
  320.  
  321. 7. Using FIPS
  322.  
  323. If you have prepared a bootable floppy disk as described in section 5,
  324. boot from it now.
  325.  
  326. Important! Make sure not to have a disk cache program like Smartdrive
  327. running. It has been reported that in some cases the changes FIPS made
  328. were only written to the disk in part, which resulted in hard disk
  329. corruption later. I think this may be caused by the use of Smartdrive,
  330. which in the default configuration delays the disk writes for some seconds.
  331. If you reboot too fast, some of the changes may be lost.
  332.  
  333. You start FIPS by typing FIPS at the DOS prompt, followed by <ENTER>.
  334. You may exit from the program at any time by pressing <CTRL-C>.
  335.  
  336. FIPS will first try to detect under which OS it is running. If it is
  337. Windows or Desqview, it will complain and tell you to boot from a floppy
  338. disk. You can proceed nevertheless, but this is at your own risk (see
  339. section 8).
  340.  
  341. Then FIPS will detect your hard disks, if you have more than one, it will
  342. ask you which one you want to work on.
  343. In previous releases, FIPS failed to detect the correct number of hard disks
  344. with some BIOSes (esp. in Gateway Pentium machines). I hope to have corrected
  345. this. If FIPS fails to detect the correct number of disks, please let me
  346. know. In the meantime you may use the '-n' switch to select the drive
  347. by hand (see below).
  348.  
  349. FIPS then reads the root sector of the hard disk and displays the partition
  350. table.
  351.  
  352. Example:
  353.  
  354.      |        |     Start      |      |      End       | Start  |Number of|
  355. Part.|bootable|Head Cyl. Sector|System|Head Cyl. Sector| Sector |Sectors  |  MB
  356. -----+--------+----------------+------+----------------+--------+---------+----
  357. 1    |    yes |   0  148      1|   83h|  15  295     63|  149184|   149184|  72
  358. 2    |     no |   1    0      1|   06h|  15  139     63|      63|   141057|  68
  359. 3    |     no |   0  140      1|   06h|  15  147     63|  141120|     8064|   3
  360. 4    |     no |   0    0      0|   00h|   0    0      0|       0|        0|   0
  361.  
  362.  
  363. If you don't know what to make of this, don't worry too much. You may just use
  364. the number of Megabytes to identify your partitions.
  365.  
  366. The root sector is then checked for errors.
  367.  
  368. If you have more than one partition on the disk, you will be asked which one
  369. you want to split.
  370.  
  371. The boot sector of the chosen partition is read and some information is dis-
  372. played.
  373.  
  374. Example:
  375.  
  376. Bytes per sector: 512
  377. Sectors per cluster: 8
  378. Reserved sectors: 1
  379. Number of FATs: 2
  380. Number of rootdirectory entries: 512
  381. Number of sectors (short): 0
  382. Media descriptor byte: f8h
  383. Sectors per FAT: 145
  384. Sectors per track: 63
  385. Drive heads: 16
  386. Hidden sectors: 63
  387. Number of sectors (long): 141057
  388. Physical drive number: 80h
  389. Signature: 29h
  390.  
  391.  
  392. FIPS checks if this information is consistent with the partition table and
  393. tries to detect other errors.
  394.  
  395. It then verifies if the two copies of the FAT are identical, if they are not,
  396. FIPS will exit with an error message.
  397.  
  398. If everything checks out ok, FIPS now looks for free space at the end of
  399. the partition. The new partition must have at least one cylinder, so if
  400. the last cylinder is not free, you have no chance of splitting the
  401. partition: FIPS will exit with an error message. Probably you forgot
  402. to remove a mirror or image file (see above).
  403.  
  404. You must now enter on which cylinder the new partition should start.
  405. Use the cursor keys right/left to increase or decrease the cylinder
  406. count. The size of the remaining partition and the new partition are
  407. displayed in the process, so you will have no trouble choosing the
  408. right cylinder. With cursor up/down you can change the count in steps
  409. of 10. When ready, press enter to continue.
  410.  
  411. FIPS will check again if the space for the new partition is empty -
  412. this is an additional security measure and should never show an error,
  413. since the free space was already determined before.
  414.  
  415. After this, FIPS will calculate the changes to the root sector, check the
  416. changes and display the new partition table. You may now choose to reedit the
  417. partition table (this will return you to the point where you select the par-
  418. tition) or to continue. If you type 'c', FIPS will calculate the changed
  419. boot sector, check it again and prompt you if you want to proceed. If you type
  420. 'y' then, FIPS will write the changes to the disk and exit.
  421.  
  422.  
  423. 8. After splitting the partition
  424.  
  425. Make sure that the changes have been written to the disk. If you used
  426. a disk cache like Smartdrive (despite my explicit recommendation not
  427. to use it :-), wait for some seconds so that the cache is flushed to disk.
  428.  
  429. Your new partition will be recognized by DOS after you rebooted. DO NOT
  430. WRITE ANYTHING TO THE DISK BEFORE REBOOTING. After rebooting, use CHKDSK
  431. or Norton Disk Doctor to make sure your old (now smaller) partition is ok.
  432.  
  433. There have been cases where the changes made by FIPS were not correctly
  434. written. To make sure that this is not the case, run FIPS again with the
  435. -t (test mode) switch after rebooting. Select the drive and partition that
  436. you were splitting. If FIPS displays no error until the cylinder selection
  437. dialogue, there is no problem and you can stop the program with CTRL-C.
  438. Otherwise you should undo the changes with 'restorrb' and contact me by
  439. email.
  440.  
  441. If you don't find any errors, you may now reboot with your normal config.sys
  442. and autoexec.bat. Start some programs and make sure you can still read your
  443. data.
  444.  
  445. If you want to use your new partition under DOS, you must format it. If you
  446. have multiple partitions, make sure to format the right one, the drive names
  447. may have changed!
  448. If you want to use the partition under Linux, you may now change the system
  449. indicator byte with Linux' fdisk, then use MKFS.
  450.  
  451. If you want to split the new partition again in two smaller ones, you must
  452. first format it under DOS, otherwise FIPS will complain.
  453.  
  454.  
  455. 9. Commandline Switches
  456.  
  457. Here is the explanation of FIPS' commandline switches. If you prefer the DOS
  458. style, you may use '/' instead of '-' as the switch character. The switches
  459. may be arbitrarily combined. Type 'FIPS -help' to get a list of the switches.
  460. Here is a more detailed explanation:
  461.  
  462. -t or -test : test mode (no writes to disk)
  463.  
  464. This doesn't need much explanation.
  465.  
  466. -d or -debug : debug mode
  467.  
  468. In this mode, a complete transcript of your session along with some additio-
  469. nal information is written to the file FIPSINFO.DBG in the current directory.
  470. You can send this file to me in case of trouble (see below).
  471.  
  472. -h or -help or -? : help page
  473.  
  474. A short summary of the switches
  475.  
  476. -n<num>   : select drive <num>
  477.  
  478. Preselect the drive number with this switch. Valid numbers are 128 to 255.
  479. This may also be used to override the automatic drive detection - if for any
  480. reason the drive is not found by FIPS, you may try this switch.
  481.  
  482.  
  483. 10. Troubleshooting
  484.  
  485. FIPS is still somewhat experimental, although it has been used by many
  486. people successfully and without serious problems.
  487. When in doubt I usually decided to stay safe and display error messages
  488. when encountering suspicious configurations. Some of the minor errors may
  489. be overridden.
  490.  
  491. Please make sure you have read this doc carefully and also look in the file
  492. FIPS.FAQ that covers some frequently asked questions.
  493.  
  494. If you can't resolve a problem yourself, or have a configuration not sup-
  495. ported by FIPS, or if you suspect a bug in FIPS, make a transcript of your
  496. session using the -d switch and send the full FIPSINFO.DBG file along with a
  497. short comment to schaefer@rbg.informatik.th-darmstadt.de. Possibly your
  498. problem has already been solved.
  499.  
  500.  
  501. 11. Credits
  502.  
  503. FIPS is based on the procedure described by Drew Eckhardt in Linux digest132.
  504. Most of what I know about Harddisk structures comes from the excellent german
  505. book 'Scheibenkleister II' by Claus Brod and Anton Stepper. It is for the
  506. Atari ST, but much of it applies to PCs also.
  507. Information on the Harddisk Interrupts was drawn from Ralf Brown's Interrupt
  508. List. Thanks to Hamish Coleman for some useful info and to Paul Smith for
  509. his good suggestions. Gunnar Hilmarsson suggested the procedure for stacked
  510. drives, and Miguel Alvarez helped me improve the partition ordering. Chetan
  511. Patil, Rand Phares and Eric Jung pointed me at bugs in the program and
  512. documentation. Stefan Andreasen provided important informations about OS/2.
  513. Keith Crews suggested some additions to the documentation concerning the
  514. preparation of the boot disk and new features of DOS 6.x. Dave McCaldon
  515. wrote the code for detecting the OS FIPS is running under. Scott Ellentuch
  516. and Billy Patton provided info about OnTrack Disk Manager.
  517. A very valuable piece of info on EIDE drives and address translation is the
  518. Linux EIDE-Mini-HOWTO by Patrick LoPresti.
  519. Many thanks to Gordon Chaffee for the FAT32 support.
  520. Thanks to all others who sent me feedback and suggestions. FIPS would not be
  521. the same program without the innumerable emails I received.
  522.  
  523.  
  524. Arno Schaefer
  525. schaefer@nacamar.de
  526.