ยกเลิกการลบไฟล์ที่ถูกลบใน ext4 ด้วย extundelete


54

มีตัวเลือกง่าย ๆextundeleteว่าฉันจะพยายามยกเลิกการลบไฟล์ที่เรียก/var/tmp/test.isoว่าเพิ่งลบไปได้หรือไม่?

(ไม่สำคัญเลยที่ฉันจะเริ่มติดตั้งไดรฟ์แบบอ่านอย่างเดียวหรือสิ่งต่าง ๆ อีกครั้งฉันสามารถดาวน์โหลดไฟล์นั้นอีกครั้งได้อีกครั้ง)

ฉันกำลังมองหาคำสั่งง่ายๆที่ฉันสามารถลองถ้าฉันจัดการเพื่อกู้คืนได้อย่างรวดเร็ว

ฉันรู้ว่าเป็นไปได้ด้วยการติดตั้งไดรฟ์ใหม่ในแบบอ่านอย่างเดียว : (ดูฉันจะกู้คืนไฟล์เดียวบนดิสก์เปล่าที่เพิ่งลบไปได้อย่างไร )

แต่สิ่งนี้อาจเป็นไปได้ในดิสก์ที่ติดตั้งอยู่หรือไม่


คำถามทั่วไปกับยูทิลิตี้ใด ๆ : unix.stackexchange.com/questions/2677/…
Ciro Santilli 事件改造中心中心法轮功六四事件

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

ฉันไม่ได้ตั้งใจจะบอกเป็นนัย แต่คุณอาจต้องการเพิ่มลงในคำถามที่ว่าทำไมคำถามนั้นไม่เพียงพอ
Ciro Santilli 事件改造中心法轮功六四事件

คำตอบ:


36

ดูคู่มือการใช้งานเรื่องextundeleteดูเหมือนว่าคุณจะถูก จำกัด ให้ยกเลิกการลบไฟล์ได้ไม่กี่วิธี

คืนค่าทั้งหมด

extundelete ถูกออกแบบมาเพื่อยกเลิกการลบไฟล์จากพาร์ติชัน unmounted ไปยังพาร์ติชันแยก (เมาท์) extundelete จะกู้คืนไฟล์ใด ๆ ที่พบในไดเรกทอรีย่อยของไดเรกทอรีปัจจุบันชื่อ“ RECOVERED_FILES” หากต้องการเรียกใช้โปรแกรมให้พิมพ์“ extundelete --help” เพื่อดูตัวเลือกต่าง ๆ ที่มีให้สำหรับคุณ

การใช้งานทั่วไปเพื่อกู้คืนไฟล์ที่ถูกลบทั้งหมดจากพาร์ติชันมีลักษณะดังนี้:

    $ extundelete /dev/sda4 --restore-all

การกู้คืนไฟล์เดียว

นอกจากวิธีนี้จะเน้นในการใช้บรรทัดคำสั่ง:

--restore-file path/to/deleted/file
    Attemps to restore the file which was deleted at the given filename, 
    called as "--restore-file dirname/filename".

ดังนั้นคุณควรจะสามารถบรรลุสิ่งที่คุณต้องการทำสิ่งนี้:

$ extundelete --restore-file /var/tmp/test.iso /dev/sda4

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


2
ใช่ แต่ทั้งหมดนี้ใช้ได้เฉพาะถ้าฉันติดตั้งไดรฟ์แบบอ่านอย่างเดียว
rubo77

1
@ rubo77 - ถูกต้องไม่มีทางใดที่จะแก้ไข
slm

2
มันใช้งานได้จริงสำหรับฉันเป็นระบบไฟล์ ext4 โดยไม่ต้องนับใหม่เป็นแบบอ่านอย่างเดียว หากคุณพยายามทำโดยไม่แจ้งเตือน r / o ใหม่คุณจะได้รับคำเตือนซึ่งดูเหมือนว่าจะบอกคุณว่าโอกาสในการประสบความสำเร็จของคุณจะลดลงหากคุณทำเช่นนั้น หากสำคัญอย่างยิ่งในการกู้คืนไฟล์ดูเหมือนว่าคุณควรทำเช่นนั้น
Ben Crowell

เช่นเดียวกับ @BenCrowell ฉันใช้โดยไม่มีการติดตั้งใหม่ แต่โปรแกรมโฆษณาเกี่ยวกับความเสียหายของข้อมูลถ้าฉันใช้ hdd ต่อไป ... เป็นการลบเมื่อเร็ว ๆ นี้ดังนั้นฉันเพียงกด Enter จากนั้นนำไฟล์ของฉันกลับมา;)
erm3nda

16

สถานการณ์การใช้งานโดยทั่วไปเมื่อยกเลิกการนำทุกไฟล์รวมถึงต้องเรียกคืนไฟล์ทั้งหมดที่ถูกลบออกจาก/dev/sdX1ในช่วงเวลาประมาณล่าสุด:

mount -o remount,ro /dev/sdX1
extundelete --restore-all --after $(date -d "-2 hours" +%s) /dev/sdX1
find RECOVERED_FILES/

หากพอใจกับไฟล์ที่กู้คืนแล้ว:

mount -o remount,rw /dev/sdX1

เมานต์: คุณต้องระบุประเภทระบบไฟล์

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

@ Don'tYouWorryChild mount -oใช้เวลาทั้ง dir หรืออุปกรณ์เป็นต่อman mount
sanmai

แทนการลบ 2 ชั่วโมงนับจากวันที่คุณสามารถทำได้$(date -d "-2 hours" +%s)และผลลัพธ์ของlsblk -pอาจเป็นประโยชน์ในการค้นหาที่ที่มีการเข้ารหัสลับระดับเสียง LVT แคช EXT4 LUKS เข้ารหัส ;)
LiveWireBT
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.