Sítio do Piropo

B. Piropo

< Assunto >
Volte
24/03/2003

< Ação de FDISK /MBR >


P: Se eu executar o comando “FDISK /MBR” eu formato e conserto o setor raiz ou formato o disco todo?

Albano Teixeira  

R: Resposta curta: o comando “FDISK /MBR” somente afeta o primeiro setor da primeira trilha do disco, chamado de registro mestre de inicialização (Master Boot Record, ou MBR). Resposta decente: o comando FDISK não formata discos, apenas subdivide unidades físicas (discos rígidos) em uma ou mais unidades lógicas, ou partições, cada uma delas simulando ser um “disco” independente. Ou seja: subdivide um disco rígido (físico) em diversos “discos” (lógicos) independentes, cada um recebendo seu próprio designador (“letra de drive”). Partições podem ser primárias ou estendida e ocupam um determinado número de setores e trilhas do disco físico. Um disco pode ter até quatro partições, apenas uma das quais pode ser estendida (mas essa pode, por sua vez, ser subdividida em diversos discos lógicos). Das partições primárias, somente uma pode estar “ativa” (aquela da qual será carregado o sistema operacional). Então, depois que se usou o comando FDISK para “particionar” o disco, é preciso saber quantas partições ele contém, onde (em que setor e trilha) cada uma delas começa e onde acaba, quais delas são primárias, qual a estendida e qual das primárias está ativa. Estes dados são gravados em uma tabela contida no primeiro setor da primeira trilha do disco rígido (físico), que se chama “registro mestre de inicialização” (Master Boot Record, ou MBR). Essa tabela chama-se “tabela de partição” e ocupa os últimos 64 bytes do MBR. Os dois primeiros bytes do MBR são ocupados por uma “assinatura” para validação. Seus demais 446 bytes (como qualquer outro setor de um disco, o MBR tem 512 bytes) são ocupados por uma rotina (pequeno trecho de programa) denominada “boot loader”, que lê o conteúdo da tabela de partição, descobre onde está a partição primária ativa, lê seu primeiro setor (chamado de “setor de inicialização”, ou “boot sector”), carrega na memória o código nele contido e passa o controle para ele, que então carrega o sistema operacional instalado na partição ativa. Cada partição primária tem um único setor de inicialização e cada disco rígido tem um único MBR. Quando os fazedores de vírus descobriram isso, começaram a desenvolver os chamados “vírus de inicialização” (“boot virus”), que substituem o “boot loader” pelo código do vírus. Como o “boot loader” é executado antes da carga do sistema operacional, essa técnica facilita a rápida disseminação do vírus. Para combater esse tipo de vírus, os sistemas operacionais desenvolvidos a partir do DOS 5 passaram a incluir um parâmetro não documentado no comando FDISK, o parâmetro “/MBR”. Sua única função é refazer o conteúdo original dos 446 bytes do “miolo” do MBR (que contém a rotina “boot loader”), substituindo o código do vírus pelo do “boot loader” convencional. Mas cuidado: se, na maioria dos casos esse comando é benéfico e elimina o vírus, há situações em que ele pode ser prejudicial. Alguns exemplos: casos em que o vírus, além de substituir o “boot loader”, altera ou move a tabela de partição; casos em que se usa certos sistemas de segurança que criptografam todo o conteúdo do disco rígido; casos em que se usa certos programas gerenciadores de inicialização que permitem escolher o sistema operacional durante a inicialização; casos em que se usa um programa que permite que BIOS antigos reconheçam discos rígidos de grande capacidade. Em todos esses casos, o conteúdo do “boot loader” convencional é substituído pelo código do programa, e restaurar o boot loader convencional pode impedir o acesso ao disco rígido. Embora não documentado oficialmente, o parâmetro “/MBR” é comentado no artigo 69013 (em português) da base de dados da MS, em <http://support.microsoft.com/?kbid=69013>.

B. Piropo