การกู้คืนไฟล์ที่ถูกลบโดยไม่ตั้งใจ


79

ฉันบังเอิญลบไฟล์ออกจากแล็ปท็อปของฉัน ฉันใช้ Fedora เป็นไปได้หรือไม่ที่จะกู้คืนไฟล์


9
ระบบไฟล์ของคุณคืออะไร?
echox

คำตอบ:


94

ฉันจะแนะนำไม่ให้ติดตั้งยูทิลิตี้บางอย่างทันที โดยพื้นฐานแล้วศัตรูที่ใหญ่ที่สุดของคุณที่นี่คือการเขียนดิสก์ คุณต้องการหลีกเลี่ยงค่าใช้จ่ายทั้งหมดในขณะนี้

ทางออกที่ดีที่สุดของคุณคือการสำรองข้อมูลอัตโนมัติที่สร้างโดยโปรแกรมแก้ไขของคุณหากมีอยู่ ถ้าไม่ฉันจะลองใช้เคล็ดลับต่อไปนี้โดยใช้ grep ถ้าคุณจำสตริงที่ไม่ซ้ำกันในไฟล์. tex ของคุณ:

$sudo grep -i -a -B100 -A100 'string' /dev/sda1 > file.txt

แทนที่/dev/sda1ด้วยอุปกรณ์ที่ไฟล์เปิดอยู่และแทนที่'string'ด้วยสตริงที่ไม่ซ้ำกันในไฟล์ของคุณ อาจใช้เวลาสักครู่ แต่โดยทั่วไปสิ่งนี้จะเป็นจะค้นหาสตริงบนอุปกรณ์แล้วส่งกลับสาย 100 file.txtก่อนและหลังเส้นที่และทำให้มันอยู่ใน หากคุณต้องการส่งคืนบรรทัดเพิ่มเติมให้ปรับ-Bและ-Aตัวเลือกตามความเหมาะสม คุณอาจได้รับขยะจำนวนมากคืน แต่คุณควรจะได้รับข้อความของคุณกลับมา

โชคดี.


8
บางคนแสดงให้ฉันเห็นสิ่งนี้สองสามสัปดาห์หลังจากที่ฉันเปลี่ยนมาใช้ Linux เมื่อฉันฆ่าเอกสารข้อความที่ฉันต้องการจริง ๆ - มันทำให้ฉันคิดถึงใจมาก
Michael Mrozek

18
โดยวิธีการ-B100 -A100สามารถถูกแทนที่ด้วยเทียบเท่า-C100(C สำหรับ "บริบท") และฉันจะไม่ใช้อย่างแน่นอน-iหากเป็นไปได้ แต่มี-Fอยู่ในที่ของมัน
rozcietrzewiacz

อาจไม่แปลกใจ - ฉันถือว่าดิสก์บล็อกเดิมถูกนำมาใช้ซ้ำ - วิธีนี้ใช้ไม่ได้กับไฟล์ที่ฉันเขียนทับโดยไม่ตั้งใจไม่ได้ตั้งใจลบ
ntc2

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

คุณต้องการ / dev / sda1 หรือไม่ คุณสามารถไปที่ Director ที่เป็นไฟล์และเรียกใช้โดยไม่ต้อง / dev / sda1 ได้ไหม?
coolcool1994

22

เป็นไปได้ว่ามันจะยุ่งยาก

UPDATE:ก่อนที่คุณจะลองใช้วิธีนี้โปรดดูได้ที่สตีเว่นของคำตอบ

คุณจะต้องใช้แพคเกจtestdisk เนื้อที่ดิสก์จำนวนมากและใช้เวลานานมาก

PhotoRec ซึ่งเป็นส่วนหนึ่งของ TestDisk สามารถกู้คืนไฟล์ได้เกือบทุกแผ่น PhotoRec รองรับการค้นหา.texไฟล์


ก่อนอื่นให้ติดตั้งtestdiskโดยเรียกใช้

yum install testdisk

หมายเหตุ: คุณจะต้องการพื้นที่ว่างจำนวนมากบนไดรฟ์อื่นซึ่งคุณสามารถบันทึกไฟล์ที่กู้คืนได้

กู้คืนไฟล์ที่ถูกลบทั้งหมดในแผ่นดิสก์ของคุณโดยใช้photorecพื้นที่ว่างบนแผ่นดิสก์

sudo photorec

และทำตามคำแนะนำ ... (อย่าลืมบันทึกไฟล์ลงในแผ่นดิสก์แผ่นเดียวกับที่คุณกู้คืนมา)

หลังจากกระบวนการเสร็จสมบูรณ์ไฟล์กู้คืนทั้งหมดควรอยู่ในไดเรกทอรีเดียวซึ่งคุณควรรัน:

find -name '*.tex' > filelist

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


11
photorec เป็นประโยชน์ที่ดีฉันจะกังวลเกี่ยวกับการเขียนดิสก์ที่จะเกิดขึ้นระหว่างการติดตั้ง มีอยู่เพื่อรับนี้เป็นปฏิบัติการแบบสแตนด์อโลนที่สามารถเรียกใช้จากสื่อภายนอกหรือไม่
Steven D

1
ใช่คุณพูดถูก ฉันไม่รู้เกี่ยวกับไฟล์สั่งการแบบสแตนด์อโลน แต่สามารถลองใช้ live-cd ได้บ้าง?
สเตฟาน

2
เพื่อลดไฟล์ที่กู้คืนด้วย Photorec หน้าจอที่สามในจะให้ [เลือกไฟล์] เลือกสิ่งนี้ จากรายการคุณสามารถเลือกประเภทไฟล์ที่คุณต้องการหรือไม่ต้องการกู้คืน
Steve Burdine

13

เครื่องมือแก้ไขข้อความหลายตัวเก็บไฟล์สำรองไว้ หากคุณโชคดีจริงๆอาจมี yourfile.tex ~ รวมถึงไฟล์รุ่นก่อนหน้าของคุณ


9

มีเครื่องมือการกู้คืนข้อมูลอื่น ๆ ที่มีประสิทธิภาพมากที่สุดที่มีอยู่และที่สำคัญที่สุด , PhotoRec , มีดผ่าตัดและกู้ภัยมายากล (ฉันสมมติว่าเคล็ดลับ 'grep' ที่บอกไว้ที่นี่ไม่เพียงพอ) ที่นี่คุณสามารถดูบทแนะนำเกี่ยวกับวิธีการใช้งาน:

http://www.howtogeek.com/howto/15761/recover-data-like-a-forensics-expert-using-an-ubuntu-live-cd/

https://help.ubuntu.com/community/DataRecovery


4

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

distros เหล่านั้นมีเครื่องมือการกู้คืนจำนวนมากที่ผู้อื่นกล่าวถึงและคุณสามารถติดตั้งส่วนใหญ่ที่ขาดหายไปได้

ฉันมักจะมีซีดีที่มี SystemRescueCd รุ่นล่าสุดในตัวอ่าน USB ภายนอกของฉันเสมอ


3

หมายเหตุ:ฉันได้เพิ่มคำตอบนี้เกี่ยวกับคำถามอื่น ๆ เกี่ยวกับไฟล์ฐานข้อมูลที่ถูกลบ (เซิร์ฟเวอร์ MySQL) ซึ่งถูกปิดและชี้ไปที่ไฟล์นี้ ฉันเชื่อว่ามันจะมีประโยชน์ในบางสถานการณ์ที่คล้ายกันด้วย (เท่าที่บางกระบวนการยังคงเปิดไฟล์ descriptors)

หากกระบวนการของคุณยังคงทำงานอยู่คุณสามารถค้นหาไฟล์ของคุณ/proc/<pid>fd/และคัดลอกได้ ส่งSIGSTOPก่อนถึงกลุ่มกระบวนการ คัดลอกไฟล์ สร้างอินสแตนซ์ใหม่ที่ด้านข้างและหยุดสิ่งนี้ไว้หรือkill -9ไม่และนำไฟล์กลับมาไว้ที่เดิม InnoDB จะกู้คืนด้วยตัวเองเมื่อทำงาน แต่ถ้ามี MyISAM มากกว่าที่คุณต้องทำด้วยตนเอง


2

ฉันลบไฟล์ dblite db โดยไม่ตั้งใจ

สิ่งที่ฉันทำเพื่อค้นหาไฟล์คือ

เปิดตำแหน่ง/proc/ในเบราว์เซอร์ไฟล์และค้นหาไฟล์ sqlite db ที่ถูกลบตรงนั้น

ฉันพบไฟล์นั้นในผลการค้นหา คัดลอกไฟล์นั้นจากที่นั่นไปยังที่เก่าของฉัน


0

ฉันมีปัญหาเดียวกันเมื่อสองปีก่อนและฉันลองใช้โปรแกรมมากมายเช่น debugfs, photorec, ext3grep และ extundelete ext3grep เป็นโปรแกรมที่ดีที่สุดในการกู้คืนไฟล์ ไวยากรณ์ง่ายมาก:

ext3grep image.img --restore-all

หรือ:

ext3grep /dev/sda3 --restore-all --after date -d '2015-01-01 00:00:00' '+%s' --before `date -d ‘2015-01-02 00:00:00’ ‘+%s’

นี้วิดีโอเป็นกวดวิชาขนาดเล็กที่สามารถช่วยให้คุณ


0

หากคุณไม่มีการสำรองข้อมูลเครื่องมือการกู้คืนดิสก์ของบุคคลที่สามอาจกู้คืนข้อมูลบางส่วนหรือทั้งหมด แต่คุณต้องหยุดใช้เครื่องทันที ขณะนี้ไฟล์ที่อยู่ในถังขยะพร้อมให้ระบบของคุณเขียนทับได้แล้ว เมื่อพวกเขาถูกเขียนทับมันมีราคาแพงมากในการกู้คืนข้อมูล ฉันประสบความสำเร็จในการใช้การกู้คืนข้อมูล uflysoft (มีแอปพลิเคชั่นกู้คืนข้อมูล Mac OS อื่น ๆ ) - คุณต้องมี "ไดรฟ์กู้คืน" (ไม่ใช่ไดรฟ์หลักหรือไดรฟ์ที่คุณขับไล่) คุณบูตจากดิสก์ Data Recovery (ระบบ)

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.