Jump to...
redirecting...

Log for Ubuntu 台灣社群

[photo](media:AgACAgUAAx0CPRn5XQABAiIIaF7k0Gq79o7i15sxqmakXi0xG1sAAvLAMRtLbvlWZQsSwjDnOW4BAAMCAANzAAM2BA@telegram)
大家好,想請教一個棘手的檔案救援問題。某個朋友唯一的 Minecraft 伺服器備份 (tar.gz) 因不當操作而嚴重損毀,目前無法解壓縮。

損毀過程:
* [Linux] tar czvf 建立備份。
* [Linux → FAT32 USB] 複製檔案後,未 sync 強制拔除 USB (💥 第一次損毀)。
* [macOS ← FAT32 USB] 從 USB 複製到 APFS 硬碟後,未 sync 再次強制拔除 USB (💥 第二次損毀)。

目前狀態與已嘗試方法:
* du -sh 報告 file size 是 2.5G
* gunzip: 回報 not in gzip format。
* 7z: 將其判斷為 ZIP,只能解出一個無關的 META-INF 檔案。
* gzrecover : 能救出一個 binary blob,但 tar xvf 無法識別此 blob (回報 這個看起來不像 tar 封存 )。
* foremost : 對損毀檔案執行後,只能零星地救回一兩個小的 JAR 或 JSON 檔案,無法還原主要的 tar 結構。

關鍵問題:
檔案的 Gzip 壓縮層和內部的 Tar 封存層看起來是都壞掉了。hexdump 顯示檔案開頭並非 Gzip 的 1f 8b 魔法位元組。

00000000  0b fc 49 fe ab 6b 15 fe  e9 e7 08 d0 79 10 f4 67
00000010  ca e9 d9 8c 24 9c 9f a6  33 a7 78 71 68 82 39 b3


想請問:在這種雙重損毀的情況下,除了 foremost 之外,還有沒有其他更進階的資料挖掘 (Data Carving) 工具或手動分析方法?主要目標是救回 Minecraft 的世界檔 (.mca) 或玩家資料 (.dat),這些檔案在 tar 封存中可能沒有獨立的檔案標頭。

任何可能的思路或工具建議都非常感謝!🙏
雖然我也覺得救不回來了 ……
binwalk試試看?不過我覺得大概率沒救 - -
binwalk Nothingbase-Minecraft.tar.gz -e -a -v 了,不過看起來沒挖出有價值的資料 …… 😆
[photo](media:AgACAgUAAx0CPRn5XQABAiITaF-Q8KX-DfbK24TOd6fy5y-shWMAAtjBMRtLbvlW06nSznUZlaYBAAMCAANzAAM2BA@telegram)
但確實挖出很多感覺有希望的東西
第一次損毀的當下如果是檔案複製完立刻拔下裝置的話大部分資料應該就已經丟了,因為磁碟快取的機制的關係短時間內大部分的資料都還在伺服器主記憶體中還沒沖進儲存媒體
不過很意外他的資料其實看起來都「像」還在,大小對得上,hexdump 也沒看到很多 00 byte
我要問一個看起來很蠢的問題
既然是複製,原始檔案還在原機器上嗎
他強制拔除完之後就把資料洗掉了
封存檔大小是寫進檔案系統 metadata 中的所以跟實際的資料寫入量沒有因果關係
無論是 A 還是 B 裝置都被 wiped out 了
Linux 機器有寫入新東西嗎(?
感覺也是有點天
原始的裝置可存取得到嗎?還是已經退租了?
應該是可以,但是據他所說
A 硬碟被他重裝成 PVE 了,B USB 被他刷成 PVE 的 LiveUSB 了
如果有umount應該就會sync到吧
應該就是沒 unmount
那也真的是夠勇
對於 Linux DE user 來說,他們可能沒感知到 mount 的東西需要 unmount 這回事(
這個情況下用 photorec 掃 A 硬碟說不定還找得到資料
硬碟機是傳統的還是固態硬碟機?
好我把這個點子推薦給那個朋友
有機會被覆蓋,但還是可以試著掃看看
usb應該沒救,會做trim吧
固態硬碟機的話希望會更小,因為檔案系統格式化會自動對固態硬碟機進行資料區塊回收
如果是比較舊的 USB 有機會不支援 TRIM
只能說希望他學會怎麼 unmount 了
或是有支援 TRIM 但在 Linux 系統上因為磁碟機實作不符合規範所以主動把 TRIM 禁用掉
當然如果真的有那個價值的話還是建議直接送資料救援業者比較明智
隨身碟應該不能,既然是被刷成 PVE 安裝媒體,那肯定是被 dd 覆蓋上去了
可能下次請個正常的維運人員來做定期異地備份比較實際
既然是桌面版,那他可能沒有使用安全移除裝置的習慣
還是有機會沒覆蓋到就是了,如果當初是存在比較後面的地方
這種行爲就算回去用微軟Windows也沒救
一般的隨身碟品質就那樣,umount之前最後還要多sync幾次不會卡住
Windows 對外接式儲存裝置預設沒有開啟寫入快取所以問題比較少一點
另外 Linux 還有這個問題目前也沒有比較好的解決方案:
https://www.suse.com/support/kb/doc/?id=000017857
好像有聽說,但爛一點的隨身碟點安全移除裝置還是有機會跳警告
那個比較像是隨身碟的韌體實作有問題,資料明明還沒落地就先回報已經存好 XD
僅限隨身碟
外接硬碟還是會開