CHKDSK.exe (check disk) เป็นเครื่องมือสำหรับ Windows แบบคลาสสิกที่สร้างมาสำหรับตรวจสอบฮาร์ดดิสก์ข้อผิดพลาด chkdsk ช่วยให้คุณตรวจสอบดิสก์และระบบไฟล์ข้อผิดพลาดทางกายภาพและตรรกะ ค้นหา bad sectors และแก้ไขปัญหาที่พบ ในบทความนี้ เราจะดูรายละเอียดการใช้เครื่องมือ chkdsk ใน Windows 10 รวมถึงวิธีตรวจสอบดิสก์โดยใช้คอมมานด์เลต PowerShell Repair-Volume
chkdsk ใน Windows 10 อนุญาตให้ตรวจสอบและแก้ไขฮาร์ดดิสก์ที่มีระบบไฟล์ NTFS และ FAT32 Chkdsk ไม่สามารถใช้กับโวล्यูม ReFS ได้ เนื่องจากใช้เทคโนโลยีความสมบูรณ์ของข้อมูลที่แตกต่างกัน
วิธีตรวจสอบดิสก์ข้อผิดพลาดโดยใช้ CHKDSK บน Windows 10
เพื่อตรวจสอบฮาร์ดดิสก์ข้อผิดพลาด ให้รัน command prompt ที่มีสิทธิ์ผู้ดูแลระบบ (administrator permissions) จากนั้นรันคำสั่ง:
chkdsk E: /F /R
คำสั่งนี้จะเริ่มตรวจสอบไดรฟ์ E:\ ข้อผิดพลาดที่พบจะถูกแก้ไขอัตโนมัติ (/F) หากมี bad sectors จะพยายามกู้คืนข้อมูล (/R) การตรวจสอบดิสก์เต็มอาจใช้เวลานานขึ้นอยู่กับความจุที่จัดเก็บและจำนวนไฟล์
เครื่องมือ chkdsk ดำเนินการ 4 ขั้นตอนตามลำดับเพื่อตรวจสอบข้อมูลเมตาของโวล्यูม:
- Stage 1 – verifying files (ตรวจสอบไฟล์);
- Stage 2 – verifying indexes (ตรวจสอบดัชนี);
- Stage 3 – verifying security descriptors (ตรวจสอบ security descriptors);
- Stage 4 – verifying Usn Journal and sectors (ตรวจสอบ Usn Journal และ sectors)
หลังจากเสร็จสิ้นการตรวจสอบดิสก์ คุณจะเห็นสถิติดิสก์โดยละเอียด ข้อมูลเกี่ยวกับ bad sectors และไฟล์ รวมถึงขั้นตอนที่ใช้ในการกู้คืนข้อมูล
หากชุดเครื่องมือ chkdsk ไม่พบปัญหา ข้อความต่อไปนี้จะปรากฏ:
Windows has scanned the file system and found no problems. No further action is required.

คุณจะไม่สามารถดำเนินการสแกนออนไลน์และแก้ไขข้อผิดพลาดบน system drive (C:\) ได้ เมื่อคุณรันคำสั่ง chkdsk C: / F / R คุณจะเห็นว่าดิสก์ถูกล็อกและสามารถตรวจสอบได้เฉพาะเมื่อ Windows รีสตาร์ทครั้งต่อไป:
Cannot lock current drive. Chkdsk cannot run because the volume is in use by another process. Would you like to schedule this volume to be checked the next time the system restarts? (Y/N).

หากคุณต้องการตรวจสอบดิสก์ในการบูทครั้งต่อไป กด Y -> Enter จะปรากฏข้อความ "This volume will be checked the next time the system restarts"
ตอนนี้ หากคุณรีสตาร์ท Windows การตรวจสอบดิสก์จะเริ่มต้น คุณต้องรอจนกว่าจะเสร็จสิ้น
หากคุณต้องการตรวจสอบดิสก์ข้อผิดพลาดแบบออฟไลน์ (ข้ามการตรวจสอบออนไลน์) ให้ใช้ตัวเลือก offlinescanandfix:
chkdsk E: /f /offlinescanandfix
เมื่อใช้ตัวเลือก offlinescanandfix สำหรับ system drive คุณจะได้รับแจ้งให้จัดตารางการสแกนดิสก์ในการรีบูทครั้งต่อไป
ความเร็วการตรวจสอบดิสก์ออฟไลน์ใน Windows 10 เพิ่มขึ้นอย่างมีนัยสำคัญเมื่อเทียบกับเวอร์ชัน OS ก่อนหน้า
/X เป็นตัวเลือก chkdsk ที่มีประโยชน์อีกอย่าง อนุญาตให้คุณ unmount โวล्यูมก่อนตรวจสอบโดยการปิด file descriptors ที่เปิดอยู่ทั้งหมดโดยบังคับ
สังเกตตัวเลือก chkdsk ใหม่ — /spotfix พารามิเตอร์นี้ใช้ได้กับโวลยูม NTFS เท่านั้น พารามิเตอร์ spotfix สามารถลดเวลาตรวจสอบดิสก์ออฟไลน์จากหลายชั่วโมงเหลือเพียงไม่กี่วินาที แทนที่จะสแกนทั้งดิสก์ มันค้นหาและแก้ไขข้อผิดพลาดที่บันทึกไว้ก่อนหน้านี้ในไฟล์ $corrupt (ที่เติมระหว่างการตรวจสอบดิสก์ปกติ) ในกรณีนี้ chkdsk แก้ไขข้อผิดพลาดทันทีโดยไม่เสียเวลาสแกนทั้งดิสก์ นี่เป็นประโยชน์โดยเฉพาะเมื่อตรวจสอบโวลยูมขนาดใหญ่
ไม่แนะนำให้ยกเลิก/ขัดจังหวะคำสั่ง chkdsk อย่างไรก็ตาม หากคุณ kill กระบวนการ chkdsk.exe ด้วยตนเอง โวลยูมจะไม่เสียหาย (จะไม่เสียหายมากกว่าที่มันเคยเป็นอยู่เดิม) ในทุกกรณี แนะนำให้รันการสแกนดิสก์เต็มรูปแบบหลังจากผ่านไปสักพัก
ใน Windows 10 การบำรุงรักษาดิสก์ (ตรวจสอบและ डीফрагเมนเตชัน) ทำงานอัตโนมัติตามตารางหรือเมื่อคอมพิวเตอร์ของคุณ idle คุณสามารถหาข้อมูลสถานะการตรวจสอบดิสก์อัตโนมัติใน Control Panel -> System and Security -> Security and Maintenance -> Drive status สกรีนช็อตแสดงสถานะไดรฟ์ "All drives are working properly"

คุณสามารถหา task ตรวจสอบดิสก์ (ชื่อ ProactiveScan) ซึ่งรันเป็นส่วนหนึ่งของ Windows 10 Automatic Maintenance ใน Task Scheduler -> Microsoft -> Windows -> Chkdsk
นอกจากนี้ ใน Windows 10 builds สมัยใหม่ มีเครื่องมือวินิจฉัยที่จัดเก็บ StorDiag.exe (Storage Diagnostic Tool) เพิ่มเข้ามา ยูทิลิตีนี้ดำเนินการตรวจสอบดิสก์หลายอย่างพร้อมกัน (chkdsk, fsutil และ fltmc) บันทึกการวินิจฉัยสามารถบันทึกเป็น ETW trace ตัวอย่าง:
stordiag.exe -collectEtw -checkfsconsistency -out %userprofile%\desktop
ตรวจสอบข้อผิดพลาดไดรฟ์ด้วย PowerShell
PowerShell 4.0 นำเสนอคอมมานด์เลตตรวจสอบดิสก์แยกต่างหาก Repair-Volume คอมมานด์เลตนี้เป็นการแทนที่ PowerShell สำหรับคำสั่ง chkdsk
เพื่อดำเนินการตรวจสอบฮาร์ดดิสก์ข้อผิดพลาดแบบออนไลน์จาก PowerShell ให้รันคำสั่ง:
Repair-Volume –driveletter C –scan
หากคุณต้องการดำเนินการตรวจสอบดิสก์ออฟไลน์และแก้ไขข้อผิดพลาดอัตโนมัติ ให้ใช้พารามิเตอร์ offlinescanandfix:
Repair-Volume –driveletter E –offlinescanandfix
หากไม่พบข้อผิดพลาดบนดิสก์ คุณจะเห็นข้อความ NoErrorsFound

รองรับการแก้ไขข้อผิดพลาดแบบรวดเร็วโดยใช้พารามิเตอร์ spotfix (แก้ไขเฉพาะข้อผิดพลาดที่พบระหว่างการสแกนออนไลน์):
Repair-volume –driveletter E –spotfix
คุณสามารถตรวจสอบไดรฟ์ท้องถิ่นหลายไดรฟ์พร้อมกันได้:
Repair-Volume -DriveLetter EHI –SpotFix
คอมมานด์เลต Repair-Volume รองรับ CIM sessions ที่อนุญาตให้คุณสแกนไดรฟ์บนคอมพิวเตอร์ระยะไกล:
Repair-Volume –driverletter c -scan –cimsession ny-fs01,ny-fs02,ny-dc01
คุณยังสามารถตรวจสอบสถานะ SMART ของฮาร์ดดิสก์โดยใช้คอมมานด์เลตจากโมดูล Storage PowerShell:
Get-PhysicalDisk | Sort Size | FT FriendlyName, Size, MediaType, SpindleSpeed, HealthStatus, OperationalStatus -AutoSize

ดูผลลัพธ์ Check Disk (CHKDSK) ใน Windows 10
เมื่อคุณดำเนินการตรวจสอบดิสก์ออนไลน์ คุณสามารถดูสถิติ chkdsk ที่สมบูรณ์ในคอนโซล cli อย่างไรก็ตาม หากคุณจัดตารางการตรวจสอบดิสก์ด้วยตัวเลือก offlinescanandfix คุณจะไม่เห็นรายงานสรุป chkdsk บนหน้าจอบูท Windows 10 หน้าจอบูท Windows 10 แสดงเพียงเปอร์เซ็นต์โดยรวมของการตรวจสอบดิสก์ที่เสร็จสิ้น
ใน Windows 7 และ Windows เวอร์ชันก่อนหน้า ข้อมูลโดยละเอียดเกี่ยวกับการกระทำของ chkdsk จะแสดงโดยตรงบนหน้าจอบูท

ใน Windows 10 คุณสามารถดูผลลัพธ์ของการตรวจสอบฮาร์ดดิสก์อัตโนมัติได้เฉพาะใน Windows Event Viewer
เปิด Windows Event Viewer โดยพิมพ์ event ในแถบค้นหาและเลือกแอปพลิเคชัน Event Viewer (หรือรันคำสั่ง Eventvwr.msc)

ในหน้าต่างถัดไป ไปที่ Windows Logs -> Application

คลิกขวา Application และเลือกเมนู Find ในแถบค้นหา พิมพ์ chkdsk และคลิก Find next
คุณสามารถค้นหาตาม event source ได้ เพื่อค้นหาเหตุการณ์ตรวจสอบดิสก์ระหว่างการเริ่มต้น Windows คุณต้องเปิดใช้งานตัวกรองตามเหตุการณ์จากแหล่งที่มา Wininit สำหรับเหตุการณ์ check disk เริ่มต้นโดยผู้ใช้ ให้ดูแหล่งที่มา Chkdsk

เหตุการณ์แรกที่พบพร้อม Event ID 1001 และแหล่งที่มา Wininit ต้องถูกแสดง ในแท็บ General บันทึกโดยละเอียดพร้อมผลลัพธ์การตรวจสอบดิสก์ล่าสุดจะแสดง

Checking file system on C: The type of the file system is NTFS. A disk check has been scheduled. Windows will now check the disk. Stage 1: Examining basic file system structure ... 122280 file records processed. File verification completed. 4817 large file records processed. 0 bad file records processed. Stage 2: Examining file name linkage ... 184654 index entries processed. Index verification completed. 0 unindexed files scanned. 0 unindexed files recovered to lost and found. Stage 3: Examining security descriptors ... Cleaning up 788 unused index entries from index $SII of file 0x9. Cleaning up 788 unused index entries from index $SDH of file 0x9. Cleaning up 788 unused security descriptors. Security descriptor verification completed. 27477 data files processed. CHKDSK is verifying Usn Journal... 36724460 USN bytes processed. Usn Journal verification completed. Stage 4: Looking for bad clusters in user file data ... 12280 files processed. File data verification completed. Stage 5: Looking for bad, free clusters ... 6433211 free clusters processed. Free space verification is complete. CHKDSK discovered free space marked as allocated in the volume bitmap. Windows has made corrections to the file system. No further action is required. 41423341 KB total disk space. 15155466 KB in 90632 files. 75328 KB in 27779 indexes. 0 KB in bad sectors. 223839 KB in use by the system. 55762 KB occupied by the log file. 25979887 KB available on disk. 4096 bytes in each allocation unit. 10354722 total allocation units on disk. 6493022 allocation units available on disk. Internal Info: 00 f9 01 00 88 cd 01 00 a9 dd 03 00 00 00 00 00 ................ ad 00 00 00 66 00 00 00 00 00 00 00 00 00 00 00 ....f........... Windows has finished checking your disk. Please wait while your computer restarts.
คุณสามารถรับข้อมูลจากเหตุการณ์ check disk โดยใช้ PowerShell คำสั่งต่อไปนี้จะส่งออกผลลัพธ์การตรวจสอบดิสก์ 5 ครั้งล่าสุดจาก event log และบันทึกไว้บนเดสก์ท็อปปัจจุบันเป็นไฟล์ข้อความ CHKDSK_SCANS.txt
Get-EventLog -LogName Application -Source chkdsk | Select-Object -Last 5 -Property TimeGenerated,Message | Format-Table -Wrap| out-file "$env:userprofile\Desktop\CHKDSK_SCANS.txt"
ไฟล์นี้สามารถเปิดได้ใน text editor ใดๆ

ดังนั้นเราได้บันทึกการตรวจสอบดิสก์ที่ดำเนินการระหว่างการเริ่มต้น Windows 10