در محاسبات، CHKDSK (مخفف عبارت «check disk») یک نرمافزار سیستم و فرمان در داس، دیجیتال ریسرچ FlexOS ,[۱] آی بی ام / توشیبا 4690 OS , IBM OS/2،[۲] مایکروسافت ویندوز و سیستم عاملهای مربوطه است. چک دیسک یکپارچگی سامانه فایل بندی یک حجم را بازبینی میکند و تلاش میکند خطاهای منطقی فایل سیستم را برطرف کند. چک دیسک مشابه دستور fsck در یونیکس و شبیه به Microsoft ScanDisk است که همزمان با CHKDSK
در ویندوز 9x و ام اس-داس 6.x وجود داشتهاست.
یک پیادهسازی ابتدایی از چک دیسک، CheckDisk بودهاست که بخشی از عیبشناسی سختافزار دیجیتال ایکویپمنت کورپوریشن بود که در اوایل دهه ۱۹۷۰ بر روی TENEX و TOPS-20 اجرا میشد.[۳][۴]
CHKDSK
اولین بار در سال ۱۹۸۰ توسط تیم پترسون اجرا شد و در محصولات کامپیوتری سیاتل داس-۸۶ گنجانده شد.[۵]
CHKDSK.
COM
(در میان چندین فایل COM دیگر) در IBM PC DOS 1.0.این دستور در MS-DOS در نسخههای ۱ و بالاتر موجود است. CHKDSK
به عنوان یک فرمان خارجی پیادهسازی میشود. در نسخههای 2.x - 4.x ام اس-داس از chkdsk.com
به عنوان فایل قابل اجرا استفاده میشود. در نسخههای ام اس-داس 5.x به بعد از chkdsk.exe
به عنوان فایل قابل اجرا استفاده میشود.[۶]
CHKDSK
و UNDELETE
در MS-DOS 5.0 دارای یک اشکال هستند که میتواند دادهها را خراب کند: اگر جدول تخصیص فایل یک دیسک از ۲۵۶ بخش(sector) استفاده کند، اجرای CHKDSK /F
میتواند باعث از دست رفتن دادهها شود و اجرای UNDELETE
میتواند نتایج غیرقابل پیشبینی ایجاد کند. این معمولاً دیسکهایی با ظرفیت تقریباً مضربی از ۱۲۸ مگابایت را تحت تأثیر قرار میدهد. این بر روی CHKDSK.EXE
و UNDELETE.EXE
که دارای datastamp از تاریخ 9 آوریل 1991 هستند صدق میکند. این باگ در نسخه MS-DOS 5.0a رفع شد.[۷]
chkdsk
در ویندوز XPCHKDSK
را میتوان از DOS prompt, Windows Explorer, Windows Command Prompt,
Windows PowerShell یا Recovery Console اجرا کرد.[۸]
در سیستم عامل های Windows NT, همچنین CHKDSK
میتواند سطح دیسک را برای بد سکتور بررسی کرده و آنها را علامتگذاری کند (در MS-DOS 6.x و Windows 9x، این کاری است که Microsoft ScanDisk انجام میدهد) نسخۀ Windows Server ازCHKDSK
دارای RAID- aware است و در صورت سالم بودن سایر دیسکهای مجموعه، میتواند بهطور کامل دادهها را در بد سکتورهای دیسک در آرایه های RAID-1 یا
RAID-5 بازیابی کند.
بخشهایی از فایلها و دایرکتوریهایی که به عنوان مثال در نتیجۀ قطع شدن برق در حین نوشتن، یکی یا هر دو مورد بیش از حد بودن طول نام فایل و کاراکترهای نامعتبر در نام فایل، خراب تلقی میشوند، به فهرستی در زیر ریشه پارتیشن به نام found.000
منتقل میشوند و به فایلها و دایرکتوریهای شمارهدار هگزادسیمی عمومی(generic) تغییر نام داده میشوند که به ترتیب با file00000000.chk
و dir_00000000.chk
شروع میشوند.[۹][۱۰]
در خانواده ویندوز NT، یک اسکن استاندارد CHKDSK
شامل سه مرحله آزمایش فراداده فایل است. به دنبال خطاها میگردد اما تا زمانی که صریحاً به آن دستور داده نشده باشد آن ها را برطرف نمیکند. همین امر در مورد اسکن سطح نیز صدق میکند - این آزمایش، که ممکن است روی دیسکهای بزرگ یا با کارایی پایین بسیار وقت گیر باشد، انجام نمیشود مگر اینکه صریحاً درخواست شود. CHKDSK
برای انجام تعمیرات، انحصارا به دسترسی نوشتن ولوم نیاز دارد.[۱۱][۱۲]
به دلیل نیاز به دسترسی انحصاری به درایو، CHKDSK
نمیتواند دیسک سیستم را در حالت عادی سیستم بررسی کند. در عوض، سیستم بیت کثیف را روی ولوم دیسک تنظیم میکند و سپس کامپیوتر را مجددا راه اندازی میکند(ریبوت). در طول راه اندازی ویندوز، یک نسخه ویژه از CHKDSK
به نام Autochk
(یک برنامه کاربردی حالت بومی) توسط SMSS.EXE شروع میشود و اگر بیت کثیف تنظیم شده باشد، سیستم فایل را بررسی و تعمیر میکند.
به دلیل نیاز به دسترسی انحصاری و ماهیت زمانبر عملیات CHKDSK
، ویندوز ویستا یک مدل سلامت سیستم فایل جدید را پیادهسازی کرد که در آن سیستمعامل خطاها را در ولومهایی که با آنها مواجه میشود برطرف میکند. در صورتی که مشکل جدی باشد و نیاز به اسکن کامل باشد، Action Center به کاربر اطلاع میدهد که در اولین فرصت ولوم را آفلاین کند.[۱۳]
ویندوز ویستا و ویندوز سرور ۲۰۰۸ علاوه بر ارائه فرمان CHKDSK
، قابلیت خوددرمانی را که بهطور پیشفرض روشن شدهاست، اضافه کردند. این قابلیت خطاهای سیستم فایل فیزیکی را شناسایی میکند و در حین پروسه آنها را برطرف میکند؛ بنابراین، بسیاری از مشکلاتی که قبلاً در اجرای CHKDSK
کشف شده بودند هرگز ظاهر نمیشوند. این قابلیت توسط فرمان fsutil repair
اداره میشود.[۱۴][۱۵]
تمایل AUTOCHK
برای اصلاح خودکار سیستم فایل در زمانی که کاربر آن را به صراحت درخواست نکرده و ممکن است بخواهد از پیش از دادههای خود نسخه پشتیبان تهیه کند، مورد انتقاد قرار گرفته است، زیرا تلاش برای تعمیر ممکن است مسیرهای فایل و دایرکتوری را به هم بزند، تضعیف کند و از مالکیت خارج کند، مخصوصا در نصب مالتیبوت که در آن چندین سیستم عامل ممکن است به صورت تداخلی روی یک پارتیشن نوشته شده باشند.[۱۶][۱۷][۱۸]
قبل از انتشار ویندوز ۷، InfoWorld یک ادعا از نشت حافظه در CHKDSK
را گزارش کرد. بر اساس این گزارش، دستور chkdsk /r
باعث میشود مصرف حافظه به حداکثر برسد و سیستم از کار بیفتد. Randall C. Kennedy از InfoWorld گزارش اصلی را به " منابع مختلف وب " نسبت داد و گفت که در آزمایشات او، اگرچه خرابی را تجربه نکرده، مصرف حافظه به بالای ۹۰٪ رسیدهاست. با این وجود، کندی مصرف حافظه را یک باگ حیاتی که راه اندازی ویندوز ۷ را از مسیر خود خارج میکرد، در نظر گرفت و مایکروسافت را محکوم کرد.[۱۹] تام وارن از Neowin اهمیت ارزیابی کندی از افشای اتهامی رد کرد.[۲۰] استیون سینوفسکی از مایکروسافت نیز پاسخ داد که مایکروسافت نیز نمیتواند یک خرابی را بازتولید کند، اما طراحی مایکروسافت برای بهبود عملکرد باعث مصرف بالای حافظه میشود، نه نشت. Ed Bott از ZDNet نیز این ادعا را با آزمایشهای خود بررسی کرد و مشاهده کرد که هیچ خرابی ای رخ نمیدهد. بات با اشاره به اینکه chkdsk /r
، بنا بر نوع طراحی، زمانی که ویندوز آنلاین است روی درایو سیستم کار نمیکند، نتیجهگیری کرد: «مسلماً این یک خاصیت است، نه یک باگ، و احتمال اینکه سیستمی از این طریق خراب شود، بسیار بسیار کم و کاملاً قابل اجتناب است."[۲۱]
DR DOS 6.0 همچنین شامل یک پیاده سازی از دستور CHKDSK
است.[۲۲]
نسخه FreeDOS توسط Imre Leber توسعه یافته و تحت مجوز GNU GPL 2 است.[۲۳]
chkdsk
در ReactOSپیاده سازی ReactOS بر پایه یک کلون رایگان است که در سال 1998 توسط مارک راسینویچ برای سیس اینترنالز توسعه داده شد.[۲۴]در سال 1999، توسط Emanuele Aliberti با ReactOS تطبیق داده شد و ولومها را با استفاده از سیستم فایل FAT32 پشتیبانی میکند. این فرمان از ولومها با استفاده از سیستم فایل Btrfs پشتیبانی نمیکند، اگرچه ReactOS از نسخه 0.4.1 از آن پشتیبانی میکند.
{{cite web}}
: نگهداری یادکرد:عنوان آرشیو به جای عنوان (link)
Under Tenex .. Hardware Maintenance Procedures .. Recovery from Checkdsk Errors
CHKDSK
and UNDELETE
Commands". Support (1.1 ed.). Microsoft. 16 November 2006.