據(jù)恢復(fù)指南:從EXT4原理到實(shí)操工具)
平時(shí)清理銀河麒麟系統(tǒng)時(shí)很多人習(xí)慣順手清空回收站。但清空之后才想起來某個(gè)重要文件其實(shí)還在回收站里或者誤刪時(shí)壓根沒來得及備份——那一刻的心情想必不太好受。作為一名經(jīng)常和國產(chǎn) Linux 系統(tǒng)打交道的開發(fā)者這類問題我也遇到過而且網(wǎng)上的資料確實(shí)零散很多方案只講了“有文件在回收站”時(shí)怎么恢復(fù)沒有覆蓋“回收站已清空”的場景。這篇文章圍繞銀河麒麟桌面系統(tǒng)以 Kylin V10 系列為例展開把回收站的存儲(chǔ)機(jī)制、誤刪后的恢復(fù)原理、命令行恢復(fù)工具、備份與快照方案以及常見坑點(diǎn)一次性講清楚。無論你是剛接觸銀河麒麟的新用戶還是在企業(yè)環(huán)境里維護(hù)國產(chǎn)化終端的運(yùn)維同學(xué)都可以按下面的步驟照做。先說明一點(diǎn)恢復(fù)的成敗取決于多種因素但越早停寫數(shù)據(jù)、操作方法越正確成功概率越高。1. 銀河麒麟回收站與數(shù)據(jù)恢復(fù)的基本概念1.1 回收站的作用銀河麒麟桌面版沿用了主流 Linux 桌面環(huán)境的交互模型。當(dāng)你在文件管理器中按Delete刪除文件時(shí)文件并沒有被立即從磁盤上抹掉而是被移動(dòng)到了當(dāng)前用戶的回收站目錄這一步通常稱為“移入回收站”。這樣做的好處是給誤刪操作留了一個(gè)后悔的窗口文件還在磁盤上只是“搬家”到了回收站用戶隨時(shí)可以從回收站窗口里把它恢復(fù)到原路徑。不過要注意回收站不等于永久刪除。真正把數(shù)據(jù)從文件系統(tǒng)里解綁的動(dòng)作是“清空回收站”或者在文件管理器中按住Shift Delete直接刪除。清空回收站后普通用戶在桌面界面里基本找不到“撤銷”入口這也正是這篇文章要重點(diǎn)解決的問題。1.2 清空回收站后的數(shù)據(jù)狀態(tài)從用戶視角看清空回收站后文件確實(shí)看不見了。但從磁盤和文件系統(tǒng)視角看情況要復(fù)雜一些。Linux 下常見的 EXT4 文件系統(tǒng)在刪除文件時(shí)主要是做了兩件事從目錄項(xiàng)中移除文件名與 inode 的關(guān)聯(lián)。釋放該文件占用的數(shù)據(jù)塊并把這些塊標(biāo)記為“空閑可復(fù)用”。也就是說文件內(nèi)容本身并沒有被立刻清零或者覆蓋。只要這些磁盤塊沒有被后續(xù)的新數(shù)據(jù)寫入文件內(nèi)容就一直躺在原地等待被專門的文件恢復(fù)工具撈出來。這就是“回收站已清空但文件仍可能恢復(fù)”的底層原理。1.3 恢復(fù)的可行性判斷能不能恢復(fù)取決于幾個(gè)關(guān)鍵因素文件是否已被覆蓋如果在清空回收站后又繼續(xù)復(fù)制、下載、編譯等占用了原文件所在磁盤塊那么恢復(fù)內(nèi)容可能已損壞。文件系統(tǒng)類型銀河麒麟系統(tǒng)盤通常是 EXT4這種情況有較成熟的恢復(fù)工具。但如果 /home 或數(shù)據(jù)盤使用了 XFS情況會(huì)復(fù)雜很多部分 EXT4 恢復(fù)工具不適用。操作是否及時(shí)越早停止寫入恢復(fù)成功率越高。當(dāng)前用戶權(quán)限磁盤級恢復(fù)通常需要 root 權(quán)限或 sudo 權(quán)限。2. 銀河麒麟回收站的數(shù)據(jù)存儲(chǔ)機(jī)制2.1 回收站目錄結(jié)構(gòu)銀河麒麟桌面版遵循 freedesktop.org 的 Trash 規(guī)范。每個(gè)用戶在文件管理器里看到的“回收站”一般映射到這個(gè)目錄~/.local/share/Trash用ls -la看這個(gè)目錄你會(huì)發(fā)現(xiàn)它下面通常有多個(gè)子目錄最常見的是files存放被刪除文件的實(shí)際數(shù)據(jù)。info存放每個(gè)刪除記錄對應(yīng)的元信息記錄文件的原路徑、刪除時(shí)間等。info里的文件以.trashinfo結(jié)尾內(nèi)容大致長這樣[Trash Info] Path/home/kylin/文檔/公司合同.pdf DeletionDate2025-02-10T15:30:22這個(gè)文件非常重要。它告訴你回收站里的文件原本在哪個(gè)目錄方便你手動(dòng)恢復(fù)時(shí)準(zhǔn)確放回去。2.2 文件的刪除與清空流程在文件管理器中刪除文件時(shí)系統(tǒng)執(zhí)行的操作是在info目錄生成對應(yīng)的.trashinfo文件記錄原始路徑。將文件數(shù)據(jù)移動(dòng)到files目錄。因?yàn)橥瑢儆谝粋€(gè)文件系統(tǒng)這個(gè)移動(dòng)通常是 rename 操作速度很快數(shù)據(jù)塊位置沒有變化所以恢復(fù)比較安全。清空回收站時(shí)系統(tǒng)會(huì)刪除files目錄中的文件同時(shí)刪除info目錄中對應(yīng)的元信息。此時(shí)數(shù)據(jù)塊被系統(tǒng)標(biāo)記為空閑但內(nèi)容還未被覆蓋。2.3 雙擊刪除與命令行刪除的區(qū)別有一個(gè)容易混淆的點(diǎn)必須講清楚在文件管理器中按Delete文件進(jìn)入回收站這種誤刪容易恢復(fù)。使用rm命令刪除或者按Shift Delete文件直接繞過回收站系統(tǒng)不會(huì)生成任何回收站記錄。使用trash-put之類的命令行工具刪除則與文件管理器刪除行為一致會(huì)寫入回收站目錄。銀河麒麟沒有給rm自帶回收站語義。如果你平時(shí)習(xí)慣了命令行操作這條邊界一定要記住否則會(huì)誤以為用磁盤恢復(fù)工具能輕松找回“被 rm 掉”的文件。3. 恢復(fù)前的準(zhǔn)備工作與風(fēng)險(xiǎn)提示正式動(dòng)手恢復(fù)之前先花一點(diǎn)時(shí)間做環(huán)境確認(rèn)和安全檢查。這一步非常重要能避免“為了恢復(fù)一個(gè)文件把其他數(shù)據(jù)也弄壞”的問題。3.1 立即停止寫入目標(biāo)分區(qū)如果文件原本在/home分區(qū)、根分區(qū)/或者某個(gè)獨(dú)立數(shù)據(jù)分區(qū)上那么清空回收站后第一步是盡量不要再往這個(gè)分區(qū)寫入新數(shù)據(jù)。包括不要繼續(xù)拷貝大文件進(jìn)這個(gè)分區(qū)。不要在這個(gè)分區(qū)上安裝軟件。不要在這個(gè)分區(qū)上更新系統(tǒng)索引、生成臨時(shí)文件。如果可能瀏覽器下載目錄也不要指向這個(gè)分區(qū)。原因很簡單清空回收站只是把磁盤塊標(biāo)記為空閑新寫入的數(shù)據(jù)可能立刻搶占這些塊導(dǎo)致文件內(nèi)容無法完整恢復(fù)。3.2 確認(rèn)分區(qū)掛載與文件系統(tǒng)類型先確定文件原所在分區(qū)是哪個(gè)文件系統(tǒng)是什么類型。使用下面的命令查看df -h lsblk -fdf -h會(huì)顯示每個(gè)掛載點(diǎn)的使用情況lsblk -f則能列出塊設(shè)備、掛載路徑和文件系統(tǒng)類型。假設(shè)輸出結(jié)果是NAME FSTYPE SIZE MOUNTPOINT sda1 ext4 200G / sda2 swap 8G [SWAP] sda3 ext4 300G /home如果你的重要文件在/home那sda3就是需要處理的目標(biāo)分區(qū)文件系統(tǒng)是 ext4后續(xù) extundelete、ext4magic 等工具可以嘗試。如果是 XFS 文件系統(tǒng)就需要用 XFS 自身的備份策略來恢復(fù)不能直接套用下面針對 EXT4 的工具流程。3.3 準(zhǔn)備好外接存儲(chǔ)和工具恢復(fù)出的文件盡量不要重新寫到原分區(qū)上否則可能覆蓋尚未恢復(fù)的數(shù)據(jù)。建議準(zhǔn)備一個(gè) U 盤或移動(dòng)硬盤空間要足夠容納你希望恢復(fù)的文件。同時(shí)確認(rèn)當(dāng)前用戶具備 sudo 權(quán)限。銀河麒麟默認(rèn)桌面用戶通常加入 sudo 組。如果無法執(zhí)行 sudo需要用 root 用戶登錄或者先為當(dāng)前用戶配置 sudo 權(quán)限。sudo -v執(zhí)行sudo -v如果沒有任何報(bào)錯(cuò)說明你已經(jīng)有 sudo 能力。4. 方案一從回收站目錄直接恢復(fù)適用于尚未清空的情況這一節(jié)針對的是“誤刪后還沒有清空回收站”的情況或者“回收站只是部分文件被清空”的情況。操作最簡單成功率也最高。4.1 查看當(dāng)前用戶回收站目錄打開終端執(zhí)行l(wèi)s -la ~/.local/share/Trash/files ls -la ~/.local/share/Trash/info如果這兩個(gè)目錄里能看到你要找的文件說明它還沒有被真正清空。如果當(dāng)前登錄用戶是 root則目錄路徑通常是ls -la /root/.local/share/Trash/files4.2 根據(jù) meta 信息確定原路徑要看清每個(gè)回收站文件原本在哪個(gè)目錄可以批量讀取.trashinfo文件cd ~/.local/share/Trash/info for f in *.trashinfo; do echo $f cat $f done通過輸出信息里的Path和DeletionDate可以判斷出文件名、原目錄和刪除時(shí)間。例如[Trash Info] Path/home/kylin/項(xiàng)目資料/需求文檔.docx DeletionDate2025-02-18T10:12:00說明需求文檔.docx原本位于/home/kylin/項(xiàng)目資料/。4.3 手動(dòng)移回原目錄確認(rèn)信息后直接把files目錄下的文件移動(dòng)到原目錄即可。比如恢復(fù)需求文檔.docxmkdir -p /home/kylin/項(xiàng)目資料 mv ~/.local/share/Trash/files/需求文檔.docx /home/kylin/項(xiàng)目資料/如果原目錄不存在先用mkdir -p創(chuàng)建再執(zhí)行移動(dòng)。4.4 恢復(fù)多個(gè)文件的批處理思路如果回收站里有很多文件尤其是不同目錄混在一起手動(dòng)逐個(gè)移動(dòng)效率太低??梢越柚?trashinfo記錄做批量恢復(fù)下面是一個(gè)參考腳本#!/bin/bash # 文件路徑restore_from_trash.sh # 作用根據(jù)回收站 info 文件將 files 下的文件恢復(fù)到原路徑 TRASH_FILES$HOME/.local/share/Trash/files TRASH_INFO$HOME/.local/share/Trash/info for info in $TRASH_INFO/*.trashinfo; do # 讀取原始路徑字段去掉開頭的 Path original_path$(grep ^Path $info | cut -d -f2-) # 文件名由原始路徑的最后一段決定注意這里可能有 URL 編碼簡單場景夠用 filename$(basename $original_path) if [ -f $TRASH_FILES/$filename ]; then mkdir -p $(dirname $original_path) mv $TRASH_FILES/$filename $original_path echo 已恢復(fù)$original_path else echo 跳過$filename 在 files 目錄中不存在 fi done提示腳本示例只適合文件重名不多、路徑不含特殊編碼的常見場景。正式使用前建議先打印出待恢復(fù)列表確認(rèn)無誤后再執(zhí)行移動(dòng)。5. 方案二使用 extundelete 恢復(fù)已清空文件如果回收站已經(jīng)被清空那么上一節(jié)的方法就失效了。此時(shí)需要從磁盤層面做恢復(fù)extundelete是 Linux 下比較常用的 EXT3/EXT4 誤刪恢復(fù)工具。5.1 extundelete 的工作原理extundelete 會(huì)掃描文件系統(tǒng)元數(shù)據(jù)找出狀態(tài)為“已刪除”的 inode并嘗試按原路徑和文件名恢復(fù)內(nèi)容。它適合恢復(fù) ext4 文件系統(tǒng)上的文件銀河麒麟系統(tǒng)盤和 /home 分區(qū)大多采用 ext4因此有實(shí)用價(jià)值。需要注意extundelete 官方成熟版本對 ext4 特性的支持并不完美恢復(fù)成功率不是 100%。如果目標(biāo)文件是零散寫入的大文件或者刪除時(shí)間已經(jīng)很久恢復(fù)出來的文件可能不完整。5.2 安裝 extundelete銀河麒麟有基于 Debian 系和 RPM 系的多個(gè)版本安裝命令有差異。先查看系統(tǒng)來源cat /etc/os-release如果是 Debian 系可以嘗試sudo apt update sudo apt install extundelete如果是 RPM 系可以嘗試sudo yum install -y extundelete如果默認(rèn)軟件源里沒有這個(gè)包也可以從源碼編譯安裝。編譯前需要安裝依賴sudo apt install -y autoconf automake libtool gcc e2fslibs-dev libext2fs-dev然后解壓源碼包進(jìn)入源碼目錄執(zhí)行./configure make sudo make install源碼安裝前建議先確認(rèn)當(dāng)前系統(tǒng)架構(gòu)是 x86_64 還是 ARM64不同架構(gòu)的編譯結(jié)果不能混用。設(shè)置環(huán)境變量和補(bǔ)全依賴的具體細(xì)節(jié)因版本而異所以這里只給出通用思路。5.3 掃描并恢復(fù)文件核心思路如下找到文件所在的分區(qū)。卸載分區(qū)或者將其掛載為只讀。在其他目錄執(zhí)行恢復(fù)輸出到外接存儲(chǔ)或另一個(gè)分區(qū)。檢查恢復(fù)結(jié)果。舉個(gè)例子假設(shè)目標(biāo)分區(qū)是/dev/sda3并且掛載在/home。先查看/dev/sda3是否被占用mount | grep /home如果沒有任何進(jìn)程占用可以嘗試卸載后以只讀方式重新掛載sudo umount /dev/sda3 sudo mkdir -p /mnt/readonly sudo mount -o ro /dev/sda3 /mnt/readonly如果/home被系統(tǒng)服務(wù)占用無法卸載例如桌面會(huì)話正在使用不要強(qiáng)行 umount比較穩(wěn)妥的做法是對整個(gè)分區(qū)做鏡像備份再對鏡像進(jìn)行操作。鏡像命令參考sudo dd if/dev/sda3 of/外部存儲(chǔ)/home_partition.img bs64M statusprogress鏡像文件需要放在另一塊磁盤或外接存儲(chǔ)上否則原數(shù)據(jù)會(huì)被鏡像本身覆蓋。5.4 恢復(fù)文件示例場景一恢復(fù)指定路徑的文件sudo extundelete /dev/sda3 --restore-file /home/kylin/項(xiàng)目資料/需求文檔.docx注意這里的路徑是文件在系統(tǒng)中的原始路徑不是回收站路徑。命令執(zhí)行后會(huì)在當(dāng)前目錄生成RECOVERED_FILES文件夾恢復(fù)出的文件在這個(gè)文件夾中按原路徑存放。場景二恢復(fù)某個(gè)目錄下的所有文件sudo extundelete /dev/sda3 --restore-directory /home/kylin/項(xiàng)目資料場景三恢復(fù)全部已刪除文件sudo extundelete /dev/sda3 --restore-all執(zhí)行時(shí)終端會(huì)打印掃描到的已刪除文件和 inode 信息最后顯示類似Restoring /home/kylin/項(xiàng)目資料/需求文檔.docx這種輸出表示文件已經(jīng)按原路徑恢復(fù)到RECOVERED_FILES下。5.5 恢復(fù)后的文件校驗(yàn)恢復(fù)完成后先用file命令判斷文件類型是否正常file RECOVERED_FILES/home/kylin/項(xiàng)目資料/需求文檔.docx如果是 Office 文檔或 PDF可以嘗試直接打開。如果文件損壞可以考慮從備份或快照恢復(fù)而不是反復(fù)對原分區(qū)執(zhí)行恢復(fù)操作因?yàn)槎啻螄L試可能互相干擾。6. 方案三使用 ext4magic 按時(shí)間窗口恢復(fù)ext4magic比 extundelete 強(qiáng)的一點(diǎn)是它可以借助 ext4 文件系統(tǒng)的日志journal來定位刪除點(diǎn)支持按時(shí)間范圍恢復(fù)。如果你知道文件大約是什么時(shí)間被清空使用 ext4magic 可以更精準(zhǔn)。6.1 ext4magic 的特點(diǎn)ext4magic 同樣只支持 ext3/ext4 文件系統(tǒng)。它依賴文件系統(tǒng)的日志如果日志已被循環(huán)覆蓋或系統(tǒng)異常關(guān)閉恢復(fù)能力會(huì)下降。它的優(yōu)勢是能基于刪除時(shí)間過濾減少誤掃文件數(shù)量。6.2 安裝 ext4magicDebian 系嘗試sudo apt install ext4magicRPM 系嘗試sudo yum install -y ext4magic如果軟件源里沒有同樣需要源碼編譯。編譯依賴與 extundelete 相似還需要pkg-config等基礎(chǔ)工具。6.3 基本用法ext4magic 最常用的參數(shù)-f 原路徑指定要恢復(fù)的文件路徑。-d 輸出目錄指定恢復(fù)文件存放位置。-a 時(shí)間戳恢復(fù)到指定時(shí)間點(diǎn)之前的文件狀態(tài)。-b 時(shí)間戳指定起始時(shí)間點(diǎn)。-m只列出匹配的文件不實(shí)際恢復(fù)。假設(shè)文件在今天上午 10:00 被清空現(xiàn)在想恢復(fù)/home/kylin/項(xiàng)目資料/需求文檔.docx可以執(zhí)行sudo ext4magic /dev/sda3 -f /home/kylin/項(xiàng)目資料/需求文檔.docx -d /外部存儲(chǔ)/restored -a $(date -d 2025-02-18 10:00:00 %s)這里的-a后面是 Unix 時(shí)間戳date命令負(fù)責(zé)把日期字符串轉(zhuǎn)成時(shí)間戳。先使用-m參數(shù)確認(rèn) ext4magic 能找到這個(gè)文件sudo ext4magic /dev/sda3 -f /home/kylin/項(xiàng)目資料/需求文檔.docx -m輸出結(jié)果中如果能看到與目標(biāo)文件同名或近似路徑的記錄再執(zhí)行正式恢復(fù)這樣更穩(wěn)妥。6.4 按目錄恢復(fù)如果不確定具體文件名只記得目錄路徑可以按目錄恢復(fù)sudo ext4magic /dev/sda3 -f /home/kylin/項(xiàng)目資料 -d /外部存儲(chǔ)/restored -a $(date -d 2025-02-18 10:00:00 %s)恢復(fù)出來的文件同樣需要逐個(gè)打開驗(yàn)證。7. 方案四從快照、備份與系統(tǒng)還原機(jī)制恢復(fù)如果磁盤恢復(fù)工具效果不理想最后一個(gè)可靠路徑是“提前備份”和“文件系統(tǒng)快照”。這一節(jié)重點(diǎn)講兩種實(shí)用手段。7.1 使用 rsync 備份 /home 用戶目錄在銀河麒麟日常使用中最值得備份的目錄通常是/home下各用戶的桌面、文檔、下載等數(shù)據(jù)。使用 rsync 可以做增量備份。一個(gè)簡單的備份命令sudo rsync -avh --progress /home/ /外部存儲(chǔ)/kylin_backup/home/參數(shù)說明-a歸檔模式保留權(quán)限、時(shí)間戳等屬性。-v輸出詳細(xì)信息。-h以人類可讀方式顯示大小。--progress顯示傳輸進(jìn)度。恢復(fù)某個(gè)用戶的目錄時(shí)反向執(zhí)行即可sudo rsync -avh --progress /外部存儲(chǔ)/kylin_backup/home/kylin/ /home/kylin/為了降低誤刪影響可以把備份任務(wù)交給 crontab 周期執(zhí)行例如每天晚上 2 點(diǎn)執(zhí)行一次0 2 * * * rsync -avh --delete /home/ /外部存儲(chǔ)/kylin_backup/home/注意--delete會(huì)讓備份目錄與源目錄保持一致源目錄里刪除的文件也會(huì)在備份中被刪除。如果你希望保留歷史版本不能加--delete或者需要配合其他備份工具使用。7.2 使用 Timeshift 做系統(tǒng)快照Timeshift 是 Linux 下常見的系統(tǒng)快照工具習(xí)慣上類似 Windows 的“系統(tǒng)還原”。它主要保護(hù)系統(tǒng)文件但也可以配置為同時(shí)備份用戶主目錄。安裝方式sudo apt install timeshift啟動(dòng)后按向?qū)нx擇快照類型RSYNC 模式直接把文件復(fù)制到其他分區(qū)。BTRFS 模式使用 Btrfs 文件系統(tǒng)快照能力。生成快照后如果發(fā)生誤刪可以從 Timeshift 界面進(jìn)入快照找到對應(yīng)時(shí)間點(diǎn)的文件并復(fù)制出來。不需要完全回滾系統(tǒng)只會(huì)恢復(fù)你要的那個(gè)文件。7.3 銀河麒麟自帶備份工具銀河麒麟桌面版通常集成有“備份還原”或“系統(tǒng)備份”工具位置可能在“開始菜單 → 設(shè)置 → 備份還原”也可以直接搜索關(guān)鍵詞“備份”。不同版本界面有差異但操作邏輯類似創(chuàng)建備份點(diǎn)之后按時(shí)間點(diǎn)恢復(fù)文件。國內(nèi)很多政企項(xiàng)目要求做國產(chǎn)終端的數(shù)據(jù)備份企業(yè)場景建議統(tǒng)一使用集中備份平臺(tái)或網(wǎng)絡(luò)文件系統(tǒng)避免每臺(tái)機(jī)器各自為戰(zhàn)。8. 常見問題與排查思路問題現(xiàn)象常見原因解決思路清空回收站后目錄為空恢復(fù)工具掃描不到文件文件數(shù)據(jù)塊已被新數(shù)據(jù)覆蓋或 inode 信息已被重建立即停止寫入嘗試 extundelete 按文件名掃描如果失敗只能從備份/快照恢復(fù)文件系統(tǒng)是 XFSextundelete 提示不支持extundelete 只支持 EXT3/EXT4優(yōu)先從備份恢復(fù)XFS 場景下提前做好 xfsdump 備份計(jì)劃執(zhí)行 extundelete 提示權(quán)限不足當(dāng)前用戶不是 root使用sudo -i或sudo extundelete ...執(zhí)行恢復(fù)出的文件打開亂碼或文件損壞文件部分?jǐn)?shù)據(jù)塊已被覆蓋文件內(nèi)容不完整可嘗試按時(shí)間窗口用 ext4magic 再試一次回收站里有文件但桌面回收站圖標(biāo)看不到當(dāng)前用戶切換過或者存在多個(gè)用戶檢查/home/各用戶名/.local/share/Trash以及/root/.local/share/Trash卸載 /home 分區(qū)失敗有進(jìn)程占用目錄用lsof D /home找到占用進(jìn)程結(jié)束后再卸載不要強(qiáng)殺關(guān)鍵系統(tǒng)服務(wù)找不到回收站目錄不同桌面環(huán)境路徑有差異使用find /home -maxdepth 4 -type d -name Trash 2/dev/null搜索銀河麒麟桌面版無法安裝 navicat 類數(shù)據(jù)庫工具依賴庫或架構(gòu)不匹配以數(shù)據(jù)庫工具安裝為例確認(rèn)系統(tǒng)架構(gòu)下載對應(yīng)版本必要時(shí)安裝依賴包本文不展開數(shù)據(jù)庫連接配置核心是不要讓工具安裝過程覆蓋你要恢復(fù)的數(shù)據(jù)分區(qū)9. 最佳實(shí)踐與數(shù)據(jù)安全建議9.1 把備份當(dāng)默認(rèn)操作數(shù)據(jù)恢復(fù)工具只能算“亡羊補(bǔ)牢”最可靠的方案永遠(yuǎn)是備份。無論是個(gè)人的論文、合同、照片還是企業(yè)項(xiàng)目的源代碼、配置文件都應(yīng)該有至少一份獨(dú)立存儲(chǔ)的副本。推薦的簡單策略每周執(zhí)行一次/home下重要目錄的 rsync 增量備份。每月生成一次 Timeshift RSYNC 快照。重要文檔同步到公司網(wǎng)盤或 Git 倉庫。9.2 區(qū)分回收站與直接刪除銀河麒麟桌面版的回收站只對文件管理器里的刪除操作有效。rm命令繞過了回收站清空回收站也會(huì)立刻釋放文件索引。建議日常用鼠標(biāo)刪除文件時(shí)先確認(rèn)回收站是否保留。命令行環(huán)境下可以安裝trash-cli用trash-put替代rm讓命令行刪除也進(jìn)入回收站。安裝示例sudo apt install trash-cli使用示例trash-put /home/kylin/臨時(shí)文件.txt9.3 恢復(fù)操作遵循最小影響原則在正式恢復(fù)前遵循這樣的順序確認(rèn)磁盤信息和目標(biāo)文件所在分區(qū)。先使用只讀方式掃描不要直接對原分區(qū)寫入?;謴?fù)輸出目錄放到外接存儲(chǔ)或另一個(gè)分區(qū)。文件恢復(fù)后立即驗(yàn)證完整性不要繼續(xù)執(zhí)行大范圍掃描。涉及 root 權(quán)限和分區(qū)卸載的操作務(wù)必在測試機(jī)或低風(fēng)險(xiǎn)環(huán)境先行演練。生產(chǎn)環(huán)境或重要服務(wù)器上出現(xiàn)誤刪建議先聯(lián)系負(fù)責(zé)備份的同事不要獨(dú)自盲目操作。9.4 多用戶環(huán)境的恢復(fù)注意點(diǎn)企業(yè)環(huán)境里一臺(tái)銀河麒麟終端可能配置了多個(gè)賬戶。如果你懷疑其他用戶誤刪了文件需要切換到對應(yīng)賬戶查看回收站sudo ls -la /home/用戶名/.local/share/Trash/files沒有權(quán)限查看的情況下需要通過 sudo 或管理員賬號(hào)操作并且遵循最小權(quán)限原則不要修改無關(guān)目錄的權(quán)限。9.5 版本與架構(gòu)匹配銀河麒麟系統(tǒng)存在 x86 和 ARM 等不同架構(gòu)也有 Debian 系和 RPM 系的不同軟件生態(tài)。安裝 extundelete、ext4magic、trash-cli 等工具前先確認(rèn)uname -m cat /etc/os-release不同架構(gòu)下載的二進(jìn)制包不能混用軟件源是否包含對應(yīng)包也要以實(shí)際環(huán)境為準(zhǔn)。找不到包時(shí)優(yōu)先源碼編譯而不是從不可靠的第三方源下載。10. 總結(jié)與后續(xù)建議這篇文章從銀河麒麟回收站的存儲(chǔ)機(jī)制出發(fā)依次覆蓋了四種恢復(fù)路徑回收站未清空時(shí)直接通過~/.local/share/Trash/files和.trashinfo元數(shù)據(jù)恢復(fù)?;厥照疽亚蹇涨椅募到y(tǒng)是 ext4 時(shí)使用extundelete按文件路徑或目錄恢復(fù)。能確定刪除時(shí)間窗口時(shí)使用ext4magic借助日志定位并恢復(fù)。磁盤恢復(fù)失敗時(shí)從 rsync 備份、Timeshift 快照或系統(tǒng)備份工具中找回。實(shí)際操作時(shí)最重要的事情只有兩件第一時(shí)間停止向目標(biāo)分區(qū)寫入新數(shù)據(jù)以及把恢復(fù)結(jié)果輸出到其他存儲(chǔ)設(shè)備。另外別再依賴回收站保存重要文件定期備份才是長期可靠的辦法。如果你手頭正好有誤刪文件需要處理建議先確認(rèn)文件系統(tǒng)類型然后從“方案一”開始逐步嘗試后面幾種方法。如果你在銀河麒麟上遇到過其它恢復(fù)難題也歡迎在評論區(qū)聊聊后續(xù)我可以繼續(xù)整理相關(guān)的數(shù)據(jù)恢復(fù)和系統(tǒng)維護(hù)經(jīng)驗(yàn)。