/home/ericogr/blog

Experiências no desenvolvimento de aplicações e afins

Recuperando partições danificadas

Posted by ericogr em 11 junho 2009

Problema: depois de reparticionar o hd (sdb) utilizando as ferramentas do ubuntu server 9.04 e da instalação do grub, a partição NTFS (sda1) não pode mais ser montada (mount /dev/sdas1 /mnt -t ntfs). Ao tentar montar recebemos a mensagem:

The device ‘/dev/sda1’ doesn’t have a valid NTFS.
Maybe you selected the wrong device? Or the whole disk instead of a
partition (e.g. /dev/hda, not /dev/hda1)? Or the other way around?

Nesta partição (sda1) está instalado o Windows XP e com este erro, não é possível montar e muito menos iniciar o sistema.

Ainda não descobri a causa do problema, na verdade, já realizei o processo de particionamento uma série de vezes e nunca tive problemas. De qualquer forma, eu preciso da minha partição de volta ou, pelo menos, dos dados contidos nela!

A solução proposta aqui não se aplica a todos os casos, mas ela pode servir de base para solucionar outros tipos de problemas ligados a recuperação de partições danificadas. Como dizem por aí: siga os passos por conta e risco! Não venha reclamar que perdeu tudo porque seguiu os passos descritos aqui!

Solução adotada:

Depois de pesquisar em vários fóruns, achei um sistema operacional linux chamado System Rescue (http://www.sysresccd.org). Ele possui várias ferramentas interessantes para realizar recuperação de dados e uma delas é a testdisk (http://www.cgsecurity.org/wiki/TestDisk).

No meu caso, instalei a ferramenta no sistema operacional que já estava instalado na máquina em uma outra partição. Se eu não tivesse, uma boa opção seria utilizar o System Rescue mesmo (mais detalhes no site).

Para instalar o testdisk no ubuntu digite: sudo apt-get install testdisk

O site http://www.cgsecurity.org/wiki/TestDisk traz uma série de informações sobre a ferramenta. Ela possui suporte para os seguintes sistemas de arquivo:

  • BeFS ( BeOS )
  • BSD disklabel ( FreeBSD/OpenBSD/NetBSD )
  • CramFS, Compressed File System
  • DOS/Windows FAT12, FAT16 and FAT32
  • Windows exFAT
  • HFS, HFS+ and HFSX, Hierarchical File System
  • JFS, IBM’s Journaled File System
  • Linux ext2 and ext3
  • Linux LUKS encrypted partition
  • Linux RAID md 0.9/1.0/1.1/1.2
    • RAID 1: mirroring
    • RAID 4: striped array with parity device
    • RAID 5: striped array with distributed parity information
    • RAID 6: striped array with distributed dual redundancy information
  • Linux Swap (versions 1 and 2)
  • LVM and LVM2, Linux Logical Volume Manager
  • Mac partition map
  • Novell Storage Services NSS
  • NTFS ( Windows NT/2000/XP/2003/Vista/2008 )
  • ReiserFS 3.5, 3.6 and 4
  • Sun Solaris i386 disklabel
  • Unix File System UFS and UFS2 (Sun/BSD/…)
  • XFS, SGI’s Journaled File System

No meu caso, depois de instalar o testdisk, eu executei:

sudo su
testdisk

1. Selecione Create (se quiser criar um log)

TestDisk 6.10, Data Recovery Utility, July 2008
Christophe GRENIER <grenier@cgsecurity.org>
http://www.cgsecurity.org

TestDisk is a free data recovery software designed to help recover lost
partitions and/or make non-booting disks bootable again when these symptoms
are caused by faulty software, certain types of viruses or human error.
It can also be used to repair some filesystem errors.

Information gathered during TestDisk use can be recorded for later
review. If you choose to create the text file, testdisk.log , it
will contain TestDisk options, technical information and various
outputs; including any folder/file names TestDisk was used to find and
list onscreen.

Use arrow keys to select, then press Enter key:
[ Create ]  Create a new log file
[ Append ]  Append information to log file
[ No Log ]  Don’t record anything

2. Selecione o disco que tem as partições que serão recuperadas e selecione proceed. No meu caso foi /dev/sda:

TestDisk 6.10, Data Recovery Utility, July 2008
Christophe GRENIER <grenier@cgsecurity.org>
http://www.cgsecurity.org

TestDisk is free software, and
comes with ABSOLUTELY NO WARRANTY.

Select a media (use Arrow keys, then press Enter):
Disk /dev/sda – 160 GB / 149 GiB – ATA ST3160827AS
Disk /dev/sdb – 80 GB / 74 GiB – ATA ST380011A

[Proceed ] [  Quit  ]

3. Selecione o tipo de partição. No meu caso (e na maior parte dos outros) é a opção Intel:

TestDisk 6.10, Data Recovery Utility, July 2008
Christophe GRENIER <grenier@cgsecurity.org>
http://www.cgsecurity.org

Disk /dev/sda – 160 GB / 149 GiB – ATA ST3160827AS

Please select the partition table type, press Enter when done.
[Intel  ]  Intel/PC partition
[EFI GPT]  EFI GPT partition map (Mac i386, some x86_64…)
[Mac    ]  Apple partition map
[None   ]  Non partitioned media
[Sun    ]  Sun Solaris partition
[XBox   ]  XBox partition
[Return ]  Return to disk selection

4. Selecione a opção advanced:

TestDisk 6.10, Data Recovery Utility, July 2008
Christophe GRENIER <grenier@cgsecurity.org>
http://www.cgsecurity.org

Disk /dev/sda – 160 GB / 149 GiB – CHS 19457 255 63

[ Analyse  ]  Analyse current partition structure and search for lost partitions
[ Advanced ]  Filesystem Utils
[ Geometry ]  Change disk geometry
[ Options  ]  Modify options
[ MBR Code ]  Write TestDisk MBR code to first sector
[ Delete   ]  Delete all data in the partition table
[ Quit     ]  Return to disk selection

5. Agora selecione boot:

TestDisk 6.10, Data Recovery Utility, July 2008
Christophe GRENIER <grenier@cgsecurity.org>
http://www.cgsecurity.org

Disk /dev/sda – 160 GB / 149 GiB – CHS 19457 255 63

Partition                  Start        End    Size in sectors
1 * HPFS – NTFS              0   1  1 12157 254 63  195318207
2 P FAT32                12158   0  1 17020 254 63   78124095 [NO NAME]
3 E extended             17021   0  1 19456 254 63   39134340
5 L HPFS – NTFS          17021   1  1 19456 254 63   39134277 [New Volume]

[  Type  ]  [  Boot  ] [Image Creation]  [  Quit  ]
Boot sector recovery

6. Nesta máquina estou com um problema no Boot Sector. Neste caso, selecione Org. BS. Observe a mensagem Sectors are not identical:

TestDisk 6.10, Data Recovery Utility, July 2008
Christophe GRENIER <grenier@cgsecurity.org>
http://www.cgsecurity.org

Disk /dev/sda – 160 GB / 149 GiB – CHS 19457 255 63
Partition                  Start        End    Size in sectors
1 * HPFS – NTFS              0   1  1 12157 254 63  195318207

Boot sector
Status: OK

Backup boot sector
Status: OK

Sectors are not identical.

A valid NTFS Boot sector must be present in order to access
any data; even if the partition is not bootable.

[  Quit  ]  [  List  ]  [Org. BS ] [Backup BS]  [Rebuild BS]  [  Dump  ]

7. Restaurar o backup dos setores de boot. Pressione Y:

TestDisk 6.10, Data Recovery Utility, July 2008
Christophe GRENIER <grenier@cgsecurity.org>
http://www.cgsecurity.org

Copy original NTFS boot sector over backup boot, confirm ? (Y/N)

8.Observe que agora não há divergencia no boot sector (Sectors are identical):

TestDisk 6.10, Data Recovery Utility, July 2008
Christophe GRENIER <grenier@cgsecurity.org>
http://www.cgsecurity.org

Disk /dev/sda – 160 GB / 149 GiB – CHS 19457 255 63
Partition                  Start        End    Size in sectors
1 * HPFS – NTFS              0   1  1 12157 254 63  195318207

Boot sector
Status: OK

Backup boot sector
Status: OK

Sectors are identical.

A valid NTFS Boot sector must be present in order to access
any data; even if the partition is not bootable.

9. Agora vamos refazer setor de boot:

TestDisk 6.10, Data Recovery Utility, July 2008
Christophe GRENIER <grenier@cgsecurity.org>
http://www.cgsecurity.org

Disk /dev/sda – 160 GB / 149 GiB – CHS 19457 255 63
Partition                  Start        End    Size in sectors
1 * HPFS – NTFS              0   1  1 12157 254 63  195318207

Boot sector
Status: OK

Backup boot sector
Status: OK

Sectors are identical.

A valid NTFS Boot sector must be present in order to access
any data; even if the partition is not bootable.

[  Quit  ]  [  List  ]  [Rebuild BS] [Repair MFT]  [  Dump  ]

10. Agora clique na opção Write:

TestDisk 6.10, Data Recovery Utility, July 2008
Christophe GRENIER <grenier@cgsecurity.org>
http://www.cgsecurity.org

Disk /dev/sda – 160 GB / 149 GiB – CHS 19457 255 63
Partition                  Start        End    Size in sectors
1 * HPFS – NTFS              0   1  1 12157 254 63  195318207

filesystem size           195318207 195318207
sectors_per_cluster       8 8
mft_lcn                   786432 786432
mftmirr_lcn               12207387 144959613018195227
clusters_per_mft_record   -10 -127
clusters_per_index_record 1 114
Extrapolated boot sector and current boot sector are different.

[  Dump  ]  [  List  ]  [ Write  ] [  Quit  ]

11. Confirme a gravação do novo boot pressionando Y:

TestDisk 6.10, Data Recovery Utility, July 2008
Christophe GRENIER <grenier@cgsecurity.org>
http://www.cgsecurity.org

Write new NTFS boot sector, confirm ? (Y/N)

Pressione q várias vezes até sair do programa.
Neste ponto a partição deve estar pronta para ser utilizada. Você poderá monta-la e copiar seus dados para um local seguro.

Como este é um simples PC doméstico, não é sempre que faço backup dos meus dados e esta ferramenta foi a minha salvação. Quem sabe ela também não pode ser a sua!

Uma resposta to “Recuperando partições danificadas”

  1. Greg said

    Muitíssimo obrigado pela dica!

    Eu não aguentava lentidão e os problemas do Windows Vista do notebook da minha esposa que eu usava de vez em quando.

    Resolvi então instalar Ubuntu em outra partição e tava super feliz até o momento que descobri que o Vista não iniciava e ao tentar montar a partição a partir do Ubuntu, recebia a mensagem: “The device ‘/dev/sda1′ doesn’t have a valid NTFS.”.

    Gelei a espinha lembrando que ela quase não faz backup!

    Mas achei esta sua página, segui suas instruçoes e salvei minha pele.🙂

    Valeu, Erico, e um grande abraço.

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

 
%d blogueiros gostam disto: