Trong các cửa sổ đã xóa có thể được tìm thấy trong thùng rác nếu bạn không nhấn shift ,
Những gì về các tập tin bị xóa rm -ftrong linux
Trong các cửa sổ đã xóa có thể được tìm thấy trong thùng rác nếu bạn không nhấn shift ,
Những gì về các tập tin bị xóa rm -ftrong linux
Câu trả lời:
Điều đầu tiên cần nhớ là - ngừng thực hiện bất kỳ hoạt động ghi nào nữa trên hệ thống tập tin.
Sau đó, bạn có thể thử một số công cụ sẽ xem xét hệ thống tệp và cố gắng định vị dữ liệu trong nút bị xóa. ' extundelete' là một trong những công cụ như vậy tại sourceforge.
extundelete là một tiện ích có thể khôi phục các tệp đã bị xóa từ phân vùng ext3 hoặc ext4 . Hệ thống tệp ext3 là hệ thống tệp phổ biến nhất khi sử dụng Linux và ext4 là hệ thống kế thừa của nó. extundelete sử dụng thông tin được lưu trữ trong tạp chí của phân vùng để cố gắng khôi phục một tệp đã bị xóa khỏi phân vùng. Không có gì đảm bảo rằng bất kỳ tệp cụ thể nào cũng có thể bị xóa, vì vậy hãy luôn cố gắng có một hệ thống sao lưu tốt, hoặc ít nhất là đặt một vị trí sau khi khôi phục các tệp của bạn!
Bước đầu tiên sẽ là thử một công cụ phục hồi cho hệ thống tập tin được sử dụng cho ổ đĩa gốc của bạn.
Như đã đề cập, ext3grep và extundelete là các công cụ cho họ hệ thống tệp ext.
Một tùy chọn khác tùy thuộc vào loại tệp đang cố khôi phục là chạy trình khắc tệp trên ổ đĩa. Điều này sẽ mất nhiều thời gian hơn các tiện ích trên.
Đầu tiên là một lựa chọn tôi đã sử dụng cho việc này.
Tùy chọn cuối cùng, nếu bạn tình cờ biết một chuỗi nhất định trong tệp, là mở ổ đĩa trong trình soạn thảo hex và tìm kiếm chuỗi đó.
Tùy thuộc vào thiết lập của bạn, trình quản lý cửa sổ của bạn có thể cung cấp thùng rác / thùng rác.
Vào cuối ngày, hoàn toàn không có sự thay thế nào cho việc thiết lập hệ thống sao lưu tốt. Tìm một cái mà thực hiện công việc của nó mà không cần bạn chạm vào nó và thiết lập nó. Bạn sẽ tiết kiệm cho mình rất nhiều thời gian, rắc rối và đau đớn trong thời gian dài.
Tôi sẽ thử cái này, ext3grep:
http://www.xs4all.nl/~carlo17/howto/undelete_ext3.html
Bạn phải ngắt kết nối phân vùng trước khi bắt đầu.
HTH
Vì undelete_ext3 dường như không còn nữa, đây là một tập lệnh bash khiêm tốn, giúp tôi khôi phục một số tệp không thể lấy được bằng cách sử dụng extundelete hoặc debugfs . Giải pháp chia sẻ.
Bạn có thể đoán trước một danh sách các khối để xem, xem PRESEED. Phải mất một số khối trên mỗi dòng. Nếu bạn không chèn sẵn, tất cả các khối sẽ được tìm kiếm, mặc định.
Vì bạn có thể sẽ có một trường hợp sử dụng khác, điều này có thể cung cấp cho bạn một khung để dựa trên bộ lọc của riêng bạn. Bạn chắc chắn sẽ cần phải điều chỉnh các giá trị khi tìm kiếm các kiểu tệp khác.
Yêu cầu mẫu: ./ext-undelete-tar-gz.sh devimage found_files/
#!/bin/bash
# Brute force (linear) search specific tar files with
# certain contents on ext2 / ext3 / ext4 devices or files
#
# .. this is a last resort if extundelete and/or debugfs
# did not find what you were looking for and limited
# in that recoverable data must not have been stored
# in fragments, i.e. non-sequentially
[[ -n "$2" ]] || {
echo "usage: $0 [ device | imagefile ] "\
"[ destdir_for_recovered_data ] "\
"[ max_blocks_to_search (optional) ]"
exit 1
}
IMG=$1
DEST=$2
TMP=/dev/shm/cand.tmp
PRESEED=/dev/shm/cand.list
GZMAGIC=$(echo -e "\x1f\x8b\x08")
TARMAGIC=$(echo -e "ustar")
# max bytes to read into $TMP when a .tar.gz has been found
LEN=$((160*1024))
# pick $TMP for recovery based on matched strings..
FILE_IN_TAR="debian/rules" # ..in the tar index (suffix-search)
FIT_CONTENT="link-doc=" # ..within FILE_IN_TAR matches
# determine FS parameters
BLOCKS=$(tune2fs -l $IMG | grep -Po "(?<=^Block count:).*" | xargs)
BS=$(tune2fs -l $IMG | grep -Po "(?<=^Block size:).*" | xargs)
LEN=$((LEN/BS))
function _dd { dd $@ 2>/dev/null ; }
function _gunzip { gunzip $@ 2>/dev/null ; }
function _tar { tar $@ 2>/dev/null ; }
function inspect_block {
bnum=$1
if _dd if="$IMG" skip=$bnum bs=$BS count=1 | tee "$TMP" \
| _dd bs=1 count=3 \
| grep -qF "$GZMAGIC"
then
if _gunzip -c "$TMP" \
| _dd bs=1 count=5 skip=257 \
| grep -qF "$TARMAGIC"
then
_dd if="$IMG" skip=$((bnum+1)) bs=$BS count=$((LEN-1)) >> "$TMP"
echo -n found $bnum.tar.gz
if _tar xzf "$TMP" -O --wildcards *"$FILE_IN_TAR" \
| grep -qF "$FIT_CONTENT"
then
echo " ..picked, stripping trailing garbage:"
exec 3>&1
gunzip -c "$TMP" 2>&3 | gzip > $DEST/$bnum.tar.gz
exec 3>&-
else
echo
fi
fi
fi
echo -ne "$((bnum+1)) / $BLOCKS done.\r" >&2
}
if [[ -f "$PRESEED" ]]
then
while read bnum
do inspect_block $bnum
done <"$PRESEED"
else
for (( bnum = 0 ; bnum < ${3:-$BLOCKS} ; bnum++ ))
do inspect_block $bnum
done
fi | gzip >"$PRESEED.log.gz"
echo
rmbỏ liên kết (các) nút i được liên kết với tệp.