FreeBSD growfs README


Disclaimer

This is the third visible and first public snapshot of growfs(8). It is still considered alpha quality [M$ would call that servicepack-1 :-)]. So don't use this for any production system. So please be prepared, that it will format your entire harddisk :-), you have been warned. If you are still happy to give it a try, feel free to do so. We are happy to receive your comments.

Tips

Update your fsck(8) with the following patch if you plan to grow file systems which are nearly full in the first cylinder group. This should not be the case in FreeBSD-current after the 2000-12-10. If you plan to use that utility on FreeBSD-4, FreeBSD-3 (tested) or even on FreeBSD-2 (not tested) you still have to manually apply that patch!

===== 8< ===== 8< ===== 8< ===== 8< ===== 8< ===== 8< ===== 8< ===== 8< =====
*** pass1.c	Fri Sep  8 00:36:51 2000
--- /usr/src/sbin/fsck/pass1.c	Sun Aug 29 17:13:06 1999
***************
*** 72,91 ****
  		cgd = cgdmin(&sblock, c);
  		if (c == 0) {
  			i = cgbase(&sblock, c);
- #ifdef NO_RELOC_FSCS
  			cgd += howmany(sblock.fs_cssize, sblock.fs_fsize);
- #endif /* NO_RELOC_FSCS */
  		} else
  			i = cgsblock(&sblock, c);
  		for (; i < cgd; i++)
  			setbmap(i);
  	}
- #ifndef NO_RELOC_FSCS
- 	i = sblock.fs_csaddr;
- 	cgd = i+ howmany(sblock.fs_cssize, sblock.fs_fsize);
- 	for (; i < cgd; i++)
- 		setbmap(i);
- #endif /* NO_RELOC_FSCS */
  	/*
  	 * Find all allocated blocks.
  	 */
--- 72,83 ----
===== 8< ===== 8< ===== 8< ===== 8< ===== 8< ===== 8< ===== 8< ===== 8< =====
  

It is strongly recommended to use fsck(8) immediately after growing, before mounting the filesystem. We currently don't set the unclean flag, just to allow for our own permanent stress tests. In theory [as in all our recent tests :-)] fsck should not find anything.

In the event of a relatively full first cylinder group, growing might relocate a crutial structure to a new location, which is not properly handled by an unpatched fsck(8). You can use ffsinfo(8):

ffsinfo -g 0
  

and check the output file /var/tmp/ffsinfo if there is some space available in the first cylinder group. Watch for free blocks not free frags.

Bug reports

When you wan't to send bugreports, please include some dumps describing the filesystem you were growing. We need the following three dumps.

  1. ffsinfo of the unmounted filesystem before growing
  2. ffsinfo of the unmounted filesystem immediately after growing
  3. ffsinfo of the growed and now fsck'ed filesystem

If the last two files are the same, then the growing went fine, if not, then fsck fixed something, and there we'd like to know what. As these two dumps are almost the same, it's OK, to mail just the diff of the last two dumps and one of them. But in any case we need the first dump as well. Please make sure to use the patched version of fsck(8)!

Contact

If you found some problems, please feel free to send a mail to:

growfs @ tomsoft . com

Contact tomsoft@FreeBSD.ORG
Last modified: 2000/12/10 18:15:54
© 2000 Th.-H.v.Kamptz.
All rights reserved.