File: sformat.doc

package info (click to toggle)
sformat 3.4-3.2
  • links: PTS
  • area: main
  • in suites: woody
  • size: 2,044 kB
  • ctags: 3,434
  • sloc: ansic: 20,882; makefile: 102; sh: 100
file content (527 lines) | stat: -rw-r--r-- 17,560 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
		Programmbeschreibung 'sformat'

1. Einleitung

		Das Programm 'sformat' dient zum formatieren, analysieren
		und "reparieren" von SCSI-Festplatten. Es ist in der Lage
		alle Platten, welche sich einigermaen an die SCSI-Norm
		halten, zu bearbeiten. Um auch Spezialflle bearbeiten zu
		knnen und dem Benutzer die Arbeit zu erleichtern, wurde
		das Programm mit einer Laufwerksdatenbank versehen, welche
		separat als ASCII-File vorliegt.
		
2. Aufruf
		sformat [Optionen] [target lun] [scsi-bus]

		oder

		sformat

		Im zweiten Fall werden alle SCSI-Busse gescannt und die
		Ergebnisse ausgegeben.
		z.B.

#sformat
sformat SCSI format/analyse/repair utilities
Release 3.0, Copyright J. Schilling

scg0 at esp0 initiator id 7
scg1 at esp1 initiator id 7
scsibus0:
c0t0d0		 0) 'Quantum ' 'XP34300         ' 'F76D' Disk
c0t1d0		 1) 'SEAGATE ' 'ST11200N        ' '8334' Disk
		 2) *
c0t3d0		 3) 'TOSHIBA ' 'MK537FB/        ' '6258' Disk
		 4) 'WANGTEK ' '5150ES SCSI-36  ' 'ESB6' Removable Tape
		 5) 'EXABYTE ' 'EXB-8500-85QUE  ' '0428' Removable Tape
		 6) 'TOSHIBA ' 'XM-3401TASUNSLCD' '3593' Removable CD-ROM
		 7) HOST ADAPTOR
scsibus1:
c1t0d0		10) 'QUANTUM ' 'P105SS 910-10-94' '8.9 ' Disk
		11) *
		12) *
		13) *
		14) *
		15) *
		16) *
		17) HOST ADAPTOR
Select target -1 (0 - 10)/<cr>:^C

		
3. Beschreibung
3.1 Eingaben
		Vom Benutzer werden wrend des Programmlaufs diverse
		Besttigungen bzw. Eingaben verlangt, wobei die Fragestellung
		immer so ausgelegt ist, da folgende Operationen, welche
		Schreibend auf die Platte zugreifen, mit 'y' (YES) beantwortet
		werden mssen. Wird nur <RETURN> bettigt, so wird diese
		Eingabe entweder als 'n' (NO) oder, bei numerischen Abfragen,
		als der vorgeschlagene Defaultwert gewertet.
Beispiele:

a)
Ignore old disk Label? <RETURN>
		
	Eingabe: nur <RETURN>
		Das auf der Platte gefundene primre Label wird NICHT
		ignoriert.
	
b)
Format Disk destroys all Data. Really? y <RETURN>
	
	Eingabe: y gefolgt von <RETURN>
		Der Formatierlauf wird gestartet
	
c)
Enter number of heads 12 (1 - 32)/<cr>: <RETURN>
	
	Eingabe: nur <RETURN>
		Der vorgeschlagene Wert von 12 wird bernommen.
	Eingabe: 8 <RETURN>
		Der vorgeschlagene Wert wird ignoriert und dafr der ein-
		gegebene benutzt solange er im gegebenen Wertebereich
		(hier 1 - 32) liegt.
		(VORSICHT! Man sollte in jedem Fall wissen was man tut !)
		
3.2 Ablauf
		Nach dem Aufruf des Programms werden zuerst alle Optionen
		auf Gltigkeit berprft, und die interne Ablaufstruktur
		anhand dieser bzw ihrer Argumente festgelegt. Danach werden
		die Angaben aus target, lun und scsibus ausgewertet. Sollten
		hier keine Angaben gemacht worden sein, so erfolgt nun ein
		Scan ber alle verfgbaren SCSI-Bus-Karten und man kann
		per Auswahlmen die zu bearbeitende Platte whlen.
		Werden nur Angaben ber target und lun gemacht, so wird
		automatisch scsibus 0 benutzt.
		Nachdem nun dem Programm das zu bearbeitende device und die
		Ablauffolge bekannt ist, versucht es die Platte zu identifi-
		zieren. Die sich daraus ergebenden Daten werden dem Benutzer
		in folgender Form angezeigt.

Beispiel:

root > sformat 0 0
scsibus0 target 0 lun 0
Device type    : Disk.
Version        : 0
Response Format: 1
Vendor_info    : 'EMULEX  '
Identifikation : 'MD21/S2     ESDI'
Revision       : 'E00 '
Device seems to be: Emulex MD21.
Disk formatted, Label found.
Default Disk type: 'Generic 250MB (MegaFile 1300)'
Default partition: 'Generic 250MB'
Mode Pages:        'Generic 250MB'
Ignore database disk parameters from 'sformat.dat'? 

		Sollten die letzten vier Zeilen nicht angezeigt werden, so
		befindet sich das zu bearbeitende Drive nicht in der aktuellen
		Datenbank, d.h. smtliche Parameter werden spter vom
		Benutzer erfragt, wobei das Programm immer Wertvorschlge
		macht, welche sorgfltig berprft und ggf. korrigiert 
		werden mssen.
		Wird also die Datenbank angeboten, so sollte man sie auch
		nutzen, um sich grere Tipparbeit und evtl. Fehler zu
		ersparen.
		
		Es ist auch mglich, da in der Datenbank fr eine Platte
		mehrere Parameterblcke definiert sind, oder die angeschlossene
		Platte vom datanbankeintarg abweicht. In diesen Fllen kann
		der Benutzer den passenden Eintrag auswhen indem er die Frage

Select alternate disk type? 

		mit 'y' (YES) beantwortet. Es folgt folgendes Men:
		
Available disk types:
  0)+ ( 8)      "Generic 250MB (MegaFile 1300)"
  1) ~(10)      "Internal use only 250MB"
* 2)  (12)      "CURRENT EMULEX  MD21/S2     ESDIE00 "
Select disk 1 (0 - 1)/<cr>:

		Die Disktypen 0 und 1 sind Eintrge der Datenbank und der
		Typ 2 reprsentiert die augenblicklichen Werte die die Paltte
		gemeldet hat (erkennbar an 'CURRENT').
	Symbole:
		+	Defaultparameter
		~	zu bearbeitende Platte so hnlich wie ...
		*	Drivewerte = Parameterblock
		
		Nachdem der Parameterblock gewhlt wurde werden dem Benutzer
		die Daten angezeigt und er kann entscheiden, ob die Werte
		bernommen werden sollen, oder ob er einen anderen Block
		whlen will.
		
Beispiel:

disk_type = "CURRENT EMULEX  MD21/S2     ESDIE00 "
        inquiry = "EMULEX  MD21/S2     ESDIE00 " :
        fmt_time = 2103 : veri_time = 600 :
        nhead = 12 : pcyl = 1216 : spt = 35 : secsize = 512 :
        atrk = 24 : tpz = 1 : aspz = 2 :
        track_skew = 8 : cyl_skew = 14 :
        interleave = 1 : rpm = 5400 :
        rd_retry_count = 16 :
        buf_full_ratio = 0 : buf_empt_ratio = 0 : bus_inact_limit = 616 :
        data_tr_dis_ctl = 0 :
        default_partition = "(NULL POINTER)" :

Use this disk parameters? y

		Nun wird versucht das eventuell vorhandene Label zu lesen,
		nachdem der Benutzer dies besttigt hat, und die darin
		enthaltenen Werte angezeigt.
Bemerkung:
	Wird auf der Platte ein gltiges Label gefunden es existiert aber
	kein Eintrag in der Datenbank, so kann davon ausgegangen werden,
	da die Platte schon einmal von jemandem formatiert wurde, der die
	Parameter berprft hat, und man kann die vorgeschlagenen Werte
	bernehmen. Damit wird das Drive wieder seinen Parameterzustand haben,
	wie vor dem Formatlauf. Es werden also auch hier durch einfaches
	Besttigen keine Daten auf dem Laufwerk verndert.
	Wurde kein gltiges Label gefunden, so werden die Hersteller-
	defaults vorgeschlagen, soweit ermittelbar.
		
Beispiel

Ignore old disk Label? 
<Generic 250MB cyl 1210 alt 1 hd 12 sec 34>
Sektorsize   : 512 Bytes
Sektors/Track: 35 alt 1
Cylinders:     1216 alt 2
Heads:         12
		
		Von hier an werden die Parameter des Laufwerks festgelegt.
		Wenn die Datenbank benutzt wird und keine Werte gendert
		werden mssen, folgen nun nur einige Besttigungen.
		
Beispiel:

Modify Disk Parameters? <RETURN>
Modify Error recovery Parameters? <RETURN>
Modify Disconnect Parameters? <RETURN>
Select alternate Label? <RETURN>
Modify Label Parameters? <RETURN>
Modify SCSI Parameters? <RETURN>

		Wird die Datenbank nicht genutzt, so wird nicht gefragt welche
		Gruppe gendert werden soll, sondern alle Parameter werden zum
		ndern angeboten.
		
		Sind alle Parameter eingegeben, wird das Bestehenbleiben der
		Grown-Defektlist erfragt, die Formatierzeit abgeschtzt
		und bei Besttigung der Formatierlauf gestartet, nachdem
		das Laufwerk auf die bekannten Werte gesetzt wurde.

Beispiel:

Clear old grown defect list ?
Estimated time: 9 minutes
Format Disk destroys all Data. Really? y <RETURN>
Mon Jun 14 14:35:46 1993
Save Mode Parameters 00 00 00 08 00 00 ...
Save Mode Parameters 00 00 00 08 00 00 ...
Save Mode Parameters 00 00 00 08 00 00 ... 
Save Mode Parameters 00 00 00 08 00 00 ...
Formatting ... done.
Capacity: 494088 Blocks = 247044 kBytes = 241 MBytes
Sectorsize: 512 Bytes
		
		Ist dieser Schritt vollzogen, knnen die Werte fr die
		Partitionstabellen eingegeben, gendert oder besttigt
		werden. Sind alle Angaben gemacht worden, werden die Label-
		daten ausgegeben und eine ASCII-Grafik symbolisiert die 
		Lage der einzelnen Partitionen auf der Platte.
		Der Benutzer kann nun entscheiden, ob die aktuellen Werte
		bernommen werden sollen.
	Anmerkung
		An dieser Stelle knnen nur noch die Daten der Partitions-
		tabelle und des Labelstrings gendert werden, nicht mehr die
		Geometrie.
		
Beispiel:

Label: <Generic 100MB> change ? 
Volume Name: <> change ? 
Change partitition table? 
label:      <Generic 100MB cyl 975 alt 1 hd 6 sec 35>
volname:    ''
rpm:        3662
pcyl:       1019
apc:        0
interleave: 1
ncyl:       975
acyl:       1
nhead:      6
nsect:      35
Part     Tag Flag  Cylinders Startsec # of Sec      Size    Blocks
0       root wm     0 -  233        0    49140     23.99MB (234/0/0)
1       swap wu   234 -  467    49140    49140     23.99MB (234/0/0)
2     backup wu     0 -  974        0   204750     99.97MB (975/0/0)
4 unassigned wm   281 -  467    59010    39270     19.17MB (187/0/0)
5 unassigned wm   468 -  974    98280   106470     51.98MB (507/0/0)
6        usr wm   468 -  974    98280   106470     51.98MB (507/0/0)
Checksum: 0xA914

0 I------------------/
1                   /------------------/
2 I---------------------------------------------------------------------------I
3 partition not defined
4                       <--------------/
5                                     /---------------------------------------I
6                                     /---------------------------------------I
7 partition not defined
WARNING:
part '4' has unaligned start.

Use this label?

Change partitition table? 
		Wird diese Frage mit 'y' beantwortet, dann bekommt man 
		ein Menu fr alle Partitionen angezeigt.
		Wird bei einer Partition die Frage:
Change ?
		mit 'y' beantwortet, dann kann die Partition gendert
		werden. Teilweise kann man '?' eingeben und bekommt Hilfe.
		
		Die Frage:
Enter starting cylinder 0 (0 - 975)/<cr>:

		kann statt mit einer Zylindernummer auch mit '>'
		beantwortet werden. Dann schliet sich diese Partition
		an die vorhergehende an.
		Mit '>4' zeigt man an, da man die aktuelle Partition
		an die Partition 4 anschlieen mchte.

		Die Frage:
Enter number of blocks 49140, 234/0/0 (0 - 204750)/<cr>:

		kann entweder mit einer Anzahl von Blcken oder mit
		einer Zylinder Angabe beantwortet werden.
		Bei letzterer Methode gilt: 234/ als 234 Zylinder oder
		234/2/3 als 234 Zylinder, 2 Spuren und 3 Sektoren.

		Mit der Eingabe 20M wird die Partition ca. 20MBytes gro.
		Die Gre wird in diesem Fall auf ganze Zylinder aufgerundet.

		Mit der Eingabe '$' reicht die Partition bis zum Ende der
		Platte.

		Mit der Eingabe '>' wird bewirkt man, da die aktuelle
		Partition bis zum Begin der nchsten Partition reicht.
		Mit '>4' wird bewirkt, da die aktuelle Partition
		bis zum Beginn der Partition 4 reicht.
		

Use this label ?

		Werden die angezeigten Daten bernommen, so folgt nun die
		berprfung des Plattenmediums mittels einer bestimmten
		Anzahl an Verifydurchlufen. Sollte in der Datenbank,
		in der Kommandozeile oder wrend des Programmlaufes kein
		anderer Wert angegeben worden sein, so wird die Platte
		fnfmal verifiziert.
		Abschlieend werden die Labelsektoren (prim. Label und
		Backuplabel) geschrieben, die aktuellen Defektlisten werden
		gesichert und das Laufwerk erhlt seinen Plattenschutz.
		
4. Optionen

	-a
	-auto
		Diese Option ist nur im Produktionsbereich einer Firma
		zulssig. Im Automatikmode werden von Benutzer keine Daten
		abverlangt, er mu nur die Frage
		"Format Disk destroys all Data. Really?"
		besttigen, um versehentliches Zerstren der Daten auf dem
		Laufwerk zu vermeiden.
		Smtliche drivespezifischen Werte werden der Datenbank ent-
		nommen, sollte kein Eintrag fr das Laufwerk vorhanden sein,
		so kann es nicht in diesem Modus bearbeitet werden.
		 
	data=name
		Name der Laufwerksdatenbank (default = sformat.dat)
		Falls eine Datenbank existiert, welche nicht den Defaultnamen
		trgt, so kann auch diese verwendet werden.
		
	debug=#,d=#
		Wert fr Treiberdebugging.
		
	-defmodes
		Beim Lesen der Mode-Pages wird das Holen der Defaultwerte
		erzwungen.
		
	-dmdl
		Das Formatieren erfolgt ohne Bercksichtigung der Hersteller-
		Defektliste. Bereiche auf dem Plattenmedium, welche vom
		Hersteller als defekt erkannt wurden, sind also verfgbar,
		es mu also auch mit Fehlern beim verifizieren der Platte
		gerechnet werden.
		Idealfall: alle Fehler werden gefunden und ausgelagert =>
			keine Datengefahr
		sonst:  kein oder nur einige Fehler werden erkannt =>
			beim spteren Betrieb der Platte knnen 
			Daten "umkippen".
			
	-force
		Programmfortsetzung wird auch nach auftreten eines Fehler beim
		formatieren erzwungen (Benutzerbesttigung)

	-greassign
		Die erfragte Blockadresse wird ausgelagert (reassign block).
		(vgl. -reassign / Guru mode)

	-help
	-h
		Onlinehilfe ber die Ablaufoptionen (vgl. xhelp)
        		
        -inq
		Gibt die ber das INQUIRY-Kommando gewonnenen Informationen
		auf dem Bildschirm aus.
		
	-label
	-l
		Produziert ein File namens 'Label' und legt dort die mit dem
		Programm gewonnenen Labelinformationen ab. Dieses File kann
		z.B. als Prototype benutzt werden.

	lname=name
		Name des Files welches mit der Option -label erzeugt werden
		soll.

	-no_defaults
		Beim Lesen der Mode-Pages wird das Holen der Currentwerte
		erzwungen.

	-noformat
		Das Formatkommando wird unterdrckt, ansonsten bleibt der
		Ablauf erhalten. Diese Option wird hauptschlich zum
		analysieren von neuen Platten benutzt (Zeitersparnis).

	-nomap
		Die SCSI-Adresse des zu bearbeitenden Laufwerks wird nicht in
		den logischen Disknamen besetzt.
		Diese Option ist evtl. sinnvoll, falls sich die Platte im
		unformatierten Zustand nicht so verhlt wie es der SUN-Treiber
		erwartet. (System knnte 'hngen')

	-nowait
		Nach dem Formatierlauf wird das aktuelle Label ohne Frage nach
		nderungen bernommen.

	-prdefect
		Gibt die Defektlisten vom Laufwerk in verschiedenen Formaten
		aus.

	-prgeom
		Gibt die aktuelle Diskgeometrie aus
		
	-Proto
		Generiert einen Datenbankeintrag fr die aktuelle Platte.
		
	-tr,-t
		bersetzen von Blocknummern in Zylinder-, Kopf- und
		Sekorangaben (wird nur von wenigen Kontrollern untersttzt
		z.B. ACB 40XX).

	-r
		Reformat only mode. Etwas weniger verwirrende Meldungen
		wenn Generic Label verwendet werden.

	-randrw
		Random R/W-Test, der Datenbestand auf der Platte wird nicht
		zerstrt, solange keine Schreibfehler auftreten.

	-reassign
		Erweitertes reassign block; Es wird versucht die Daten des
		angegebenen Blocks zu retten, um die Struktur der Platte zu
		erhalten. Danach werden Refreshversuche unternommen. Sollten
		diese fehlschlagen, so wird der Block ausgelagert, ansonsten
		kann der Benutzer entscheiden, ob der Block weiter benutzt
		werden soll.
		
	-repair
		Kombination aus -verify und anschliessendem -reassign.

	-scsi_compliant
		Sformat soll sich so weit wie moeglich an die SCSI-Norm halten
		und auf Platten, welche eine Sonderbehandlung verlangen, keine
		Ruecksicht nehmen.

	-silent,-s
		Statusmeldungen fr fehlgeschlagene Kommandos werden unter-
		drckt.

	-smp
		Die Mode-Parameter werden nicht sofort auf dem Drive
		gespeichert, sondern vorerst nur als 'current' gesetzt.
		(evtl. sinnvoll bei unformatierten Platten)
		Wenn nicht formatiert wird, so sind die Werte nur bis
		zum Abschalten der Betriebsspannung aktiv.
		Achtung! Es gibt einige Werte welche erst nach einem 
			 erfolgreichen Formatierungslauf aktiv sind.

	-verbose,-v
		Ausgabe von Detailinformationen (z.B. CDB der SCSI-Kommandos).

	-verify
		Verifizieren des Plattenmediums. Die Daten des Laufwerks
		bleiben erhalten, die Defektlisten werden nicht aktualisiert
		und es findet nur ein Durchlauf statt.

	-wrveri
		Diese Option greift nur nach einem erfolgreichen Formatierlauf.
		Es werden beim verifizieren der Disk auch Daten geschrieben,
		allerdings geschieht das nur bei jedem zweiten Durchlauf, d.h.
		der Verifycounter mu mindestens auf zwei stehen (V=2).
			
	-xhelp
		Onlinehilfe ber die Optionen der Driveparameter (vgl. help)

5. graphische Labelauswertung

		Wie oben schon erwhnt, wird die Lage der Partitionen durch
		eine einfache ASCII-Grafik dargestellt. Dabei werden einige
		Symbole und Kommentare verwendet, welche hier nher be-
		schrieben werden.
		
Beispiel:
		
a I--/
b    /-----------/
c I---------------------------------------------------------------------------I
d partition not defined
e             <--/
f                /--------/
g                                        <------------------------------------I
h                         /---------------------------------------------------I
WARNING:
part 'e' has unaligned start.
part 'g' has unaligned start.

	Symbole:
		I - logischer Anfang bzw. Ende der Platte
		X - Partition zu gro
		/ - direktes Anschlieen an eine andere Partition
		+ - zwei oder mehr Partitionen haben den gleichen Anfang bzw.
		    Ende, schlieen aber an keine andere Partition an
		< - Anfang einer Partition besitzt keinen Anschlu
		    an eine andere Partition
		> - Ende einer Partition besitzt keinen Anschlu
		    an eine andere Partition
		* - interner Fehler
		
	Errors:
	
	ends behind lncyl   -	Partition grer als zulssig
	One or more parts are not within range of part 'c'!
	
	Warnings:
	
	unaligned start	    -	Startpunkt besitzt keinen direkten Anschlu
	unaligned end	    -	Endpunkt besitzt keinen direkten Anschlu
	space before start  -	Bereichsstck vor diesem Startpunkt wird
				durch keine andere Partition auer 'c' genutzt
	space before start  -	Bereichsstck nach diesem Endpunkt wird durch
				keine andere Partition auer 'c' genutzt