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
|