terça-feira, 27 de setembro de 2011

Zero Linux

Escrever zeros em HDs pode resolver alguns problemas, como tabelas de partições malucas, que conseguem travar BIOS na detecção dos discos ou impedir o instalador do Windows de funcionar. Também no caso de HDs com setores defeituosos, escrever zeros no disco inteiro é uma medida de saneamento para obrigar a controladora a trabalhar, realocando os setores (ver "ZeroFill" e os setores defeituosos). E por último, quando você quer se livrar do particionamento atual de forma rápida, limpando não só a tabela de partição em si, mas o código de boot da MBR (os primeiros 446 bytes) e qualquer resquício de algum bootloader que possa estar na área reservada entre o MBR e o início da primeira partição, área que é de 62 ou 2047 setores, dependendo da ferramenta usada.

Cada fabricante de HD tem seu programa de diagnóstico, que costuma ter uma ferramenta para este fim. Porém são mídias com programas que rodam sobre DOS e não funcionam em todas as marcas de HDs. Usar um Windows PE está fora de cogitação e o DOS é um atraso. A solução não poderia ser mais óbvia: Linux. O kernel é altamente configurável e fornece amplo suporte a hardware -- neste caso, a controladores PATA/SATA. Juntando o BusyBox, o binário multifuncional, e um pouco de cola, pronto, um pequeno Linux que é capaz de dar boot. E é isso, o esqueleto deste projeto pessoal, que batizei de "Zero Linux", é o kernel, com uma configuração super enxuta, o BusyBox e o dc3dd estáticos, alguns shell scripts e o GRUB4DOS como bootloader do CD "eltorito" (sem emulação de disquete).

Os dispositivos são criados dinamicamente no diretório /dev. Ou seja, se você plugar um pendrive ou um HD externo, ele automaticamente aparecerá lá e será listado pelo script 'lista'. USB 3.0 está habilitado no kernel, caso você tenha hardware compatível em mãos.

Coloquei a versão 1.6 no ar agora. Ela está com o kernel 2.6.39.2 ainda pois o kernel.org ainda está fora do ar.

Download aqui: http://sabugo.net76.net/zero.htm

A única mudança no uso foi o script 'zera', que teve a sintaxe alterada. Agora, para zerar tudo é "zera -t sdx".

Como agora estou compilando no Debian 6.0 x86-32, que tem um toolchain que gera binários i486, eu esqueci de configurar o kernel para i486... :( assim, passaria a ser compatível com velharias como K6-2 e VIA C3. Não sei se este tipo de suporte tem alguma utilidade hoje em dia. Quando o kernel.org voltar, eu vejo o que faço.

Nenhum comentário:

Postar um comentário