![]()
有許多情況下可以讀取用戶數據,但是在用戶區(qū)域開始時,讀取非常緩慢或驅動器盤片已損壞,因為無法擴展用戶分區(qū)或需要花費大量時間。
There are a lot of cases which alow to read a user data but it’s to slow or drive has?a damaged surface at the start of users area, as result impossible to expand a user partition or it takes a lot of time.
但是,如果客戶現(xiàn)在需要他的數據,或者我們受到硬盤的時間限制,因為它會繼續(xù)損壞磁頭或盤片表面,如何處理這種情況……
But how to deal with such cases if customer needs his data right here right now or we have a time restriction by drive operation because it proceed to damage the heads/surface…
在本文中,我們將討論這個問題以及可能的解決方案。
In this article we will talk about this problem and possible solutions for it.
例如,我們在Data Extractor工具中創(chuàng)建了一個新任務,并在開始時看到很多無法讀取的扇區(qū),DE無法識別NTFS分區(qū)。
For example we have created a new task in the?Data Extractor?tool and see a lot of problem sectors at the start and DE can’t recognize?NTFS?partition.

基本上,如果驅動器沒有物理問題并且分區(qū)無法打開,我們可以啟動快速磁盤分析選項或RAW恢復程序并找到分區(qū)。
Basically if drive haven’t physical problems and partition(s) can’t be opened we can launch a?Quick disk analysis?option or?RAW recovery?procedure and find a Partition.
但是如果硬盤盤片表面有劃痕,我們有時間限制,應該快速執(zhí)行步驟。唯一的方法是嘗試手動擴展分區(qū)。
But if the drive have a scratches on the surface we have a?time restriction and should perform steps quickly. The only way is try to expand partition(s) manually.

在本文中,我們將討論一個NTFS分區(qū)的硬盤。
In this article we will talk about drive with one NTFS partition.
如果我們知道驅動器上只有1個NTFS分區(qū),我們可以嘗試通過RAW恢復或GREP簽名來找到NTFS引導文件。
If we know that it’s only 1 NTFS partition on the drive we can try to find?NTFS Boot file?by RAW recovery or by GREP signature.

在用戶區(qū)域末尾有一個引導副本,也可用于構建虛擬分區(qū)。
At the end of the users area there is a Boot copy that is also can be used for building a Virtual partition.
但是,如果快速磁盤分析失敗并且我們沒有啟動和引導復制(扇區(qū)不讀?。敲次覀兛梢試L試基于MFT表擴展分區(qū)。
But if Quick disk analysis is failed and we haven’t Boot and Boot copy (sectors doesn’t read) then we can try expand partition based on?MFT table?.
MFT表(主文件表)是描述分區(qū)中所有用戶文件的主文件。
MFT table (Master File Table) is a main file which describes all user files in partition.前16個記錄是系統(tǒng),它們不可用于OS,因此稱為元數據。這些前16個記錄具有固定的LBA地址。
First 16 records are system and they are not available for OS they are called Metadata. These first 16 records have a fixed LBA address.
因此,首先我們需要在RAW恢復或GREP中找到MFT表的第一條記錄。
So, firstly we need to find first record of MFT table in the RAW recovery or by GREP.
如果驅動器讀取有問題,那么我們可以使用我們的知識。
If drive have a reading problems then we can use our knowledges.
對于驅動器上的第一個NTFS分區(qū),引導可以位于LBA 63或LBA 2048(90%的情況),正如我們在第一個MFT表格上方看到的,第一條記錄具有固定的LBA,因此:
For first NTFS partition on the drive Boot can be at LBA 63 or LBA 2048 (90% cases),?as we saw?above the first MFT table have a fixed LBA for first record so:
在LBA 63引導 – MFT表從6291519 LBA開始
Boot at LBA 63 – MFT table start from 6291519 LBA
LBA 2048引導 – MFT表從6293504 LBA開始(6291519 +(2048 – 63))
Boot at LBA 2048 – MFT table start from 6293504 LBA (6291519 (2048 – 63))
如何確定我們發(fā)現(xiàn)了MFT表的第一條記錄?- 它在自身上有一個已知的簽名$ .MFT在0x0F0偏移量:
How to determine that we found exactly first record of MFT table? – it have a known signature in the body?$.M.F.T?at?0x0F0 offset:

找到這條記錄后,我們可以嘗試擴展NTFS分區(qū)。我們添加一個虛擬NTFS分區(qū):
After finding this record we can try to expand NTFS partition. Let’s add a Virtual NTFS partition:

這里需要設置幾個值:
Here is need to set few values:

初始LBA?– 預計NTFS引導扇區(qū)(63或2048)的LBA。
Initial LBA?– it’s anticipated LBA of NTFS Boot sector (63 or 2048).
最終LBA?– 它是分區(qū)的最后一個扇區(qū)。讓我們假設在整個用戶區(qū)域只有一個分區(qū),然后設置最后一個扇區(qū)值。
Final LBA?– it’s last partition sector. Let’s think that we have only one partition on whole user area then set the last sector value.
簇大小?– 正如我們所知,驅動器按簇寫入數據(基本上是8)。
Cluster size?– as we know drive write data by cluster (basically it’s 8).
然后我們得到這個窗口:
Then we get this window:

我們應該填寫三個字段“Total sectors,MFT_Mirr_Cluster和MFT_Cluster”。
We should fill three fields” Total sectors, MFT_Mirr_Cluster and MFT_Cluster.
總扇區(qū)數?– 設置最后的LBA值
Total sectors?– set last LBA value
MFT_Mirr_Cluster?– 這是前4個MFT記錄的副本 – 設置任何值(但不能為零)
MFT_Mirr_Cluster?– this is copy of first 4 MFT records – set any value (but not a zero)
MFT_Cluster?– 這是第一個MFT記錄的簇號(不是LBA)的值。
MFT_Cluster?– this is value of first MFT record in clusters (not LBA).
因此,我們知道第一個MFT記錄LBA是6293504減去2048引導LBA并按簇大小8 = 786432為第一個MFT記錄簇
So, we know that the first MFT record LBA is 6293504 minus 2048 Boot LBA and?divide by cluster size 8 = 786432 first MFT record cluster
換一種說法:
In other words:
對于2048 LBA引導分區(qū)的第一個MFT記錄簇=(6293504–2048)/ 8
First MFT record?cluster for partition with Boot in 2048 LBA = (6293504 – 2048) / 8
對于63LBA引導分區(qū)的第一個MFT記錄簇=(6293504–63)/ 8
First MFT record?cluster for partition with Boot in 63 LBA = (6293504 – 63) / 8
因此,我們得到一個虛擬的NTFS分區(qū),并可以執(zhí)行不同的研究過程,如構建MFT映射,執(zhí)行分區(qū)分析等。
As result we get a virtual NTFS partition and can perform a different researching procedures like build MFT map, perform Partition analysis etc.
在目前的情況下,我們獲得了包含所有文件和文件夾的整個分區(qū)結構
In current case we got a whole partition structure with all files and folders.

注意:我們已經創(chuàng)建了一個虛擬分區(qū)。沒有在硬盤上寫入任何內容。
Note: that we have created a Virtual Partition. Nothing has been wrote on the drive.
This guide probably will not work in cases with non-standart ways of NTFS volume creation (via Virtual machines images, embeded devices, dvr devices, etc).
本指南可能不適用于創(chuàng)建NTFS卷的非標準方式(通過虛擬機映像,嵌入式設備,dvr設備等)。