MyDOS VTOC Fixer v1.1


1. WSTĘP

      Czy zdażyło wam się kiedyś,że jakiś plik (mam nadzieję, że zbędny) nie pozwalał się "odpalić", a każda próba jego otwarcia do poprawy (czy nawet skasowania) go kończyła się komunikatem o błędzie?

      A może (z bliżej nieokreślonego powodu, zwanego Toms Navigator 1.1B...) jakieś pliki czasem znikały z dyskietki (co ciekawe, wraz z zajmowanymi przez siebie sektorami)?

      A może udało wam się zrobić "chiński" sektor (paluszkiem?), który spowodował niemożność zapisu czegokolwiek na dysk, lub skasowania pliku z tą fanaberią...?

2. TROCHĘ KONKRETÓW

      A może wystarczy już tych "może" i zacznie się coś ciekawego?

      Otóż Robert Puff (znany choćby z doskonałego Disc Communicatora 3.0) stworzył w roku 1988 program VTOC Fixer dla MYDOSa, który skutecznie usuwa opisane wyżej błędy (i kilka innych) z dysku operując na tabeli zawartości volumenu (VTOC). Program powstał pierwotnie do "naprawy" dysków twardych, ale doskonale radzi sobie też z dyskami MYDOSa. Powinien również poprawnie działać z dyskietkami DOSa 2.0 i 2.5.

3. TROCHĘ TEORII

      Po tym przynudnym wstępie, opiszę krótko metodę działania tego programu.

      Program czyta kolejno wszystkie pliki na dysku (działa poprawnie również z podkatalogami) i bada które sektory są zajmowane przez badany plik. Na tej podstawie tworzy w pamięci nową VTOC. Po zakończeniu czytania - porównuje stworzoną przez siebie VTOC z tą, która znajduje się na dysku.

W trakcie pracy, program sprawdza między innymi:

  • a) Czy poprawna jest nazwa pliku, tzn. czy w nazwie nie występują znaki niedozwolone (plik taki jest niedostępny i niekasowalny)?
  • b) Czy na dysku znajdują się błędne sektory? Czasami na dysku (dotyczy to szczególnie HDD ) znajduje sie sektor, który powoduje wystąpienie błędu w czasie próby zapisu w nim danych (lub ich zmiany). Efektem tego jest zablokowanie możliwości zapisu czegokolwiek na taki dysk (lub partycję HDD) lub skasowania (poprawienia) pliku zawierającego taki sektor. Można, oczywiście skopiować wszystkie pliki, sformatować dysk i "zgrać" je ponownie, ale mając stację o dużej pojemności (i w dodatku bez "turbo" - np. XF551 bywa to czasami bardzo czasochłonne i nie zawsze powoduje pożądany skutek.
  • c) Czy poprawne są bajty łącznikowe? Jeśli z jakiegokolwiek powodu bajty łącznikowe (na końcu każdego sektora) wskazują, że następny sektor pliku ma numer 1, 2, 3 (sektory BOOTowe) lub numer wskazywanego sektora jest wyższy od największego numeru na dysku, to w przypadku odczytu takiego pliku występuje błąd nr $8B (139). VTOCFixer zasygnalizuje taki błąd komunikatem "BAD RANGE". Jeśli bajty łącznikowe wskazują siebie wzajemnie, program powiadomi nas o tym komunikatem "LOOP ERR" (UWAGA: jest to czasem stosowana metoda zabezpieczenia przed kopiowaniem!).
  • d) Czy na dysku znajdują się pliki kolidujące ze sobą? Kolizja plików następuje wtedy, gdy sektor zajmowany przez plik (katalog, podkatalog, VTOC) zostanie nadpisany przez inny plik (katalog, podkatalog...). Przyczyną takiego błędu jest najczęściej błąd w VTOC na dysku. Program informuje o kolizji komunikatem "COLLISION".
  • e) Czy wszystkie pliki mają poprawną długość? Błędna długość pliku jest najczęściej skutkiem nadania dwum (kilku) plikom tej samej nazwy. W efekcie ilość czytanych sektorów danego pliku jest niezgodna z podaną w katalogu, gdyż kilka plików zawiera "wspólne" sektory. Program powiadomi nas o tym informacją "BAD LENGTH".
  • f) Czy poprawna jest wersja DOSa (dotyczy głównie HDD)? Wszystkie wcześniejsze wersje MYDOS (o numerze mniejszym niż 4.50) posiadają błędy w procedurach obsługi HDD (głównie formatowania). Z tego powodu najczęściej błędnie jest podawana ilość wolnych sektorów w danej partycji. Różnice mogą wynosić nawet 200 sektorów! VTOCFixer zlicza wszystkie sektory na dysku i tylko na tych danych opiera swoje kalkulacje. Wszystkie pliki w których wykryto błędy, program może skasować, a ewentualne błędne sektory oznaczyć w nowej VTOC jako zajęte.
4. TROCHĘ PRAKTYKI

      Teraz opiszę postępowanie podczas używania programu. Program zawarty jest w pliku VTOCFIX.COM. Po jego uruchomieniu - pyta o numer stacji, w której znajduje się dyskietka, którą mamy skontrolować, przy czym dyskietka nie powinna być zabezpieczona przed zapisem. Następnie odpowiadamy na pytanie: "Verify files to delete?" (Potwierdzać kasowanie plików?). Podanie w odpowiedzi "Y" spowoduje, że każdorazowo przed kasowaniem pliku zawierającego błędy wymagana będzie odpowiedź na pytanie: "Delete? (Y/N)". Jeżeli w odpowiedzi na pytanie "Verify files..." podamy "N" to wtedy wszystkie operacje (kasowanie, zapis poprawnej VTOC) będą przebiegać automatycznie. Dalej, program ustala ilość sektorów na dysku i pyta, czy jest to poprawna wartość. Jeśli tak - wciskamy "Y". Jeśli program błędnie ustalił liczbę sektorów, odpowiadamy "N" i podajemy właściwą ilość. Jeśli jest ona jednak nadal błędna (np. zbyt duża) - program będzie pytał o poprawną aż do skutku. Po tej serii pytań program zacznie już wykonywać swoją pracę. W trakcie pracy wyświetlony jest komunikat "Processing files:" oraz nazwa (ze ścieżką dostępu) badanego pliku (bez kropki przed rozszerzeniem). W razie wykrycia błędu wyświetlany jest odpowiedni komunikat (oraz ewentualnie pytanie "delete?"). Komunikaty podawane przez program mogą być następujące:

  • COLLISION - kolizja plików
  • BAD LENGTH - długość pliku podana w katalogu różni się od faktycznej
  • LOOP ERR - plik zawiera sektory "zapętlone"
  • BAD RANGE - bajt łącznikowy wskazuje na niedozwolony sektor
  • Err #X @ sec Y - błąd nr X w sektorze Y
  • INVALID FILENAME - błędna nazwa pliku
Na koniec program poda nam:
  • liczbę sekt. zajętych przez pliki
  • liczbę sekt. wolnych (obliczoną)
  • liczbę sekt. wolnych (z VTOC dysku)
różnicę wynikłą przy kontroli poprawności wersji, oraz zapyta czy zapisać na dysku nową VTOC.

5. PODSUMOWANIE

      Niewątpliwą wadą programu jest jego "jedynie słuszny" sposób usuwania błędów, przez kasowanie plików (gdyby tak lekarz zalecał na grypę - inchalcję tlenkiem węgla?...). Bywają jednak sytuacje, kiedy jest to jedyny sposób na odzyskanie kilku (-set) sektorów, czy pozostałych plików na dysku. Polecam go szczególnie użytkownikom Toms Navigatora 1.1B, który lubi czasem połknąć kilka plików wraz z ich sektorami i wykonywać inne ciekawe rzeczy (ale powoduje to wyrobienie odruchu posiadania kopii rezerowych - pozytywny odruch!!!).

      Myślę, że jest to program, który mimo wszystko warto mieć, bowiem nie znamy dnia ani godziny, kiedy może się okazać przydatny.

dla SERIOUS
- 4UP/IND -