Leia dados de um disco rígido MiniScribe antigo



Tradução do artigo do site do programador e amante do ferro velho Michael Slomkowski

O antigo drive MFM, MiniScribe 2012, com o controlador caiu em minhas mãos. O MFM é uma modulação de frequência modificada e essa tecnologia está frequentemente associada a discos rígidos volumosos da época anterior ao IDE / Parallel ATA. Os dados antigos armazenados no disco (principalmente documentos do MS Word 4.0) tinham um certo valor sentimental para o proprietário anterior, então decidi extraí-lo.

Disco rígido MiniScribe 2012


Disco rígido - MiniScribe 2012 MFM, provavelmente fabricado em 1984. Ele estava em um computador compatível com IBM XT. Esse monstro ocupa dois slots de 5,25 "e pesa mais de dois quilos. Como indicado nas instruções , seu volume é simplesmente incrível - até dez megabytes. O conector de alimentação é um Molex padrão. A unidade é conectada à placa controladora com dois cabos.













A unidade MiniScribe vem com um controlador ISA de 8 bits dedicado chamado WD1002A-WX1. Suas especificações são fáceis de encontrar. O arquivo de texto contém instruções de instalação; Além disso, uma lista de dispositivos compatíveis pode ser útil.

Em teoria, o controlador é capaz de trabalhar com qualquer unidade que suporte os protocolos ST506 / 412, mas na prática não é tão simples. A lista de setores defeituosos deve ser armazenada na ROM do controlador. Isso requer software especial. Geralmente, uma nova unidade começa a funcionar após conectá-la a um novo controlador e executar uma formatação de baixo nível.


Controlador de disco WD1002A-WX1 MFM

O controlador possui seu próprio BIOS, que geralmente é chamado de Option ROM . É chamado pelo BIOS da placa-mãe durante a sequência POST. O código registra um gancho em uma interrupção INT 13 e, como resultado, torna-se acessível no DOS usando uma chamada de interrupção padrão.

Dispositivo


Felizmente, eu tinha uma placa-mãe AT antiga (ATC-1020) com slots ISA e um processador Pentium. Não havia dissipador de calor no processador, mas instalei jumpers na placa para que funcionassem na velocidade mínima e ajustei o dissipador de calor temporário com uma faixa elástica. Também coloquei um módulo de RAM DIMM de 32 MB na placa.



Eu não tinha uma placa gráfica VGA para PCI ou ISA, então usei o MDPA com uma tela monocromática amarela especial. Sua placa-mãe reconheceu com sucesso o que é visto na fotografia.

Para verificar o disco, desativei o controlador IDE no BIOS e tentei inicializar. O disco ganhou vida e até inicializou - vivas!

Download do PXE


Sugeri que, para jogar com este disco MiniScribe, eu precisaria de utilitários do DOS, então decidi inicializar a partir do disquete do MS-DOS. Como é inconveniente mexer com discos físicos, decidi usar a inicialização pela rede. Felizmente, eu tinha uma placa de rede PCI Ethernet com suporte para PXE : 3com 3C905C-TXM

Para inicializar uma imagem de disquete no PXE, você precisa de um carregador de inicialização especial. Um dos mais populares é o PXELINUX, que faz parte do Syslinux, o módulo syslinux do Arch Linux. Em uma máquina Linux, você precisa criar um diretório para inicialização de rede e copiar lá
PXELINUX:

cp /usr/lib/syslinux/bios/{ldlinux.c32,memdisk,pxelinux.0} . mkdir pxelinux.cfg 

Em seguida, crie um arquivo de texto pxelinux.cfg / default com o seguinte conteúdo:

default dos
label dos
kernel memdisk
append initrd=fdboot.img


A imagem do disco de inicialização deve ser salva como fdboot.img. Esses arquivos podem ser baixados como um arquivo ZIP .

Uma maneira popular de configurar a inicialização do PXE é por meio dos daemons dhcpd e TFTP. Essa é uma tarefa difícil, mas felizmente encontrei um servidor netboot pequeno e fácil de usar (aur / netboot para Arch Linux). Ele combina os recursos dos servidores DHCP e TFTP. No meu roteador, iniciei sem desconectar o servidor DHCP, pois eles não devem parecer conflitantes.

Execute o netboot no diretório em que estão os arquivos de inicialização do PXE. Após uma solicitação de DHCP, o servidor retorna o arquivo pxelinux.0 *.

 netboot {broadcast IP} {local machine IP} {IP for client machine} {MAC pattern} 

O {padrão MAC} deve corresponder ao endereço MAC da placa de rede do cliente.

Por exemplo, meu endereço de rede local é 192.168.1.0, o IP da minha máquina Linux é 192.168.1.10 e o MAC da minha placa 3com termina com 66:

 netboot 192.168.1.255 192.168.1.10 192.168.0.20 -66 

Como fdboot.img, usei a unidade padrão do MS-DOS 6.22. Então eu baixei tudo - e funcionou!

Tentativas de copiar dados de uma unidade IDE


Como o controlador MFM possui seu próprio BIOS, o disco estava visível no MS-DOS. Mas eu precisava de uma unidade para a qual eu pudesse copiar arquivos. No começo eu decidi tentar uma unidade IDE. A placa-mãe tinha dois canais IDE. Conectei uma unidade de 40 Gb da Seagate. O sistema detectou, mas, infelizmente, depois disso o MFM deixou de estar disponível. Jogos com jumpers não ajudaram. Pode ter havido algum conflito entre os dois procedimentos de disco.

Copiar dados para um dispositivo USB


Então tentei uma abordagem diferente. Eu instalei uma placa de expansão USB PCI e drivers USBASPI para MS-DOS. Agora não havia conflitos e consegui copiar o disco inteiro para uma unidade flash USB!

 xcopy c:\ d:\ /e /k 





Quatro placas de expansão na placa-mãe. Da esquerda para a direita: placa gráfica MDA, controlador de disco MFM, placa de rede Ethernet 3com, placa de expansão USB.

Como resultado, obtive mais de duzentos arquivos do Microsoft Word DOS, que converti em RTF .

Source: https://habr.com/ru/post/pt427335/


All Articles