Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม Bash

วิธีกู้คืนไฟล์ที่ลบใน Linux: คู่มือปฏิบัติทีละขั้นตอน

เหตุการณ์นี้เคยเกิดกับคุณไหม? คุณตระหนักว่าคุณลบไฟล์ผิดพลาด – ไม่ว่าผ่านปุ่ม Del หรือใช้ rm ใน Command Line

ในกรณีแรก คุณสามารถไปที่ Trash ค้นหาไฟล์ และ Restore กลับตำแหน่งเดิมได้เสมอ แต่กรณีที่สองเป็นยังไง? ตามที่คุณรู้ Command Line ของ Linux ไม่ส่งไฟล์ที่ลบไปที่ไหน – มัน REMOVES พวกมัน บัม พวกมันหายไป

Suggested Read: How to Recover Deleted Files/Directories Using Scalpel Tool

ในบทความนี้ เราจะแชร์เคล็ดลับที่อาจช่วยป้องกันไม่ให้เกิดขึ้นกับคุณ และ Tool ที่คุณอาจพิจารณาใช้ หากคุณไม่ระวังพอที่จะทำมันอยู่ดี

สร้าง Alias เป็น 'rm -i'

สวิตช์ -i เมื่อใช้กับ rm (และ File-manipulation Tools อื่นๆ เช่น cp หรือ mv) จะทำให้ Prompt ปรากฏก่อนลบไฟล์

สิ่งเดียวกันใช้ได้กับ Copy, Move หรือ Rename ไฟล์ใน Location ที่มีไฟล์ชื่อเดียวกันอยู่แล้ว

Prompt นี้ให้โอกาสที่สองในการพิจารณาว่าคุณจริงๆ อยากลบไฟล์หรือไม่ – หากยืนยัน Prompt มันจะหายไป ในกรณีนั้น ผมขอโทษแต่เคล็ดลับนี้จะไม่ป้องกันความไม่ระมัดระวังของคุณเองได้

เพื่อแทนที่ rm ด้วย Alias ไป 'rm -i' ให้ทำ:

alias rm='rm -i'

คำสั่ง alias จะยืนยันว่า rm ตอนนี้เป็น Aliased แล้ว:

วิธีกู้คืนไฟล์ที่ลบใน Linux: คู่มือปฏิบัติทีละขั้นตอน

อย่างไรก็ตาม นี้จะทนทานได้เฉพาะ Current User Session ใน Current Shell เท่านั้น เพื่อทำให้ Permanent คุณต้อง Save ไว้ใน ~/.bashrc (บาง Distributions อาจใช้ ~/.profile แทน) ดังนี้:

วิธีกู้คืนไฟล์ที่ลบใน Linux: คู่มือปฏิบัติทีละขั้นตอน

เพื่อให้การเปลี่ยนแปลงใน ~/.bashrc (หรือ ~/.profile) มีผลทันที ให้ Source ไฟล์จาก Current Shell:

. ~/.bashrc
วิธีกู้คืนไฟล์ที่ลบใน Linux: คู่มือปฏิบัติทีละขั้นตอน

Forensics Tool – Foremost

หวังว่าคุณจะระมัดระวังกับไฟล์ของคุณ และจะต้องใช้ Tool นี้ فقطขณะกู้คืนไฟล์หายจาก External Disk หรือ USB Drive

อย่างไรก็ตาม หากคุณตระหนักว่าลบไฟล์ใน System ของคุณโดยไม่ได้ตั้งใจ และกำลังจะ Panic – อย่า ให้ดู Foremost เครื่องมือ Forensics ที่ออกแบบมาสำหสถานการณ์แบบนี้

เพื่อติดตั้ง Foremost ใน CentOS/RHEL 7 คุณต้อง Enable Repoforge ก่อน:

# rpm -Uvh https://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el7.rf.x86_64.rpm
# yum install foremost

ในขณะที่ Debian และ Derivatives แค่ทำ

# aptitude install foremost

เมื่อติดตั้งเสร็จ ให้ทำ Simple Test เราจะเริ่มด้วยการลบ Image File ชื่อ nosdos.jpg จากไดเรกทอรี /boot/images:

# cd images
# rm nosdos.jpg

เพื่อกู้คืน ใช้ Foremost ดังนี้ (คุณต้องระบุ Underlying Partition ก่อน – /dev/sda1 คือที่ /boot อยู่ในกรณีนี้):

# foremost -t jpg -i /dev/sda1 -o /home/gacanepa/rescued

ที่ /home/gacanepa/rescued เป็น Directory บน Disk แยก – จำไว้ว่า Recovery ไฟล์บน Drive เดียวกับที่ไฟล์ที่ลบอยู่ ไม่ใช่การตัดสินใจที่ฉลาด

หากระหว่าง Recovery คุณครอบครอง Disk Sectors เดียวกับที่ไฟล์ที่ลบเคยอยู่ อาจไม่สามารถกู้คืนอะไรได้ เพิ่มเติม จำเป็นต้องหยุดกิจกรรมทั้งหมดก่อนทำ Recovery

หลัง Foremost ทำงานเสร็จ Recovered File (หาก Recovery สำเร็จ) จะอยู่ในไดเรกทอรี /home/gacanepa/rescued/jpg

สรุป

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

เหมือนเดิม อย่าลังเลแจ้งให้เราทราบหากมีคำถามหรือความคิดเห็น รู้สึกสบายใจ Drop Note ให้เราผ่านฟอร์มด้านล่าง