Micro Cosmo
Volte
29/01/96

< Sem Título - Resposta >


Semana passada matutávamos sobre um tema interessante: quem gravou no disco o setor de boot? Pois se você acompanha este MicroCosmo, provavelmente sabe a resposta. Ou pelo menos parte dela. Porque quando discutimos particionamento de discos, mencionamos que a tabela de partição é gravada no final do primeiro setor da trilha zero da face zero, o Master Boot Record, MBR ou setor de boot mestre (se você lembra das partições, sabe que cada uma delas se comporta como um disco rígido independente e portanto pode ter seu próprio setor de boot; o MBR é o setor de boot da primeira partição, sempre uma partição primária).

Ora, como o particionamento é a primeira coisa que se grava no disco depois da formatação física, podemos garantir que antes dele o disco rígido não continha informação alguma. E se a tabela de particionamento faz parte do setor de boot, evidentemente quem gravou este setor no disco foi o programa usado para particioná- lo (geralmente o Fdisk.Exe). O que é verdade. Mas não toda a verdade.

Porque de fato o programa que executa o particionamento grava no disco um setor de boot. Mas não pode gravar neste setor as informações necessárias para carregar o sistema operacional, pois não tem a menor idéia sobre onde estarão os arquivos do sistema, que só serão gravados mais tarde. Pior: como o particionamento é feito antes da formatação lógica, ele não sabe nem ao menos que sistema operacional virá a ser carregado. Que pode ser, por exemplo, DOS, Windows 95, OS/2 ou Windows NT só para citar alguns (sim, é verdade que cada sistema operacional tem seu programa de particionamento - mas nada impede, por exemplo, que eu particione o disco rígido com o Fdisk do DOS e que o formate com o FORMAT do OS/2 ou do Windows NT).

O que acontece é que o programa de particionamento grava no disco rígido um setor de boot, digamos,“provisório”. Que contém todas as informações sobre as partições, inclusive qual delas é primária (ou quais delas são primárias, já que em um mesmo disco pode haver mais de uma partição primária), e quais são as secundárias, caso existam, qual é a ativa, em que setores começa e termina cada uma delas e assim por diante. E deixa este setor quieto lá em seu lugar.

Quem dá ao setor de boot sua forma definitiva é a formatação lógica. No DOS (usado aqui como exemplo por ser o mais simples) ela é executada com o comando FORMAT. Que já foi discutido aqui mesmo e, como vocês se lembram, admite alguns modificadores, dentre os quais o modificador “/S”.

Quando se usa o comando FORMAT sem o modificador “/S”, ele grava no disco os setores correspondentes à FAT, diretório raiz e tudo o mais. E dá forma definitiva ao setor de boot, gravando nele dados que informam o tipo de formatação, o sistema operacional usado para fazê-la e coisa e tal. E informa também que aquele disco (ou partição, o que dá no mesmo) não é um disco de boot - o que faz com que o nome “setor de boot” para seu primeiro setor não seja lá muito apropriado.

Mas se o modificador “/S” houver sido usado, as coisas passam-se de forma ligeiramente diferente. Pois ele informa ao comando que, depois de formatado, aquele deverá ser um disco de sistema, ou seja, um disco no qual devem ser gravados os arquivos que compõem o sistema operacional. E que este disco poderá ser usado como disco de boot, um disco a partir do qual o sistema poderá ser carregado. Sendo assim, quando o comando FORMAT alterar o setor de boot para dar-lhe forma definitiva, não apenas informará que sistema operacional foi usado para formatar a partição e coisa e tal, como também que trata-se de um disco de boot. E, sobretudo, gravará nele informações sobre o local onde estão os arquivos que devem ser transferidos para a memória durante o boot para carregar o sistema operacional. Coisa que o comando FORMAT está farto de saber, pois afinal ele mesmo acabou de os gravar lá.

Outros sistemas operacionais usam meios diferentes ao invés de algo simples como o modificador “/S”, mas que no fundo dão no mesmo: alteram o setor de boot das partições para informar se os arquivos de sistema devem ser carregados a partir dela ou não e, caso positivo, onde estão localizados. Mas o fato de que a forma final do setor de boot é dada durante a formatação lógica permanece inalterado.

Aliás, “forma final” não é bem o termo. Pois durante a vida util de um disco, seu setor de boot pode ser alterado diversas vezes, mesmo que ele não seja reformatado.

Estranhou? Ora, pense um pouco. Uma das situações em que isto evidentemente acontece é quando se faz o “upgrade” (atualização da versão) do sistema operacional, pois mudando os arquivos de sistema, muda sua localização no disco e o setor de boot precisa ser alterado para refletir esta mudança.

Outra são os chamados “boots múltiplos”, ou seja, boots alternados com diferentes sistemas operacionais.

Um assunto interessante que vale a pena discutir.

B. Piropo