如何在一個大小的磁碟機上取得使用 dd 建立的 NTFS 分割區的映像,並將它們寫入另一個不同大小的磁碟機?

如何在一個大小的磁碟機上取得使用 dd 建立的 NTFS 分割區的映像,並將它們寫入另一個不同大小的磁碟機?

我透過 USB 執行 ubuntu 來製作硬碟分割區的映像,我使用了 GNU ddrescue,它實際上與 dd 類似。來源驅動器(我製作圖像的驅動器)為 160GB。

如何在一個大小的磁碟機上取得使用 dd 建立的 NTFS 分割區的映像,並將它們寫入另一個不同大小的磁碟機?我想要寫入影像的磁碟機是 1TB。

我對將分割區寫入另一個磁碟機的分割區持謹慎態度,然後發現大小不匹配,甚至調整它的大小也可能不起作用,而且我真的不想調整分割區的大小。

我想也許有一種方法可以將 dd 映像轉換為 macrium 映像,所以我嘗試使用 OSFmount 掛載映像,然後右鍵單擊掛載的分區,然後單擊在 macrium Reflect 中創建映像,但 macrium 沒有看到它因為macrium 似乎只有在有一個實際的實體磁碟機從中建立映像時才起作用,而不僅僅是在虛擬分割區上。

那麼如何將 dd 產生的原始映像寫入另一個磁碟機的分割區呢?

答案1

上次我做類似的事情時,我用 Linux LiveCD 啟動了 PC,該 CD 被定制為包含以下副本:格帕特
新的 MBR 和分割區表已安裝在目標磁碟機上(使用格帕特)。
對於來源磁碟機上的每個分割區:

  • 在目標磁碟機上建立一個至少與原始分割區大小相同的新分割區(使用格帕特或者磁碟機)。
    與原始扇區的確切數量越接近越好,即移植的檔案系統出現任何問題的可能性越小。

  • 使用下列命令將分割區從原始磁碟機(或其分割區映像)複製到目標磁碟機DD

  • 根據您的新要求調整目標分割區的大小(使用格帕特)。
    分區內的檔案系統將進行相應調整。
    增加尺寸應該相當快。

  • 對下一個分割區重複此操作。


附錄

但 Gparted 無法選擇隱藏分割區。

你的說法是不正確的。
首先選擇一個分割區。
然後從選單列中選擇Partition,然後Manage Flags從下拉式選單中進行選擇。
從那裡您可以啟用/停用各種分區標誌,包括“隱藏”。

它也沒有將主資料轉換為邏輯資料的選項...

這是一個有問題的轉換,最好透過基本操作來執行。
A邏輯的分區要求它存在於擴充分割。
自動建立擴展分割區確實會產生影響,包括可用大小和對後續操作的影響。

請注意,創建多個擴展分區的能力取決於工具並且需要可移植。為了相容於 Windows,只能有一個擴充分割區。

……因此,如果將映像複製到分割區上,然後想要將分割區從主分割區變更為邏輯分割區,則必須刪除該分割區並將其重新建立為邏輯分割區,然後再次複製

我上面描述的步驟清楚地表明應在寫入/複製映像之前建立目標分割區。
如果目標分割區需要是邏輯分割區,那麼先確保已經有擴充分割區,然後再建立邏輯分割區。
如果您在原始分割區是邏輯分割區時建立主分割區,那麼您只是搞砸了複製過程。

將主分區轉換為邏輯分區是一種虛假操作。


附錄2

假設我不知道原始硬碟是主硬碟還是邏輯硬碟,因為例如原始硬碟被搞亂了。
那麼,您是否仍然會說,如果您創建主資料庫而不是邏輯資料庫,那麼這是一個拙劣的複製過程,因此必須再次複製是可以理解的嗎?

您在什麼時候以及如何確定目標分割區應該是邏輯分割區?

鑑於這些答案,在將目標分區創建為主分區之前無法做出該確定的原因是什麼?


實際上,複製過程與創建分區是分開的,並且...

不在我的程式中。
每個目標分割區均按其原始大小建立。
將檔案系統(即分割映像)寫入新分割區後,將調整它(分割區和檔案系統)的大小。
此過程依賴 GParted 來了解如何調整分割區中包含的檔案系統的大小。
我不必查找/學習任何有關如何將檔案系統適合其分區的檔案系統命令。該任務已指派給 GParted。


如果有一個轉換選項,那麼就不必再複製 –

從主分割區到邏輯分割區的轉換並不像您想像的那麼簡單(或方便)。

網頁描述了一種只需單擊一兩次滑鼠即可實現“主分區到邏輯分區”的實用程式。
文章末尾的這段突出評論揭示了這個問題:

The location and the size of the primary partition will be slightly different after 
converting due to the fact that the logical partition is 63 sectors bigger 
than primary partition.

(這措辭很糟糕,因為很難判斷“63 個扇區更大”是指邏輯分區的位置還是大小(或兩者兼而有之?)。“位置”的更改當然是有道理的。所以我很同意確保如果作者指的是大小,那麼他會向後得到大小差異,否則這意味著轉換消耗的磁碟空間比原始分割區的大小要多。

除了分割區大小的變更(?)之外,該語句的後果確認將會發生耗時的分割區複製。
執行此複製所需的時間大約是重新建立邏輯分割區並寫入映像所需時間的兩倍。

你問為什麼會這樣?

您從主分割區開始。
邏輯分割區必須包含在擴充分割區內。
因此,必須推遲原始(主)分區的起始位置,以便為新的擴展分區(的起始位置)創建空間。
理論上,只要一個磁區就夠了,但慣例是一磁軌,或是 63 個磁區的假 HDD 幾何形狀。

為了創建此可用空間,原始(主)分割區(及其檔案系統)首先必須在分割區末尾將大小減少 63 個磁區(假設此轉換消耗零)新的磁碟空間)。
然後原始(主)分割區(及其檔案系統)必須向後移動 63 個磁區。
此移動需要對分割區的每個磁區進行耗時的讀取和寫入。
移動完成後,可以在新釋放的區域中建立擴展分區,並且可以將原始分區重新定義為邏輯分區。

當您已經有要寫入的映像時,此分割區轉換過程不會為您節省任何時間。

避免轉換過程中耗時的複製的唯一方法是使用“作弊”並需要未分配軌道的程序現有的主分區,例如這個實用程式:

Note: ... there should be at least 63 free sectors in front of the primary partition 
when changing it to logical.

此外,您還寫道“越接近原始扇區的確切數量就越好,即移植的文件系統出現任何問題的可能性越小。” <--您能詳細說明一下嗎?

這只是我嘗試複製原始分區。
可能存在指派舍入,且您無法建立磁區數與原始分割區(或映像大小)完全相同的分割區。
因此,將扇區數四捨五入到下一個分配步驟。

就像如果我沒有將其關閉然後調整它的大小,這意味著什麼以及會發生什麼?
這是否意味著調整大小的分割區仍將保持與檔案系統不同的大小?

當分割區大小與其檔案系統之間存在微小差異時,GParted 不會抱怨。
透過 GParted 調整大小後,檔案系統似乎完全佔用了該分割區。
我沒有嘗試過你所描述的場景,所以我沒有答案。

答案2

當涉及 Windows 時,dd其他 3rd 方工具是不是一種有效的分割映像方法。

  • Windows 有總是本機支援分區或單一目錄的映像。
    • 系統分割區只能從 WinPE/WinRE 進行映像,而所有其他分割區都可以在啟動到 Windows 時進行映像。
    • WIM作業系統我是年齡)可以捕獲整個分割區或單一資料夾/檔案。
      創建一個WimScript.ini設定檔來指定排除或例外。

  • 所有 WinPE/WinRE WIMImageXDISM包含在其中。

    • WinPE: 陶氏重新安裝環境

      • 例如 Windows 安裝程式啟動媒體 (SHIFT+F10訪問終端)
    • WinRE: 陶氏生態環境


命令

WinPE 預設只有 32MB 暫存 [temp] 空間,因此/ScratchDir是必要的

  • 視窗 >=8:DISM用於擷取影像:

    DISM /Capture-Image /ImageFile:"Z:\Base.wim" /CaptureDir:"C:" /Name:"Windows Backup" /Description:"Base Image 2019.08.24 @ 08:30" /Compress:Max /CheckIntegrity /Verify /NoRpFix /ScratchDir:"Z:\"
    
  • Windows <=7:ImageX用於代替 DISM:

    ImageX /Capture "C:" "Z:\Base.esd" "Windows Backup" "Base Image 2019.08.24 @ 08:30" /Compress:Recovery /Check /Verify /NoRpFix /ScratchDir:"Z:\"
    



筆記:

  • 它是不可能的ESD/WIM 映像損壞
    • 提供的成像命令是總是發佈於:
      • DISM: /CheckIntegrity&/Verify
      • 圖片X: /Check&/Verify

  • ESD 只能採取系統分割
    • /Compress:Recovery是唯一可用的壓縮演算法。
      • ESD 壓縮率比 WIM 壓縮率高約 33%。
      • 在 Windows 10 中,Microsoft 僅允許使用 ESD 進行按鈕重設匯出的映像

  • ESD/WIM 是智慧壓縮影像格式
    • 當新增圖像時,僅將更改的檔案新增至圖像中
      • 新附加的影像使用先前影像中已包含的未更改檔案的相同副本。
        • 這使得圖像相對於其中包含的數據保持較小。



DISM 和 ImageX 先決條件


範例:/Get-WIMinfo||/Info

PS $  ls -file

  Directory: Z:\WIM

    Mode                LastWriteTime            Length  Name
    ----                -------------            ------  ----
    -a----        2018.12.24 03:34:13   95,019,530,773B  Base.wim
    -a----        2016.06.14 22:32:36              568B  DISM.cmd
    -a----        2016.05.17 05:36:10               97B  wimscript.ini

PS $  dism /get-wiminfo /wimfile:Base.wim

  Deployment Image Servicing and Management tool
  Version: 10.0.18362.1

    Details for image : Base.wim

    Index : 1
      Name : Alienware 18: Windows 10
      Description : v1803: Base (Drivers Only)
      Size : 22,710,283,446 bytes

    Index : 2
      Name : Alienware 18: Windows 10
      Description : v1803: Software Installed (No Customizations)
      Size : 45,591,850,754 bytes

    Index : 3
      Name : Alienware 18: Windows 10
      Description : v1803: Software Installed (Customized)
      Size : 94,958,267,312 bytes

    Index : 4
      Name : Alienware 18: Windows 10
      Description : v1803: Software Group 1 Installed (Customized)
      Size : 101,588,267,910 bytes

    Index : 5
      Name : Alienware 18: Windows 10
      Description : v1803: Software Group 2 Installed (Customized)
      Size : 101,905,314,237 bytes

    Index : 6
      Name : Alienware 18: Windows 10
      Description : v1809: Updated Applications
      Size : 114,959,954,040 bytes

  The operation completed successfully.
PS $  dism /get-wiminfo /wimfile:Base.wim /index:1

  Deployment Image Servicing and Management tool
  Version: 10.0.18362.1

    Details for image : Base.wim

      Index : 1
      Name : Alienware 18: Windows 10
      Description : v1803: Base (Drivers Only)
      Size : 22,710,283,446 bytes
      WIM Bootable : No
      Architecture : x64
      Hal : acpiapic
      Version : 10.0.17134
      ServicePack Build : 1
      ServicePack Level : 1
      Edition : Professional
      Installation : Client
      ProductType : WinNT
      ProductSuite : Terminal Server
      System Root : WINDOWS
      Directories : 24288
      Files : 112665
      Created : 2018.05.05 - 13:56:47
      Modified : 2018.05.05 - 13:56:47
      Languages :
              en-US (Default)

  The operation completed successfully.


PS $  dism /get-wiminfo /wimfile:Base.wim /index:2

  Deployment Image Servicing and Management tool
  Version: 10.0.18362.1

    Details for image : Base.wim

      Index : 2
      Name : Alienware 18: Windows 10
      Description : v1803: Software Installed (No Customizations)
      Size : 45,591,850,754 bytes
      WIM Bootable : No
      Architecture : x64
      Hal : acpiapic
      Version : 10.0.17134
      ServicePack Build : 1
      ServicePack Level : 1
      Edition : Professional
      Installation : Client
      ProductType : WinNT
      ProductSuite : Terminal Server
      System Root : WINDOWS
      Directories : 45803
      Files : 203058
      Created : 2018.05.06 - 01:55:47
      Modified : 2018.05.06 - 01:55:48
      Languages :
              en-US (Default)

  The operation completed successfully.


PS $  dism /get-wiminfo /wimfile:Base.wim /index:3

  Deployment Image Servicing and Management tool
  Version: 10.0.18362.1

    Details for image : Base.wim

      Index : 3
      Name : Alienware 18: Windows 10
      Description : v1803: Software Installed (Customized)
      Size : 94,958,267,312 bytes
      WIM Bootable : No
      Architecture : x64
      Hal : acpiapic
      Version : 10.0.17134
      ServicePack Build : 1
      ServicePack Level : 81
      Edition : Professional
      Installation : Client
      ProductType : WinNT
      ProductSuite : Terminal Server
      System Root : WINDOWS
      Directories : 62409
      Files : 350446
      Created : 2018.06.01 - 19:09:51
      Modified : 2018.06.19 - 21:26:18
      Languages :
              en-US (Default)

  The operation completed successfully.


PS $  dism /get-wiminfo /wimfile:Base.wim /index:4

  Deployment Image Servicing and Management tool
  Version: 10.0.18362.1

    Details for image : Base.wim

      Index : 4
      Name : Alienware 18: Windows 10
      Description : v1803: Software Group 1 Installed (Customized)
      Size : 101,588,267,910 bytes
      WIM Bootable : No
      Architecture : x64
      Hal : acpiapic
      Version : 10.0.17134
      ServicePack Build : 1
      ServicePack Level : 81
      Edition : Professional
      Installation : Client
      ProductType : WinNT
      ProductSuite : Terminal Server
      System Root : WINDOWS
      Directories : 61908
      Files : 346074
      Created : 2018.06.08 - 21:54:02
      Modified : 2018.06.19 - 21:26:18
      Languages :
              en-US (Default)

  The operation completed successfully.


PS $  dism /get-wiminfo /wimfile:Base.wim /index:5

  Deployment Image Servicing and Management tool
  Version: 10.0.18362.1

    Details for image : Base.wim

      Index : 5
      Name : Alienware 18: Windows 10
      Description : v1803: Software Group 2 Installed (Customized)
      Size : 101,905,314,237 bytes
      WIM Bootable : No
      Architecture : x64
      Hal : acpiapic
      Version : 10.0.17134
      ServicePack Build : 1
      ServicePack Level : 81
      Edition : Professional
      Installation : Client
      ProductType : WinNT
      ProductSuite : Terminal Server
      System Root : WINDOWS
      Directories : 76113
      Files : 423408
      Created : 2018.06.09 - 20:38:36
      Modified : 2018.06.19 - 21:26:18
      Languages :
              en-US (Default)

  The operation completed successfully.


PS $  dism /get-wiminfo /wimfile:Base.wim /index:6

  Deployment Image Servicing and Management tool
  Version: 10.0.18362.1

    Details for image : Base.wim

      Index : 6
      Name : Alienware 18: Windows 10
      Description : v1809: Updated Applications
      Size : 114,959,954,040 bytes
      WIM Bootable : No
      Architecture : x64
      Hal : acpiapic
      Version : 10.0.17763
      ServicePack Build : 195
      ServicePack Level : 0
      Edition : Professional
      Installation : Client
      ProductType : WinNT
      ProductSuite : Terminal Server
      System Root : WINDOWS
      Directories : 87659
      Files : 452028
      Created : 2018.12.24 - 04:27:13
      Modified : 2018.12.24 - 04:27:15
      Languages :
              en-US (Default)

  The operation completed successfully.

答案3

Gparted 使用命令 ntfsresize 和..我在 Gparted 中看到兩種執行此操作的方法..

方法一

gparted 中的一個選項,gparted 將選項稱為「檢查」!

一種方法是,Gparted 實際上會識別檔案系統何時小於分割區,並在那裡放置一個感嘆號

在此輸入影像描述

您可以右鍵單擊該分區(即該分區顯示的行 gparted)並轉到訊息,它說存在不匹配以及修復它的選項。

在此輸入影像描述

修復它的選項是右鍵單擊分區並單擊“檢查”

根據 gparted 為其提供的命令提供的信息,它運行的命令是一些相當直接的 ntfsresize 命令,簡單之處在於它們甚至不需要指定 ntfssize 有多少 MB 或 MiB。

在此輸入影像描述

方法二

這個方法和鋸末說的類似。

每當您在 Gparted 中調整分割區大小時,它都會調整檔案系統的大小以填滿整個分割區。

如果在 gparted 中您將分割區的大小增加了很小的量,例如 1MB,那麼 gparted 將擴充檔案系統。


注意 - 不管這兩種方法,gparted「檢查」或 gparted 調整大小,如果分割區有 Windows,則需要考慮一些事情..因為硬碟上需要有一個系統保留分割區,如果不存在,那麼Windows 7/10 根本無法加載。它是活動分區。

註2-另一種方法是使用 fdisk 而不是調整分割區大小。這涉及刪除分割區並以相同的起點但不同的大小重新建立它。並使用 ntfsresize 調整檔案系統的大小。並考慮是否處理 MB 還是 MiB。

Gparted 有「啟動」選項(一個關鍵選項,使分區處於活動狀態)和「隱藏」在所謂的「標誌」下。

相關連結- 如何調整 NTFS 磁碟區的大小以填滿分割區? 這裡有很多有關相關方法的好資訊。

相關內容