Para clonar uma partição usando dd.exe
o MSYS2 para Windows, precisamos de 3 informações.
- nome da unidade física
- deslocamento inicial da partição (em MiB)
- tamanho da partição (em MiB)
dd if=physical_drive_name of=backup.img bs=1M skip=starting_offset count=size status=progress
Para listar as unidades de disco físico disponíveis, podemos usar o comando:
wmic diskdrive get Caption,Index,MediaType
No meu sistema, ele gera:
Caption Index MediaType
PC SN530 NVMe WDC 512GB 0 Fixed hard disk media
PNY USB 3.0 FD USB Device 1 Removable Media
Estou interessado na minha unidade NVMe, então usarei seu índice ( 0
) para encontrar o requisito nº 1, que é o nome da unidade física :
wmic diskdrive where "Index=0" get DeviceID,Partitions,Status,MediaLoaded
ele produz:
DeviceID MediaLoaded Partitions Status
\\.\PHYSICALDRIVE0 TRUE 8 OK
Os outros 2 requisitos são partition starting offset e partition size . Para listar partições e seus atributos, usarei o comando:
wmic partition where "DiskIndex=0" get Name,Index,Type,StartingOffset,BlockSize,NumberOfBlocks,Size
Ele produz:
BlockSize Index Name NumberOfBlocks Size StartingOffset Type
512 0 Disk #0, Partition #0 614400 314572800 1048576 GPT: System
512 1 Disk #0, Partition #1 727875584 372672299008 449839104 GPT: Basic Data
512 2 Disk #0, Partition #2 225282048 115344408576 373123186688 GPT: Basic Data
512 3 Disk #0, Partition #3 102400 52428800 488467595264 GPT: Basic Data
512 4 Disk #0, Partition #4 2123776 1087373312 488520024064 GPT: Unknown
512 5 Disk #0, Partition #5 2027520 1038090240 489609494528 GPT: Unknown
512 6 Disk #0, Partition #6 39032832 19984809984 490647584768 GPT: Unknown
512 7 Disk #0, Partition #7 2883584 1476395008 510633443328 GPT: Unknown
Então agora, podemos usar o deslocamento inicial e o tamanho da partição de nossa escolha com dd.exe para cloná-la. No entanto, essa saída não nos dá uma dica sobre o conteúdo das partições. Para isso, precisamos listar volumes para que possamos visualizar os sistemas de arquivos e rótulos de partições formatadas:
wmic volume where "DriveType=3" get Label,DeviceID,DriveLetter,DriveType,SerialNumber,FileSystem,MaximumFileNameLength,BlockSize,Capacity,FreeSpace
Ele produz:
BlockSize Capacity DeviceID DriveLetter DriveType FileSystem FreeSpace Label MaximumFileNameLength SerialNumber
4096 372672294912 \\?\Volume{41d21340-a487-4021-9735-3e999ccfc734}\ C: 3 NTFS 232339791872 OS 255 3295242676
\\?\Volume{e5ffe5ea-3596-468c-832f-e5bcf2aeb39e}\ 3
512 48234496 \\?\Volume{5792630e-1c80-4d8a-a679-82ec4cd0ecdc}\ 3 FAT32 39666176 GRUBX64 255 716055397
4096 1087369216 \\?\Volume{19df495f-4e17-41fb-bcb0-d33d40588153}\ 3 NTFS 161165312 255 1445116501
4096 1038086144 \\?\Volume{9e1ca148-9cff-4576-ba37-cad1aab53ba1}\ 3 NTFS 501415936 WINRETOOLS 255 4141927052
4096 19984805888 \\?\Volume{0e8ffde2-0844-4d79-ada2-a3ea534dcc6b}\ 3 NTFS 136228864 Image 255 3940616972
4096 1476390912 \\?\Volume{a847a1f9-be5e-4f38-80ff-e5617868e2a1}\ 3 NTFS 505286656 DELLSUPPORT 255 1554162235
4096 310378496 \\?\Volume{9685da03-f3a8-4f89-88f2-1b9dafc3bd38}\ 3 FAT32 203812864 ESP 255 684405683
Agora, se pudermos determinar o número da partição do volume de nosso interesse, podemos consultar a tabela de partições para encontrar o deslocamento inicial e o tamanho para usá-los dd.exe
, mas como podemos fazer isso?
Os atributos de volume confiáveis (únicos) são serial number
, deviceID
e ( label
e drive letter
se houver). O tamanho em geral não é confiável, pois duas ou mais partições podem ter o mesmo tamanho.
Suponha que o volume de nosso interesse seja DELLSUPPORT
, como encontramos seu número de partição para que possamos encontrar seu deslocamento inicial e tamanho para usar com dd.exe
?