CHKDSK

chkdsk
Oryginalni autorzy Tima Patersona
Deweloperzy SCP , Microsoft , IBM , DR , Datalight , Novell , Toshiba , PhysTechSoft , współtwórcy ReactOS
Pierwsze wydanie 1980 ; 43 lata temu ( 1980 )
Napisane w
MS-DOS : asembler x86 FreeDOS , ReactOS : C
System operacyjny 86-DOS , MS-DOS , PC DOS , MSX-DOS , SISNE plus , OS/2 , eComStation , ArcaOS , FlexOS , DR-DOS , ROM-DOS , 4690 OS , PTS-DOS , Windows , FreeDOS , ReactOS
Platforma Międzyplatformowe
Typ Komenda
Licencja
MS-DOS: MIT FreeDOS, ReactOS: GPLv2
Strona internetowa naucz się .microsoft .com /de-de /windows-server /administration /windows-commands /chkdsk  Edit this on Wikidata

W informatyce CHKDSK (skrót od „check disk”) jest narzędziem systemowym i poleceniem w systemach DOS , Digital Research FlexOS , IBM / Toshiba 4690 OS , IBM OS/2 , Microsoft Windows i pokrewnych systemach operacyjnych . Sprawdza systemu plików woluminu i próbuje naprawić logiczne błędy systemu plików . Jest podobny do polecenia fsck w Uniksie i podobny do Microsoft ScanDisk , który współistniał z CHKDSK w Windows 9x i MS-DOS 6.x.

Implementacje

Wczesną implementacją „CheckDisk” był CHECKDSK , który był częścią diagnostyki sprzętu Digital Equipment Corporation , działający na TENEX i TOPS-20 z początku lat 70 .

SCP 86-DOS

Polecenie CHKDSK zostało po raz pierwszy zaimplementowane w 1980 roku przez Tima Patersona i włączone do Seattle Computer Products 86-DOS .

MS-DOS/IBM PC DOS

CHKDSK.COM (wśród kilku innych plików COM) w IBM PC DOS 1.0.

Polecenie jest dostępne w wersji MS-DOS 1 i nowszych. CHKDSK jest zaimplementowany jako polecenie zewnętrzne. Wersje MS-DOS 2.x - 4.x używają chkdsk.com jako pliku wykonywalnego. Wersje MS-DOS 5.x i nowsze używają chkdsk.exe jako pliku wykonywalnego.

CHKDSK może również pokazywać użycie pamięci, było to używane przed wprowadzeniem polecenia MEM.EXE w MS-DOS 4.0, aby pokazać użycie pamięci. W DR DOS parametr /A ograniczył dane wyjściowe do pokazania tylko użycia pamięci.

Błąd MS-DOS 5.0

CHKDSK i UNDELETE w MS-DOS 5.0 mają błąd, który może uszkodzić dane: Jeśli tabela alokacji plików na dysku wykorzystuje 256 sektorów, uruchomienie CHKDSK /F może spowodować utratę danych, a uruchomienie UNDELETE może spowodować nieprzewidywalne skutki. Zwykle dotyczy to dysków o pojemności w przybliżeniu będącej wielokrotnością 128 MB. Dotyczy to CHKDSK.EXE i UNDELETE.EXE z datą 9 kwietnia 1991. Ten błąd został naprawiony w MS-DOS 5.0a.

Microsoft Windows

Polecenie chkdsk w systemie Windows XP

CHKDSK można uruchomić z wiersza poleceń systemu DOS , Eksploratora Windows , wiersza polecenia systemu Windows , programu Windows PowerShell lub Konsoli odzyskiwania .

W systemach operacyjnych Windows NT CHKDSK może również sprawdzać powierzchnię dysku pod kątem uszkodzonych sektorów i oznaczać je (w systemach MS-DOS 6.x i Windows 9x jest to zadanie wykonywane przez Microsoft ScanDisk ). Wersja CHKDSK dla systemu Windows Server obsługuje RAID i może w pełni odzyskać dane z uszkodzonych sektorów dysku w macierzy RAID-1 lub RAID-5, jeśli inne dyski w zestawie są nienaruszone.

Fragmenty plików i katalogów uznane za uszkodzone w wyniku, na przykład, przerw w dostawie prądu podczas zapisywania, nadmiernej długości nazw plików i/lub nieprawidłowych znaków w nazwach plików, są przenoszone do katalogu w katalogu głównym partycji o nazwie found.000 i przemianowano na ogólne pliki i katalogi o numerach szesnastkowych, zaczynające się odpowiednio od file00000000.chk i dir_00000000.chk .

W systemach z rodziny Windows NT standardowe skanowanie CHKDSK składa się z trzech faz testowania metadanych pliku. Wyszukuje błędy, ale ich nie naprawia, chyba że zostanie to wyraźnie nakazane. To samo dotyczy skanowania powierzchni — ten test, który może być niezwykle czasochłonny w przypadku dużych lub mało wydajnych dysków, nie jest przeprowadzany, chyba że wyraźnie zażądano. CHKDSK wymaga wyłącznego prawa zapisu do woluminu w celu wykonania napraw.

Ze względu na wymóg zmonopolizowanego dostępu do dysku CHKDSK nie może sprawdzić dysku systemowego w normalnym trybie systemowym. Zamiast tego system ustawia brudny bit w woluminie dysku, a następnie ponownie uruchamia komputer. Podczas uruchamiania systemu Windows , SMSS.EXE uruchamia specjalną wersję CHKDSK o nazwie Autochk ( aplikacja w trybie natywnym ) , która sprawdza i próbuje naprawić system plików, jeśli ustawiony jest brudny bit.

Ze względu na wymóg wyłącznego dostępu i czasochłonność operacji CHKDSK w systemie Windows Vista zaimplementowano nowy model kondycji systemu plików, w którym system operacyjny naprawia napotkane błędy woluminów. W przypadku, gdy problem jest poważny i wymagane jest pełne skanowanie, Action Center powiadamia użytkownika o konieczności przełączenia woluminu w tryb offline przy pierwszej dogodnej okazji.

W systemach Windows Vista i Windows Server 2008 oprócz udostępniania polecenia CHKDSK dodano domyślnie włączoną funkcję samoleczenia . Wykrywa fizyczne błędy systemu plików i po cichu naprawia je w locie. Dlatego wiele problemów wykrytych wcześniej podczas uruchamiania CHKDSK nigdy się nie pojawia. Jest zarządzany przez naprawy fsutil .

Krytyka dotyczyła tendencji firmy AUTOCHK do automatycznego modyfikowania systemu plików, gdy użytkownik nie zażądał tego wyraźnie, chcąc wcześniej wykonać kopię zapasową swoich danych , ponieważ próba naprawy może zakłócić, podważyć i odrzucić ścieżki do plików i katalogów, zwłaszcza na instalacja wielosystemowa , w której wiele systemów operacyjnych mogło zakłócać zapis na tej samej partycji.

Domniemany błąd systemu Windows 7

Przed wydaniem systemu Windows 7 firma InfoWorld zgłosiła rzekomy wyciek pamięci w CHKDSK ; według raportu chkdsk /r spowodowałoby osiągnięcie maksymalnego zużycia pamięci i awarię systemu . Randall C. Kennedy z InfoWorld przypisał oryginalny raport „ różnym źródłom internetowym ” i powiedział, że w jego testach zużycie pamięci osiągnęło ponad 90%, chociaż nie doświadczył awarii. Niemniej jednak Kennedy wziął zużycie pamięci za krytyczny błąd, który uniemożliwiłby uruchomienie systemu Windows 7 i skarcił Microsoft. Tom Warren z Neowin odrzucił ocenę Kennedy'ego dotyczącą znaczenia rzekomego wycieku. Steven Sinofsky z Microsoft odpowiedział również, że Microsoft również nie mógł odtworzyć awarii, ale ogromne zużycie pamięci było zgodne z projektem, aby poprawić wydajność, a nie wyciek. Ed Bott z ZDNet również przejrzał twierdzenie za pomocą własnych testów i zauważył, że nie nastąpi żadna awaria. Zauważając, że chkdsk /r z założenia nie działa na dysku systemowym , gdy system Windows jest w trybie online, Bott doszedł do wniosku, że „jest to prawdopodobnie funkcja, a nie błąd, a prawdopodobieństwo, że kiedykolwiek spowoduje to awarię systemu w ten sposób, jest bardzo, bardzo małe i całkowicie możliwe do uniknięcia”.

DR/Novell DOS

DR DOS 6.0 zawiera również implementację polecenia CHKDSK .

Darmowy dos

Wersja FreeDOS została opracowana przez Imre Lebera i jest objęta licencją GNU GPL 2 .

ReactOS

Polecenie chkdsk w ReactOS

Implementacja ReactOS jest oparta na darmowym klonie opracowanym przez Marka Russinovicha dla Sysinternals w 1998 roku. Została dostosowana do ReactOS przez Emanuele Aliberti w 1999 roku i obsługuje woluminy używające systemu plików FAT32 . Polecenie nie obsługuje woluminów korzystających z Btrfs , chociaż ReactOS obsługuje go od wersji 0.4.1.

Zobacz też

Dalsza lektura

Linki zewnętrzne