FreeBSD growfs Liesmich


Dementi

Beschreibung zum dritten existierenden und ersten öffentlichen Auszug von growfs(8). Der momentane Zustand darf als alpha Qualität betrachtet werden [M$ nennt sowas dann ja schon servicepack-1 :-)]. Es ist nicht empfohlen den aktuellen Code im produktiven Umfeld zu verwenden. Wir formatieren ihre Festplatte, wir haben sie gewarnt :-). Wenn Sie dennoch einen Versuch wagen sollten, dann frisch voran. Wir freuen uns auf ihre Bemerungen.

Tips

Bringen sie unbedingt fsck(8) auf einen aktuellen Stand, wenn Sie Dateisysteme erweiteren wollen, die fast vollständig gefüllt sind. Das ist nicht nötig für FreeBSD-current nach dem 10. Dezember 2000. Sollten Sie growfs auf FreeBSD-4 oder FreeBSD-3 (getestet) oder gar FreeBSD-2 (ungetestet) ausprobieren wollen, dann müssen Sie den Patch manuell einspielen:

===== 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< =====
  

Wir empfehlen nachdrü>cklich unmittelbar nach dem Vergrößern des Dateisystems, noch vor dem mounten dessen Konsistenz mit fsck(8) zu überprüfen. Wir erzwingen das derzeit nicht durch das Setzen der entsprechenden Markierung um unsere permanenten Streßtests durchführen zu können. Theoretisch [wie all unsere letzten Tests zeigten :-)] sollte fsck(8) keine Inkonsistenz finden.

Im Falle einer fast vollen ersten Cylindergruppe, müssen wir eine sehr wichtige Datenstruktur verlegen, was nicht vom bisherigen fsck beachtet wird. Benutzen Sie ffsinfo(8):

ffsinfo -g 0
  

und untersuchen sie die Datei /var/tmp/ffsinfo, ob noch genügend Platz in der ersten Zylindergruppe vorhanden ist. Aachten sie hierbei auf den Wert der freien Blöcke, und nicht auf die Fragmente.

Fehler

Wenn sie uns Fehler mitteilen wollen, bitte fügen sie uns einige Angaben zu dem Dateisystem hinzu. Wir brauchen die folgenden drei Abzüge.

  1. ffsinfo des nicht gemounteten Dateisystems vor dessen Vergrösserung
  2. ffsinfo des nicht gemounteten Dateisystems unmittelbar nach dessen Vergrößerung
  3. ffsinfo des vergrößerten und mit fsck reparierten Dateisystems

Sind die letzten zwei Auszuege identisch, ist das Dateisystem bereits korrekt vergrößert worden. Unterscheiden sich die beiden, dann würden wir gerne wissen wollen wo. Da beide Auszüge nahezu identisch sind genügt einer von beiden und der diff zwischen beiden. Wichtig ist in jedem Fall aber auch der erst Auszug. Beachten sie hier noch einmal, nur die korrigierte Version von fsck zu verwenden. Anderenfalls wird fsck ihre Daten auf der Platte beschädigen.

Kontakt

Sollte sie Probleme bemerken, dann schreiben Sie uns bitte an:

growfs @ tomsoft . com

Kontakt: tomsoft@FreeBSD.ORG
Letzte Änderung: 10.12.2000 18:15:38
© 2000 Th.-H.v.Kamptz.
Alle Rechte vorbehalten.