May 13, 2010

Issue for "file is missing or corrupt" : Admin Memo 004

เมื่อเปิดคอมพิวเตอร์ขึ้นมาแล้วพบปัญหา ไฟล์ระบบของ Windows เสียหายหรือไม่สมบูรณ์ 
ทำให้ไม่สามารถบูตเครื่องขึ้นมาได้ ที่หน้าจอของเครื่องมีแต่ข้อความเตือน

Windows could not start because the following file is missing or corrupt:

Windows\System32\Config\System 
หรือ
Windows\System32\Config\DEFAULT
หรือ
Windows\System32\Config\SOFTWARE
etc.

เราจะแก้ไขปัญหาอย่างไร? ? ?

วันก่อนผมได้พบปัญหาเช่นเดียวกัน และก็ทำสารพัดวิธีการที่จะกู้คืนระบบมาให้ได้
จนในที่สุดก็สำเร็จ(ใช้เวลาไปเกือบทั้งวัน)

เมื่อพบปัญหาแล้วระบบวินโดวส์ฟ้องขึ้นมา แสดงว่าไฟล์ระบบเสียหายหรือไม่สมบูรณ์นั้น
ผมค้นหาวิธีการต่างๆ ในเว็บไซต์ ก็ได้คำแนะนำหลากหลาย ในนั้นหลายๆคนได้พูดถึงการล้างพาติชั่นเพื่อลงโปรแกรมใหม่ ซึ่งไม่ใช่แนวทางแก้ปัญหาที่ถูกต้องนัก แม้ว่าจะเป็นทางที่สามารถทำให้ระบบคืนกลับมาใช้งานได้แต่ก็อาจสูญเสียไฟล์และข้อมูลสำคัญหลาย ๆ อย่างในเครื่องไปก็ได้

ข้อแนะนำที่ดีที่ผมเจอนั้น อยู่ในไซต์ของไมโครซอฟต์ที่แนะนำให้ทำการรีแพร์ระบบโดยการบูตจากแผ่นติดตั้ง Windows XP ที่มีอยู่ เมื่อระบบถามความต้องการ ติดตั้ง หรือ Repair ให้เข้าสู่ Repair Mode (พิมพ์ R)
แล้วทำการคัดลอกไฟล์ระบบใน C:\WINDOWS\SYSTEM32\CONFIG\ จำนวน 5 ไฟล์ออกมาก่อน หลังจากนั้นค่อย ลบไฟล์เดิมทิ้ง แล้วคัดลอกไฟล์ที่สำเนาไว้กลับคืน ก็จะแก้ปัญหาได้

--------------------------------
ในทางปฏิบัติ มันก็ไม่ได้ง่ายอย่างนั้นซะทีเดียว เมื่อผมพบปัญหาต่อมา จากการปฏิบัติตามคำแนะนำหลังจากเข้ัาสู่ระบบ Recovery Console แล้วก็พบปัญหาไม่สามารถสั่งงานระบบด้วยคำสั่งใดๆ ได้ ยกเว้น HELP กับ CLS แม้กระทั่งคำสั่งพื้นๆ คือ DIR ก็ไม่ยอมรับคำสั่ง 
--- ต่อวันที่ 6 มีนาคม 2552 เวลา 10:19 น. ---
จากเหตุการณ์ที่พบ ทุกครั้งที่พิมพ์คำสั่งง่ายๆ ไม่ว่าจะ DIR หรือ CDจะขึ้นคำว่า
"The path or file specified is not valid" แล้วจะส่งคำสั่งอะไรก็ไม่เป็นผลนอกจากเคลียร์หน้าจอด้วย CLS
หรือ HELP เท่านั้น สรุปก็คือสั่งไม่ได้ก็ไม่สามารถแก้ไขปัญหาได้จากวิธีการเข้าสู่ Recovery Console Mode

เอาใหม่ เมื่อไม่สามารถแก้ปัญหาได้จากวิธีแรก ก็ต้องหาวิธีเข้าสู่ระบบและ System Drive ให้ได้ 
วิธีการต่อมาที่ผมลองพยายามก็คือ การบูตจากแผ่น CD Hiren 9.6 หลังจากบูตเข้าำไปแล้วก็พบปัญหาเบื้องต้นเล็กน้อย ส่วนนั้นก็คือโดยปกติการบูตด้วย DOS ธรรมดา จะมองไม่เห็น NTFS Partition ซึ่ง System Drive ของผมก็เป็น NTFS ซะด้วยสิ เอาละไม่เป็นไร ขอลองใช้เครื่องมือที่ Hiren Boot CD มีมาให้ก่อนแล้วกัน ผมเลือกใช้ NTFS Ext2FS, Ext3FS (FileSystems) Tools ที่ Support DOS  ในนั้นจะมี 2 - 3 โปรแกรมที่ไม่ได้ระบุว่าเป็นตัวที่ใช้อ่านข้อมูลจาก NTFS File เพียงอย่างเดียว ซึ่งคงมีประโยชน์สำหรับใช้ในการคัดลอกข้อมูล จาก NTFS Partition ออกมาสำรองไว้ก่อนนะแหละ ก็เลยลองใช้ NTFS Pro, NTFS 4 DOS, และ Paragon Mount Everything โปรแกรมแต่ละโปรแกรมกลับไม่ยอมทำงานด้วยดีกับระบบของผม จะส่งอาการมากบ้างน้อยบ้าง ตามอาการ บางตัวถึงขั้นระบบ Crash ไปเลยก็มี แต่พอนำ CD นี้ไปลองกับเครื่องอื่นกลับใช้ได้ดีซะอีก ว้า.... ยุ่งแล้วซิ



.... คิด ๆ ๆ แล้ว ก็คิด


ไหน ๆ ก็ไหน ๆ แล้วเมื่อ CD ยังลองกับอีกเครื่องหนึ่งได้ ทำไมไม่ลองเอา Hard Disk Drive ไปเชื่อมต่อกับอีกเครื่องหนึ่งละ ฮึม... เข้าที ว่าแล้วก็เลยต้องแกะฝาเครื่องออกนำ Hard Disk Drive ออกมาต่อเชื่อมเข้ากับ อุปกรณ์เชื่อมต่อ Hard Drive ผ่าน USB ที่เรียกว่า USB to SATA/IDE cable แล้วนำไปปลั๊ก (USB Plug) เข้าำักับเครื่องคอมพิวเตอร์อีกเครื่องหนึ่ง....
เมื่อเครื่องคอมฯ เครื่องนี้พบว่ามี DRIVE ใหม่เพิ่มเข้ามา ครบทุก ๆ ไดร์ฟแล้วก็เริ่มลงมือทำตามที่ Microsoft แนะนำไว้นั่นคือ การคัดลอกไฟล์ระบบจำนวน 5 ไฟล์ออกมา, ลบไฟล์ระบบเดิมทิ้ง แล้ว นำไฟล์ระบบที่คัดลอกออกมากลับคืนไว้ที่เดิม ในขั้นตอนนี้จากการแนะนำของ Microsoft จะอยู่บนระบบ Microsoft Recovery Console ซึ่งจะเป็น Command Line เป็นหลัก ผมจึงใช้คำสั่งบน Command line ด้วยเพื่อไม่ให้งง
โดยคำสั่งต่าง ๆ จะมีดังนี้

1. เข้าสู่ Command line windows ด้วยการพิมพ์คำสั่ง cmd ในช่อง Start -> Run
2. ในหน้าต่าง Command line ให้เปลี่ยนไปยังไดร์ฟที่ต้องการจัดการ  ด้วยคำสั่ง [Drive Letter]: แล้วกด [Enter] (กรณีของผมได้รับ Drive Letter เป็น H: ก็พิมพ์ H: กด [Enter])
3. สร้างไดเร็คทอรี่ หรือ โฟล์เดอร์ ขึ้นมารองรับการสำรองไฟล์ระบบ ด้วยคำสั่ง md repair [Enter] (Create directory or folder for system file backup)
4. ย้ายการทำงานเข้าสู่ไดเร็กทอรี่ของไฟล์ที่มีปัญหา ด้วยคำสั่ง cd Windows\System32\Config\ (Change directory to missing or corrupt system file with command: cd Windows\System32\Config\)
5. พิมพ์คำสั่งเพื่อคัดลอกไฟล์ออกจากไดเร็คทอรี่เดิมจำนวน 5 ไฟล์ 
copy DEFAULT h:\repair\
copy SAM h:\repair\
copy SECURITY h:\repair\
copy SOFTWARE h:\repair\
copy SYSTEM h:\repair\

6. พิมพ์คำสั่งลบไฟล์ระบบ จำนวน 5 ไฟล์ ใน H:\Windows\System32\Config\ ทิ้งไป
del DEFAULT
del SAM
del SECURITY
del SOFTWARE
del SYSTEM

7. คัดลอก ไฟล์ที่สำรองไว้กลับคืนมาดังเดิม
copy h:\repair\DEFAULT h:\windows\system32\config\
เป็นคำสั่งคัดลอกจากไฟล์ DEFAULT จาก h:\repair มายัง h:\windows\system32\config\
หรือจะใช้คำสั่งโดยไม่ต้องระบุปลายทาง เพราะเป็นการทำงานในไดเร็คทอรี่ที่ต้องการคัดลอกไฟล์มาอยู่แล้ว
copy h:\repair\SAM 
copy h:\repair\SECURITY 
copy h:\repair\SOFTWARE 
copy h:\repair\SYSTEM 

หรือ อาจใช้คำสั่งย้ายเพื่อลบไฟล์ที่สำรองไว้ด้วยทันที (ไม่แนะนำควรลบไฟล์ทิ้งหลังกู้ระบบเสร็จแล้ว)
move h:\repair\DEFAULT
move h:\repair\SAM 
move h:\repair\SECURITY 
move h:\repair\SOFTWARE 
move h:\repair\SYSTEM 

***** แต่ในกรณีที่นำ Hard Disk Drive ไปปลั๊กกับอีกเครื่องแบบนี้ ถ้าใครสะดวกและไม่ชำนาญการใช้คำสั่ง DOS ก็สามารถใช้ Windows Explorer ในการ Copy, Paste และ Delete ก็คงจะง่ายมากขึ้น

8. หลังจากนั้นให้ปลด Hard Disk Drive ออกจากเครื่องที่นำไปเชื่อมต่อแล้วนำกลับไปประกอบเข้าเครื่องเดิม
9. บูตเครื่องเข้าสู่ระบบ เครื่องจะทำการตรวจเช็คระบบสักพัก เราต้องยอมรับแล้วก็รอเพื่อความสมบูรณ์ของระบบให้กลับคืนมาดังเดิม ห้ามข้ามขั้นตอนนี้โดยเด็ดขาด

10. ประสบความสำเร็จ ระบบกลับคืนมาแล้ว โดยไม่ต้องล้างระบบ ลงใหม่ หรือทำให้ข้อมูลสูญหายแต่อย่างใด ใครลองวิธีไหนได้ผล ก็ใช้วิธีนั้นได้ครับอย่าให้ถึงขั้นล้างระบบเพื่อลง OS ใหม่ก็แล้วกัน

No comments:

Post a Comment