No momento em que escrevo, nenhuma das opções de recuperação interna do win8 ou do asus backtracker é capaz de reconfigurar o sistema para o formato de fábrica quando um novo disco é instalado. Eles criam um disco de backup de recuperação USB, mas a restauração dele é impossível.
O objetivo deste guia é mostrar como criar o backup de fábrica do win8 que pode ser restaurado para um novo disco e inicialize no estado de fábrica. Fazendo tudo isso completamente do linux.
Neste exemplo, o disco original tem 6 partições da seguinte forma:
- EFI
- Recuperação
- MSR
- SO
- DATA
- Restaurar
Necessário:
- linux inicializado de algum dispositivo
- disco de backup (no meu caso, capacidade de 12G)
- disco rígido original com win8 pré-instalado
- novo disco rígido com capacidade menor ou maior que o disco original, mas ainda assim suficiente para acomodar todas as coisas necessárias
Suponha que:
- disco original / novo é / dev / sda
- disco de backup é / tmp / backup
- algum ponto de montagem, por ex. / tmp / mnt
O procedimento em resumo:
- backup do início de um HDD
- backup do conteúdo da partição de restauração
- restaurar o início do disco rígido
- recria as partições do OS / DATA / Restore para caber no novo disco
- atualize o win8 para usar a nova forma de disco
- reinicialize a instalação de fábrica
BACKUP
1) Obtenha informações das partições do disco original (apenas as últimas 3 partições que serão recriadas):
[root]# gdisk /dev/sda
GPT fdisk (gdisk) version 0.8.8
Partition table scan:
MBR: protective
BSD: not present
APM: not present
GPT: present
Found valid GPT with protective MBR; using GPT.
Command (? for help): p
Disk /dev/sda: 1465149168 sectors, 698.6 GiB
Logical sector size: 512 bytes
Disk identifier (GUID): 11111111-1111-1111-1111-111111111111
Partition table holds up to 128 entries
First usable sector is 34, last usable sector is 1465149134
Partitions will be aligned on 2048-sector boundaries
Total free space is 3757 sectors (1.8 MiB)
Number Start (sector) End (sector) Size Code Name
1 2048 616447 300.0 MiB EF00 EFI system partition
2 616448 1845247 600.0 MiB 2700 Basic data partition
3 1845248 2107391 128.0 MiB 0C01 Microsoft reserved part
4 2107392 588165119 279.5 GiB 0700 Basic data partition
5 588165120 1423204351 398.2 GiB 0700 Basic data partition
6 1423204352 1465147391 20.0 GiB 2700 Basic data partition
Command (? for help): i
Partition number (1-6): 4
Partition GUID code: EBD0A0A2-B9E5-4433-87C0-68B6B72699C7 (Microsoft basic data)
Partition unique GUID: 44444444-4444-4444-4444-444444444444
First sector: 2107392 (at 1.0 GiB)
Last sector: 588165119 (at 280.5 GiB)
Partition size: 586057728 sectors (279.5 GiB)
Attribute flags: 0000000000000000
Partition name: 'Basic data partition'
Command (? for help): i
Partition number (1-6): 5
Partition GUID code: EBD0A0A2-B9E5-4433-87C0-68B6B72699C7 (Microsoft basic data)
Partition unique GUID: 55555555-5555-5555-5555-555555555555
First sector: 588165120 (at 280.5 GiB)
Last sector: 1423204351 (at 678.6 GiB)
Partition size: 835039232 sectors (398.2 GiB)
Attribute flags: 0000000000000000
Partition name: 'Basic data partition'
Command (? for help): i
Partition number (1-6): 6
Partition GUID code: DE94BBA4-06D1-4D40-A16A-BFD50179D6AC (Windows RE)
Partition unique GUID: 66666666-6666-6666-6666-666666666666
First sector: 1423204352 (at 678.6 GiB)
Last sector: 1465147391 (at 698.6 GiB)
Partition size: 41943040 sectors (20.0 GiB)
Attribute flags: 8000000000000001
Partition name: 'Basic data partition'
Command (? for help): q
2) As 3 primeiras partições (e os primeiros setores do HDD) devem estar intactos, assim como a cópia bruta delas:
a) Observe o tamanho para copiar - o número de setores até a partição OS (# 4), então simplesmente a partição do sistema operacional 'Start (setor)' = 2107392 , onde o tamanho do setor é geralmente = 512.
b) Faça uma cópia para o dispositivo de backup, compactando-o:
dd if=/dev/sda conv=sync,noerror bs=512 count=2107392 | gzip -c > /tmp/backup/win8-factory-head.gz
3) Ignore / descarte as partições OS e DATA - elas serão criadas vazias
4) Faça o backup da última partição 'Restore' com o install.wim de fábrica:
[root]# mount /dev/sda6 /tmp/mnt
[root]# df -h /tmp/mnt
Filesystem Size Used Avail Use% Mounted on
/dev/sda6 20G 12G 8.3G 59% /tmp/mnt
Note que a partição original é 20G, mas o espaço usado está muito abaixo disso, assim, a nova partição criada pode ser menor para obter esses poucos GB.
Faça o backup do arquivo de conteúdo / diretório, não da cópia bruta:
[root]# cd /tmp/mnt
[root]# tar -pczf /tmp/backup/win8-factory-restore.tgz .
[root]# cd /
[root]# umount /tmp/mnt
5) Guarde este guia e siga dois arquivos como um backup completo:
- win8-factory-head.gz
- win8-factory-restore.tgz
RESTAURAR
1) Substitua o disco original por um novo. Lembre-se de não conectar o disco original junto com o novo preparado, pois eles usarão os mesmos UIDs.
2) Restaurar o início do HDD:
gunzip -c win8-factory-head.gz | dd of=/dev/sda conv=sync,noerror bs=512
3) A GPT gravada no novo disco deve ser corrigida (a menos que seja um disco idêntico ao original, depois omita os passos b, c, e, f, g).
[root]# gdisk /dev/sda
Agora continue na linha de comando do gdisk.
a) Algum aviso é esperado se o novo disco for menor que o original, por exemplo:
Warning! Disk size is smaller than the main header indicates! Loading
secondary header from the last sector of the disk! You should use 'v' to
verify disk integrity, and perhaps options on the experts' menu to repair
the disk.
Caution: invalid backup GPT header, but valid main header; regenerating
backup header from main header.
Warning! One or more CRCs don't match. You should repair the disk!
Partition table scan:
MBR: protective
BSD: not present
APM: not present
GPT: damaged
****************************************************************************
Caution: Found protective or hybrid MBR and corrupt GPT. Using GPT, but disk
verification and recovery are STRONGLY recommended.
****************************************************************************
No caso da seguinte, selecione a opção '1'.
Found invalid MBR and corrupt GPT. What do you want to do? (Using the
GPT MAY permit recovery of GPT data.)
1 - Use current GPT
2 - Create blank GPT
b) Se não for feito antes, ao fazer um backup, imprima as últimas 3 informações das partições:
Command (? for help): i
Partition number (1-6): 4
Command (? for help): i
Partition number (1-6): 5
Command (? for help): i
Partition number (1-6): 6
c) Excluir as últimas 3 partições:
Command (? for help): d
Partition number (1-6): 6
Command (? for help): d
Partition number (1-5): 5
Command (? for help): d
Partition number (1-4): 4
Command (? for help): p
Disk /dev/sda: 976773168 sectors, 465.8 GiB
Logical sector size: 512 bytes
Disk identifier (GUID): 11111111-1111-1111-1111-111111111111
Partition table holds up to 128 entries
First usable sector is 34, last usable sector is 1465149134
Partitions will be aligned on 2048-sector boundaries
Total free space is 1463043757 sectors (697.6 GiB)
Number Start (sector) End (sector) Size Code Name
1 2048 616447 300.0 MiB EF00 EFI system partition
2 616448 1845247 600.0 MiB 2700 Basic data partition
3 1845248 2107391 128.0 MiB 0C01 Microsoft reserved part
d) Observe que 'o espaço livre total é 1463043757 setores (697,6 GiB)' não está correto de acordo com os setores 'Disk / dev / sda: 976773168 , 465.8 GiB'. Corrija isso, então o tamanho sugerido para partições recém-criadas será válido:
Command (? for help): x
Expert command (? for help): e
Relocating backup data structures to the end of the disk
Expert command (? for help): m
Command (? for help): p
Disk /dev/sda: 976773168 sectors, 465.8 GiB
Logical sector size: 512 bytes
Disk identifier (GUID): 11111111-1111-1111-1111-111111111111
Partition table holds up to 128 entries
First usable sector is 34, last usable sector is 976773134
Partitions will be aligned on 2048-sector boundaries
Total free space is 974667757 sectors (464.8 GiB)
Number Start (sector) End (sector) Size Code Name
1 2048 616447 300.0 MiB EF00 EFI system partition
2 616448 1845247 600.0 MiB 2700 Basic data partition
3 1845248 2107391 128.0 MiB 0C01 Microsoft reserved part
e) Recrie partições apagadas (para cada um dê tamanho razoável e válido 'Código hexadecimal ou GUID' que é o mesmo que na partição original relacionada):
Command (? for help): n
Partition number (4-128, default 4):
First sector (34-976773134, default = 2107392) or {+-}size{KMGTP}:
Last sector (2107392-976773134, default = 976773134) or {+-}size{KMGTP}: +200G
Current type is 'Linux filesystem'
Hex code or GUID (L to show codes, Enter = 8300): 0700
Changed type of partition to 'Microsoft basic data'
Command (? for help): n
Partition number (5-128, default 5): 5
First sector (34-976773134, default = 421537792) or {+-}size{KMGTP}:
Last sector (421537792-976773134, default = 976773134) or {+-}size{KMGTP}: +250G
Current type is 'Linux filesystem'
Hex code or GUID (L to show codes, Enter = 8300): 0700
Changed type of partition to 'Microsoft basic data'
Command (? for help): n
Partition number (6-128, default 6):
First sector (34-976773134, default = 945825792) or {+-}size{KMGTP}:
Last sector (945825792-976773134, default = 976773134) or {+-}size{KMGTP}:
Current type is 'Linux filesystem'
Hex code or GUID (L to show codes, Enter = 8300): 2700
Changed type of partition to 'Windows RE'
Command (? for help): p
Disk /dev/sda: 976773168 sectors, 465.8 GiB
Logical sector size: 512 bytes
Disk identifier (GUID): 11111111-1111-1111-1111-111111111111
Partition table holds up to 128 entries
First usable sector is 34, last usable sector is 976773134
Partitions will be aligned on 2048-sector boundaries
Total free space is 2014 sectors (1007.0 KiB)
Number Start (sector) End (sector) Size Code Name
1 2048 616447 300.0 MiB EF00 EFI system partition
2 616448 1845247 600.0 MiB 2700 Basic data partition
3 1845248 2107391 128.0 MiB 0C01 Microsoft reserved part
4 2107392 421537791 200.0 GiB 0700 Microsoft basic data
5 421537792 945825791 250.0 GiB 0700 Microsoft basic data
6 945825792 976773134 14.8 GiB 2700 Windows RE
f) Como as partições criadas recentemente têm parâmetros padrão, atualize-as então eles exatamente imitam os valores das partições originais.
Corrigir nomes (provavelmente desnecessários):
Command (? for help): c
Partition number (1-6): 4
Enter name: Basic data partition
Command (? for help): c
Partition number (1-6): 5
Enter name: Basic data partition
Command (? for help): c
Partition number (1-6): 6
Enter name: Basic data partition
Corrigir GUID exclusivo:
Command (? for help): x
Expert command (? for help): c
Partition number (1-6): 4
Enter the partition's new unique GUID ('R' to randomize): 44444444-4444-4444-4444-444444444444
New GUID is 44444444-4444-4444-4444-444444444444
Expert command (? for help): c
Partition number (1-6): 4
Enter the partition's new unique GUID ('R' to randomize): 55555555-5555-5555-5555-555555555555
New GUID is 55555555-5555-5555-5555-555555555555
Expert command (? for help): c
Partition number (1-6): 4
Enter the partition's new unique GUID ('R' to randomize): 66666666-6666-6666-6666-666666666666
New GUID is 66666666-6666-6666-6666-666666666666
Corrigir atributos (na verdade, é necessário apenas para a partição 'Restore'):
Expert command (? for help): a
Partition number (1-6): 6
Known attributes are:
0: system partition
1: hide from EFI
2: legacy BIOS bootable
60: read-only
62: hidden
63: do not automount
Attribute value is 0000000000000000. Set fields are:
No fields set
Toggle which attribute field (0-63, 64 or <Enter> to exit): 0
Have enabled the 'system partition' attribute.
Attribute value is 0000000000000001. Set fields are:
0 (system partition)
Toggle which attribute field (0-63, 64 or <Enter> to exit): 63
Have enabled the 'do not automount' attribute.
Attribute value is 8000000000000001. Set fields are:
0 (system partition)
63 (do not automount)
Toggle which attribute field (0-63, 64 or <Enter> to exit):
g) No comando NEXT, observe o 'Start (sector) = 945825792 ' para a última partição # 6.
Expert command (? for help): p
Disk /dev/sda: 976773168 sectors, 465.8 GiB
Logical sector size: 512 bytes
Disk identifier (GUID): 11111111-1111-1111-1111-111111111111
Partition table holds up to 128 entries
First usable sector is 34, last usable sector is 976773134
Partitions will be aligned on 2048-sector boundaries
Total free space is 2014 sectors (1007.0 KiB)
Number Start (sector) End (sector) Size Code Name
1 2048 616447 300.0 MiB EF00 EFI system partition
2 616448 1845247 600.0 MiB 2700 Basic data partition
3 1845248 2107391 128.0 MiB 0C01 Microsoft reserved part
4 2107392 421537791 200.0 GiB 0700 Basic data partition
5 421537792 945825791 250.0 GiB 0700 Basic data partition
6 945825792 976773134 14.8 GiB 2700 Basic data partition
h) Armazene as alterações no disco
Expert command (? for help): w
Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING
PARTITIONS!!
Do you want to proceed? (Y/N): y
OK; writing new GUID partition table (GPT) to /dev/sda.
The operation has completed successfully.
4) Faça os sistemas para recarregar o novo disco:
[root]# partprobe /dev/sda
5) Formate as partições recém-criadas
[root]# mkfs.ntfs -f -L OS /dev/sda4
[root]# mkfs.ntfs -f -L DATA /dev/sda5
[root]# mkfs.ntfs -f -L Restore /dev/sda6
6) Restaure o conteúdo da partição 'Restore'.
[root]# mount /dev/sda6 /tmp/mnt
[root]# cd /tmp/mnt
[root]# tar -pxzf /tmp/backup/win8-factory-restore.tgz .
[root]# cd /
[root]# umount /tmp/mnt
7) Atualize os dados de recuperação para que o sistema seja restaurado para as configurações de fábrica na reinicialização (omita esta etapa se o disco original for usado sem reparticionamento)
[root]# mount /dev/sda2 /tmp/mnt
[root]# vi /tmp/mnt/Recovery/WindowsRE/ReAgent.xml
a) Calcule o deslocamento de byte baseando-se no deslocamento do setor (da etapa 3g acima) para a última partição, 945825792 * 512 = 484262805504
b) Atualize a seguinte linha no arquivo ReAgent.xml com o novo valor de deslocamento:
<OsInstallLocation path="\RecoveryImage" id="0" offset="484262805504" guid="{11111111-1111-1111-1111-111111111111}" index="2"/>
c) remova o suporte
[root]# umount /tmp/mnt
8) Reinicie, use F9 para entrar no ambiente de recuperação, selecione a opção 'Reset PC'. Isso restaurará o sistema operacional como na primeira inicialização.