丟了文件誤刪還能找回嗎:TestDisk 與 PhotoRec 數(shù)據(jù)恢復(fù)工具實操)
分區(qū)丟了文件誤刪還能找回嗎TestDisk 與 PhotoRec 數(shù)據(jù)恢復(fù)工具實操【免費下載鏈接】testdiskTestDisk PhotoRec項目地址: https://gitcode.com/gh_mirrors/te/testdisk上周有個同事把相機 SD 卡插電腦整理照片一個全選 刪除婚禮相冊沒了連回收站都沒有。這類事情在數(shù)據(jù)恢復(fù)里最常見也是 TestDisk 和 PhotoRec 這套數(shù)據(jù)恢復(fù)工具最擅長的場景TestDisk 修分區(qū)表和引導(dǎo)扇區(qū)PhotoRec 靠文件簽名把內(nèi)容直接摳出來。下面按事故類型給你交代清楚怎么救。先對號入座你的事故屬于哪一種動手前花一分鐘判斷走哪條路線比裝工具更重要。事故類型典型表現(xiàn)數(shù)據(jù)還能不能救走哪條路線誤刪單個文件文件不在了分區(qū)正常一般能路線一整盤格式化分區(qū)還在但文件全空大概率能路線一分區(qū)丟失 / 損壞磁盤顯示未初始化、容量不對大概率能路線二物理壞道讀取報錯、咔咔響、識別時斷時續(xù)先鏡像再談路線三不管哪條路線第一條鐵律都一樣發(fā)現(xiàn)事故立刻停止往這塊盤寫入任何東西包括再保存一份試試。把工具裝進手里三個系統(tǒng)各一行裝哪個系統(tǒng)就裝哪條# Debian / Ubuntu sudo apt-get install testdisk # Fedora / RHEL sudo dnf install testdisk # macOS brew install testdisk要拿最新功能就從源碼編譯git clone倉庫后執(zhí)行./autogen.sh ./configure make sudo make install即可細節(jié)見項目里的 INSTALL 文件。裝完先驗證一把別等出事才發(fā)現(xiàn)版本不對testdisk /version photorec /version路線一誤刪的文件和照片怎么找回急救動作設(shè)備立刻卸載unmount或者干脆拔下來。SD 卡、U盤這種移動介質(zhì)不再使用就是最有效的保護。操作步驟用sudo fdisk -l確認設(shè)備名比如/dev/sdb1。優(yōu)先在源設(shè)備上跑sudo testdisk /dev/sdb選 Analyze找到對應(yīng)分區(qū)后選 Undelete只支持 FAT 系列和 ext2 等少數(shù)文件系統(tǒng)但速度很快。嫌麻煩或者文件系統(tǒng)不受支持直接上 PhotoRecsudo photorec /dev/sdb1選分區(qū)、選保存目錄必須是一塊別的盤開搜。搜完看輸出目錄文件按類型分在一個個小目錄里。結(jié)果驗證抽幾張圖打開、抽個視頻點播放。注意兩點恢復(fù)出來的文件名是 PhotoRec 生成的不是原來的名字文件名信息在這條路線里基本拿不回來要按目錄和修改時間自己認領(lǐng)。路線二分區(qū)表損壞后怎么修急救動作先導(dǎo)出當(dāng)前分區(qū)表留底sudo sfdisk -d /dev/sda pt_backup.txt。寫操作永遠建立在留底之上。操作步驟跑sudo testdisk /dev/sda分區(qū)表類型一般選 Intel / IBM。進 Analyze先走 Quick Search絕大多數(shù)丟失分區(qū)一遍就能掃出來??焖偎阉鳑]找到再換 Deep Search時間會長很多但覆蓋更全。掃出來的分區(qū)檢查起止邊界確認文件系統(tǒng)類型和容量都對得上。選 Write 寫回分區(qū)表然后重掛載驗證。結(jié)果驗證用sudo fdisk -l /dev/sda看分區(qū)是否回來掛載后確認目錄可讀。寫之前 TestDisk 會讓你把新分區(qū)表存一份到文件這個動作別跳過寫錯了至少還能還原。路線三壞道盤的應(yīng)急提取急救動作別反復(fù)掛載、別跑檢測工具硬掃先做鏡像。操作步驟用ddrescue做鏡像多數(shù)發(fā)行包里有沒有就sudo apt-get install gddrescuesudo ddrescue /dev/sda /backup/sda.img /backup/sda.log后面所有操作都在sda.img上進行源盤從此只讀。PhotoRec 可以直接吃鏡像文件sudo photorec /d /backup/recovered /backup/sda.img。分區(qū)結(jié)構(gòu)問題則sudo testdisk /backup/sda.img分析。結(jié)果驗證看/backup/sda.log里剩余未讀區(qū)域是否還值得再跑一輪 ddrescue恢復(fù)出的文件抽樣打開。物理損壞的盤鏡像是唯一穩(wěn)妥的中間層源盤上的每一次直接讀取都在賭磁頭。疑難參數(shù)速查參數(shù)不多記住什么時候用就行什么時候用命令作用第一次接觸一塊盤testdisk /list只列出當(dāng)前分區(qū)不寫任何東西掃描或分析卡住、想排查加/log生成.log日志文件日志還是看不懂加/debug輸出更細的調(diào)試信息想指定恢復(fù)文件存哪photorec /d /path/dir指定輸出目錄需要看原始扇區(qū)testdisk /dumpdump 原始扇區(qū)內(nèi)容確認裝的是哪個版本testdisk /version顯示版本號設(shè)備名或鏡像文件作為最后一個參數(shù)傳入即可比如testdisk /dev/sda或photorec image.dd。踩坑清單恢復(fù)結(jié)果存回原盤恢復(fù)前先把目標(biāo)目錄指到另一塊盤源盤上任何寫入都可能覆蓋還沒救出來的數(shù)據(jù)。源盤沒卸載就開掃掃描本身是只讀的但你的系統(tǒng)不是先 unmount。目標(biāo)盤空間按原盤大小估carving 出來的文件大小和原盤占用是兩回事留余量。分區(qū)表類型選了 Other默認先選 Intel / IBM選錯了搜索結(jié)果全是亂的。用dd if直接讀壞道盤遇到壞區(qū)會卡死換ddrescue它能記日志、可斷點續(xù)跑。指望恢復(fù)出原始文件名PhotoRec 走簽名不讀目錄文件名是生成的按類型目錄認文件。分區(qū)表沒留底就點 Write養(yǎng)成sfdisk -d先導(dǎo)出的習(xí)慣寫壞還能回滾。原理一瞥TestDisk 不碰數(shù)據(jù)區(qū)它干的事是找邊界。每種文件系統(tǒng)都有自己的超級塊和簽名特征NTFS 的引導(dǎo)扇區(qū)、ext 的超級塊、GPT 頭都有固定格式TestDisk 順著這些特征把分區(qū)的起止位置找回來然后把新的分區(qū)表寫進磁盤的表區(qū)。數(shù)據(jù)本身一個字節(jié)都沒動過。PhotoRec 的思路正好相反不查目錄頁一頁一頁把照片翻出來。它完全無視文件系統(tǒng)從扇區(qū) 0 開始順序讀每個位置都拿去和各格式的文件頭比對命中之后按該格式的規(guī)則往后讀直到碰到文件尾簽名才收尾。這套carving雕刻流程能救格式化后的盤代價就是拿不回文件名和目錄結(jié)構(gòu)。兩種工具都嚴(yán)格只讀源盤這個保證寫進了它們的定位里也是你敢直接把它指向一塊問題盤的原因。想往下鉆源碼三個入口分區(qū)表處理模塊partgpt.c、msdos.c等、文件格式識別引擎 和各類file_*.c簽名實現(xiàn)、PhotoRec 運行原理說明。收尾重要數(shù)據(jù)兩份起本地一份、異地一份。刪除動作前先看一眼回收站。新盤裝系統(tǒng)之前用fdisk -l把目標(biāo)盤確認清楚別憑設(shè)備名猜。【免費下載鏈接】testdiskTestDisk PhotoRec項目地址: https://gitcode.com/gh_mirrors/te/testdisk創(chuàng)作聲明:本文部分內(nèi)容由AI輔助生成(AIGC),僅供參考