Recuperando um disco de um Mac dos Anos 90 com Linux

Recentemente recebi uma mensagem pelo site do Piso que dizia o seguinte: “Queria saber se vocês conseguem recuperar informação de velhos Macs”. Troquei algumas mensagens com o Miguel e descobri que se tratavam de dois HDs (um de um Macintosh IIvx e um de um Powerbook 190). Fiquei de fazer um teste e ver se era capaz de extrair o conteúdo do HD que veio no Performa 450 (LC III).

O objetivo era simples: criar uma imagem completa do disco, montar seu sistema de arquivos HFS no Linux e recuperar os documentos armazenados nele.

A primeira coisa a se fazer foi ligar um computador de maneira provisória sobre a mesa e fazer boot com um HD com Ubuntu instalado. Tinha uma placa SCSI Tekram DC-310 que é facilmente reconhecida em Linux e foi nela que liguei o HD do Performa para ver se isso era realmente possível.

Pedi ajuda ao ChatGPT com os comandos para usar no terminal e depois ainda pedi que ele fizesse a estrutura desse post aqui. Editei bastante, adicionei imagens, mas esse aviso é importante.

Depois de alguns testes, encontrei um fluxo de trabalho bastante confiável que funcionou tanto para o disco de 120 MB do Performa, como depois posteriormente para os discos do computadores do Miguel.

1. Identificando o disco SCSI

Após instalar uma controladora SCSI PCI e conectar o disco, o primeiro passo foi verificar se o Linux o reconhecia:

lsblk

No meu caso, o disco apareceu como:

/dev/sdb

2. Criando uma imagem do disco

Para preservar o conteúdo original, a primeira tarefa é criar uma imagem binária completa do disco.

sudo dd if=/dev/sdb of=~/scsi_120Mb.img bs=4M status=progress conv=noerror,sync

Onde:

  • if= define o disco de origem;
  • of= define o arquivo de destino;
  • bs=4M utiliza blocos maiores para acelerar a cópia;
  • status=progress exibe o progresso;
  • conv=noerror,sync faz com que a cópia continue mesmo diante de setores defeituosos.

Para discos com muitos erros de leitura, o ideal é utilizar ddrescue, que realiza tentativas mais inteligentes de recuperação.

3. Descobrindo a estrutura de partições

Com a imagem criada, podemos analisar sua tabela de partições:

sudo parted ~/scsi_120Mb.img print

O resultado com um disco do Miguel foi:

Number Start End Size File system Name
1 512B 24.1kB 23.6kB Apple
2 24.1kB 65.5kB 41.5kB FWB Disk Driver
3 65.5kB 245MB 245MB hfs MacOS

A partição que interessa é a partição HFS, neste caso a número 3.

4. Calculando o offset

Para montar apenas a partição HFS, precisamos calcular seu deslocamento dentro da imagem.

O início da partição é:

65.5 kB

Convertendo para bytes:

65.5 kB = 65536 bytes

Outra forma de pensar é:

128 setores × 512 bytes = 65536 bytes

Esse valor será usado no parâmetro offset.

5. Criando um ponto de montagem

sudo mkdir -p /mnt/mac

6. Montando o sistema de arquivos HFS

Agora podemos montar a partição HFS em modo somente leitura:

sudo mount -t hfs -o ro,loop,offset=65536 ~/scsi_230Mb.img /mnt/mac

Após isso, os arquivos ficam acessíveis em:

/mnt/mac

7. O problema dos nomes de arquivos

No caso de um dos HDs do Miguel, a instalação estava em Português e tinha ç, ã, etc. Ao abrir a pasta montada, muitos nomes apareciam corrompidos:

Aplica\215\233es
Utilit\223rios

Isso acontece porque os Macintosh clássicos utilizavam a codificação MacRoman, enquanto os sistemas atuais utilizam UTF-8. Os arquivos estavam íntegros, mas os nomes não eram exibidos corretamente.

8. Convertendo os nomes para UTF-8

A solução mais elegante foi utilizar o rsync com conversão automática de caracteres enquanto já copiava os arquivos da imagem gerada para uma pasta na Área de Trabalho do computador:

rsync -av --iconv=macintosh,utf-8 /mnt/scsi230/ ~/Desktop/scsi230_utf8/

A partir dessa pasta já é possível copiar os arquivos com os nomes corretos para outro lugar ou abrí-los e explorar seu conteúdo.

Considerações finais

Foi surpreendente perceber como discos Macintosh de quase trinta anos ainda podem ser lidos sem grandes dificuldades utilizando ferramentas disponíveis em uma distribuição Linux moderna.

O fluxo que funcionou foi:

  1. Identificar o disco com lsblk;
  2. Criar uma imagem com dd ou ddrescue;
  3. Examinar a tabela de partições com parted;
  4. Calcular o offset da partição HFS;
  5. Montar a imagem em modo somente leitura;
  6. Extrair os arquivos usando rsync --iconv=macintosh,utf-8.

Com esse procedimento foi possível recuperar documentos, programas e dados pessoais preservados em discos Macintosh que permaneceram guardados por décadas.

PS: o Miguel ainda teve algumas dificuldades ao abrir os documentos em um programa Word moderno. Ficava recebendo alertas da Central de Confiança. Uma busca rápida nos levou a instruções para permitir que arquivos de versões antigas do Word pudessem ser abertos sem esse bloquei e estava tudo resolvido!

Deixe um comentário