Prietenul meu Bogdan mi-a dat recent un harddisk vechi, Seagate ST-225 (20MB, MFM) pentru colectie. Cand l-am primit nu arata prea bine: parea ca in ultimele decenii ar fi fost mutat dintr-un loc in altul si ii lipsea si conectorul de alimentare. Nu ma asteptam sa functioneze dar o incercare nu strica. Am lipit un conector de alimentare, sa vad mai intai daca porneste; conectarea la un computer potrivit e ceva mai dificila. Surprinzator porneste si nu e foarte galagios (zgomotul prea puternic nu ar fi semn bun). Isi face autotestul si continua sa se invarta. Promitator, merita efortul sa pun pe masa un computer vechi pentru mai multe investigatii.
Interfata MFM inseamna ca trebuie un computer fara controller IDE, in care sa instalez un controller MFM. Desi am un asemenea computer, este amplasat intr-un rack si e cam greu de demontat. Am un alt 286 (Everex 286/12MHz) dar cu HDD IDE. Din fericire, Everex-ul nu are placa "Super-IO" (o singura placa ISA cu porturi seriale, paralel, floppy, IDE) ci are porturile seriale si paralel pe placa de baza plus o placa de extensie IDE+Floppy. Separat am si un controller MFM+floppy care se potriveste foarte bine in locul celui IDE+floppy. Exact ce trebuie (si stiu ca functioneaza impreuna, le-am mai folosit asa).
Primul pas: Sa pun computerul pe masa si sa il verific in configuratia initiala. Il pornesc si - pentru ca nu are baterie pentru CMOS - se plange de setari. In timp ce ma uitam prin ecranul CMOS SETUP dispare alimentarea. De fapt aproape dispare: in timp ce duceam mana spre intrerupator am apucat sa vad ca LED-urile de pe tastatura inca sunt aprinse. Dar disparuse imaginea de pe ecran, iar ventilatorul si harddiskul se oprisera. Ma bucur ca nu s-a auzit nici un pocnet dar sunt putin ingrijorat. Lipsa unei alte surse AT la indemana face lucrurile cam dificile.
In speranta ca problema sursei nu se va agrava daca o pornesc fara sarcina (unele surse vechi necesita sarcina minima), deconectez tot, ma pregatesc cu multimetrul si incerc o pornire. Aud ventilatorul si.. voltajele sunt in regula. Nu e chiar bine: daca sursa e functionala, atunci cel mai probabil placa de baza e defecta. Se poate sa fie o problema ca sursa sa nu mearga in sarcina dar nu prea cred. In speranta ca poate a fost o problema tranzitorie sau poate cu orice altceva decat placa de baza, o conectez doar pe aceasta si mai incerc odata. Liniste (ventilatorul nu porneste) dar LED-ul de alimentare se aprinde. De fapt cand opresc alimentarea vad ventilatorul incercand sa porneasca. Asta imi sugereaza probleme pe bara de 12V, dar placa de baza singura nu prea trage curent din 12V. Aici e tehnica veche, totul e pe 5V, nu sunt surse in comutatie pe placa de baza.
Dar are condensatori cu tantal. Care se mai defecteaza punandu-se in scurt. Deconectez tot si masor rezistenta intre pinul de 12v si masa. Nu e scurt, dimpotriva, rezistenta infinita. In schimb pe -12V este scurt la masa. Gasit! Banui ca -12V este folosit doar pentru porturile seriale si singurul condensator care pare conectat la -12V e fix langa conectorul de alimentare
Dupa extragerea condensatorului suspect placa nu mai prezinta scurt intre -12V si masa iar condensatorul intr-adevar este in scurt. Gasesc unul similar (putin mai mare ca dimensiuni): 22µF / 25V. E cam vechi dar nefolosit. Il montez, pun totul la loc si repornesc computerul.
Porneste normal, apare si imaginea dar in timpul testului de memorie se aud pocnete suspecte. Deconectez imediat, dar a iesit deja putin fum. O privire la placa de baza confirma ca noul condensator pare sa fie cauza. Arata putin carbonizat dar totusi pot vedea ca l-am montat corect. Nu mai am altul similar cu tantal deci trecem la electrolitic. Dezlipit, curatat gaurile, montat un electrolitic (mai nou), reconectat.
De data asta sunt mai prudent: introduc sondele multimetrului in conectorul de alimentare si la pornire sunt cu ochii pe tensiune. -12.07, constanta. Condensatorul ramane rece. Presupun ca ce pusesem eu in loc era gata defect, presupun ca era mai vechi decat acest computer (poveste lunga) deci nu imi mai bat capul.
Inapoi la primul pas. Odata rezolvate problemele de alimentare, computerul functioneaza OK. Booteaza de pe harddiskul IDE dupa ce ii fac setarile in BIOS, dar ii lipseste placa de retea. Asa e, acea placa a ajuns in Rohde&Schwarz. In treacat fie spus, asta inseamna ca au trecut mai bine de doi ani de la ultima pornire a acestui 286. Iau alta placa (noroc ca mai am cateva placi Ethernet ISA care functioneaza cu cablu UTP), programul pentru configurarea placii este deja pe harddiskul Everexului iar placa este compatibila NE20001.
Pasul doi: reteaua. Pornesc serverul Novell Netware 3.122 (in continuare favoritul meu pentru retele DOS), configurez placa si, mai repede decat gaseste Windowsul vecinii de la "Network Neighborhood", sunt conectat. Motivul pentru care vreau retea este ca dupa ce instalez controllerul MFM nu voi mai avea decat unitate floppy si harddiskul de la care am pornit tarasenia si pe care vreau sa il copiez (daca se va putea). Pe de alta parte, pe serverul Novell am de toate: spatiu la discretie (gigabytes!), Borland C (compilator si mediu de dezvoltare) si asa mai departe. Plus ca vreau sa transfer imaginea discului pe un computer contemporan. Acum niste ani am scris un programel simplu in C pentru a copia imaginea unui harddisk din DOS. Rezultatul este similar cu rularea comenzii "dd if=/dev/... of=fisier conv=noerror,sync" sub Linux.
Pasul trei: crearea unei diskete de boot cu ipx si netx (pentru conectare la Novell) si testarea acesteia. Rezolvat fara probleme.
La prima pornire (de pe disketa) totul pare ok, harddiskul contine un volum Stacker - nu e chiar o surpriza, am folosit si eu Stacker pe un harddisk similar in Junior-XT. Surpriza insa este data cand a fost instalat: 23 Martie 1997. Desi in Romania PC-urile au ajuns dupa 1990 si o vreme am fost "decalati", prin 1997 cam ajunsesem la nivelul "Occidentului". Cu alte cuvinte, utilizarea unui harddisk de 20MB in 1997 (cand deja aparusera si pe la noi harddiskuri de 1GB) este putin curioasa. Incercand sa ma uit in fisierul stacker.log dau de primul sector defect al harddiskului. Tentativa de a crea o imagine cu programul meu pare sortita esecului: capetele 1 si 2 dau erori de citire la aproape fiecare sector. (HDD-ul are 2 platane si 4 capete, numerotate de la 0 la 3)
Resemnat ca nu voi reusi sa recuperez mare lucru - e doar un experiment - pornesc programul sa citeasca si sa faca imagine. In timpul citirii incerc sa asez unitatea mai bine - manualul spune ca acestui harddisk nu ii place sa stea "cu burta in sus" - iar cand ridic harddiskul in mana dispar erorile! Cand il asez la loc erorile reapar, dar cateva piste mai departe, adica sunt cateva piste care par sa fi fost citite in intregime fara erori.
Aceasta versiune a programului meu afiseaza doar erorile - in ideea ca redirectionez mesajele intr-un fisier si stiu ce sectoare nu au putut fi citite. In situatia de fata, insa, abordarea "tacerea e semn bun" nu e cea mai fericita: uneori tacerea poate insemna doar ca interfata se lupta cu harddiskul. Modific programul a.i. sa afiseze atat succesele cat si erorile, pe ecran cat si intr-un fisier separat. Maresc numarul de reincercari/sector la 10, (de la 5 cat stabilisem initial) si mai incerc odata. Intr-adevar cand legan unitatea perpendicular pe axa de rotatie citirile par sa decurga OK. Banuiesc ca acest tratament nu ii face chiar bine harddiskului dar pentru o singura citire (mai ales ca acum sunt si mai curios ce contine) pare sa functioneze. In caz ca vrea cineva sa incerce, atentie: L-am leganat usor!. Miscarile mele au fost fluide, nu am lovit harddiskul si nu am batut in el; de fapt cred ca asta ar fi fatal.
Leganarea a functionat. La a doua tentativa programul a citit fara erori tot discul, cu doar cateva reincercari. Adeseori au fost citite piste intregi (programul incearca intai sa citeasca intreaga pista; daca nu reuseste incearca fiecare sector de maxim 10 ori). Reusita a venit exact cand ma gandeam sa modific programul a.i. la o rulare ulterioara sa reciteasca doar sectoarele cu probleme. De vreme ce a fost citit integral, ramane pentru alta data. Transfer imaginea harddiskului intr-un emulator, il pornesc si...
Mai ramane WORK si aici am o surpriza personala. Contine sursele pentru un editor grafic pe care l-am creat pentru firma lui Bogdan prin 1995-1996. Programul era parte dintr-un sistem de urmarire a productiei creat pentru o fabrica de tricotaje (Trico-Prompt S.A.). Editorul era folosit pentru a desena schite ce erau apoi incluse in fisele de productie si includea si un driver de imprimanta Epson ESC/P3. In afara de asta mai sunt cateva programe in limbaj de asamblare scrise de Bogdan pentru monitorizarea unei masini de tiparit ziare (imi amintesc de acest proiect, folosea o interfata hardware speciala constand dintr-un calculator COBRA modificat).
In primul rand, harddiskul ST-225 isi merita reputatia: in ciuda varstei si a conditiilor de stocare, a putut fi citit in intregime dupa 20 de ani!
In al doilea rand, nu stiu exact de ce (presupun ca are legatura cu modificarea distantei intre cap si platan datorita efectului giroscopic al platanelor in miscare), leganarea harddiskului a avut succes deplin. Mai aveam unul cu simptome similare si asa am reusit sa il citesc si pe el in intregime folosind aceeasi metoda. Din pacate al doilea era formatat (din DOS, deci zona de date contine ceva). Am pastrat si imaginea lui pentru eventuale investigatii.
In sfarsit de avut in vedere ca defectul condensatorilor cu tantal poate fi un scurt-circuit iar simptome care la prima vedere par dramatice (lipsa alimentare, fum etc.) pot avea uneori rezolvari banale.
Am demontat sursa Everexului si am testat condensatorii dar aproape toti erau in regula (atat capacitate cat si ESR). Mai mult, tensiunea de -12V este stabilizata cu un integrat 7912 (liniar) deci e putin probabil sa fi cauzat problemele cu condensatorii de pe placa de baza.
Partea a doua cu sursele programului DOS (pentru citit harddiskul), descrierea procedurii precum si un film aratand manifestarea in timpul "leganarii" va urma curand este aici.
↑1 NE2000: tip de placa de retea extrem de raspandit in anii '90. Fiind atat de raspandita, driverele pentru ea sunt foarte usor de gasit
↑2 Novell Netware: de obicei i se spunea doar Novell: server de fisiere pentru retele sub sistemul de operare DOS. Serverul ruleaza propriul sau sistem de operare iar pe statiile client, dupa incarcarea unor programe (ipx si netx, relativ mici) in memorie se prezinta ca un alt disc logic. Era extrem de versatil si avea o multime de facilitati care au aparut mult mult mai tarziu chiar si in lumea Unix/Linux (ex. ACL - liste de control acces). Vezi wikipedia (engleza).
↑3 Epson: Aplicatia rula sub DOS deci nu existau drivere de imprimanta. Programul genera comenzile pentru imprimanta folosita de client si le transmitea direct la portul paralel.