目前專案遇到點問題,具體描述如下:
把一個檔案從一個磁區拷貝到另一個磁區。先從bitmap中獲取未使用的簇,把檔案寫入到這些簇,接著修改MFT表的內容。
做完這些操作后,用chkdsk來檢測。在某些時候,chkdsk會提示某些簇被交叉使用,但是我通過代碼檢測MFT表,沒有發現這些簇被多個檔案使用。求大神指點迷津。
uj5u.com熱心網友回復:
主要就是需要了解,chkdsk是如何判斷一個簇是否是被交叉參考的。現在我這邊,只要一出現這個問題,就有檔案被損壞(MFT表里面檔案的相應屬性被重置了)
uj5u.com熱心網友回復:
沒有具了解過, 猜一下 —— 從bitmap中獲取未使用的簇, 那么寫完了是否要更新bitmap中的狀態?uj5u.com熱心網友回復:
是的,寫完了,會同步更新bitmap資訊
uj5u.com熱心網友回復:
是否可以這樣操作, 用一個很小容量的磁盤/卡, 用正常的電腦格式化成NTFS, 然后用你的方式先記錄好盤上的所有資料,再用電腦復制一個檔案到磁盤,再用你的方式讀出,對比前后的變化,看看你的操作和標準的系統的操作有什么區別uj5u.com熱心網友回復:
我對資料進行重組了,ntfs里面的mft表,記錄了檔案的一些資訊,包括檔案的時間,占用大小和實際大小,以及檔案在磁盤上的具體存放位置。你可以想想類似于windows自帶的磁盤碎片整理,把硬碟上檔案存放的位置進行了挪動。檔案的內容都是一樣,只是MFT表有差異。
chkdsk也只是檢測MFT表的錯誤并進行修復,某些軟體用來恢復已洗掉檔案,也是通過分析MFT表來實作的
uj5u.com熱心網友回復:
我現在做的事情,類似于windows的磁盤碎片整理,把一個磁區的檔案,拷貝到另一個磁區,并且消除里面的碎片轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/18509.html
標籤:硬件/系統
