A MBR do FreeBSD é localizada no /boot/boot0. Esta é uma cópia do MBR, por que a real MBR deve ficar em uma parte especial do disco, fora da área do FreeBSD.
boot0 é muito simples, visto que o programa dentro da MBR pode ter no máximo 512 bytes. Se você tiver instalado na MBR o FreeBSD e instalado múltiplos sistemas operacionais em seu HD então você vera um menu similar a este na hora da inicialização:
Outros sistemas operacionais, em particular Windows® 95, tem conhecimento para sobrescrever suas próprias informações em uma MBR já existente. Se isto acontecer a você, ou você queira substituir sua MBR existente com o FreeBSD MBR então use o seguinte comando:
# fdisk -B -b /boot/boot0 device
Onde device é o dispositivo que você carrega, como ad0 para o primeiro disco IDE, ad2 para o primeiro disco IDE da segunda controladora IDE, da0 para o primeiro disco SCSI, e assim por diante.
Se você for um usuário Linux, contudo, e preferir que o LILO controle o processo de inicialização, você pode editar o arquivo /etc/lilo.conf para FreeBSD, ou selecionar Leave The Master Boot Record Untouched durante o processo de instalação do FreeBSD. Se você tiver instalado o gerenciador de boot do FreeBSD, você pode carregar dentro do Linux e modificar o LILO no arquivo de configuração /etc/lilo.conf e adicionar a seguinte opção:
other=/dev/hdXY table=/dev/hdb loader=/boot/chain.b label=FreeBSD
o qual permitirá a inicialização do FreeBSD e Linux via LILO. Em outro exemplo, nós usamos XY para determinar o número do drive e da partição. Se estiver usando um drive SCSI, você irá querer mudar o /dev/hdXY para leitura algo similar a /dev/sdXY, novamente usando a sintaxe XY. O loader=/boot/chain.b pode ser omitido se você tiver ambos os sistemas operacionais na mesma partição. Você pode agora rodar /sbin/lilo -v para executar suas novas alterações no sistema, este deve ser verificado com mensagens na tela.
Conceitualmente o primeiro e segundo estágios são parte do mesmo programa, sobre a mesma área do disco. Devido o espaço contido eles foram divididos em duas partes, mas você deve instalá-los juntos.
Eles são encontrados no setor de inicialização, que é onde boot0, ou alguns outros programas na MBR espera encontrar um programa para rodar e continuar o processo de inicialização. O arquivo no diretório /boot são cópias dos arquivos reais, que são armazenados fora do sistema de arquivos do FreeBSD.
boot1 é muito simples, este também pode somente ter o tamanho máximo de 512 bytes, e sabemos bastante sobre o disklabel do FreeBSD, que armazena informações no slice, para procurar e executar o boot2.
boot2 é ligeiramente mais sofisticado, e compreende bastante o sistema de arquivos do FreeBSD para procurar arquivos nele, e pode fornecer uma relação simples para escolher o kernel ou o carregador para executar.
Desde que o carregador é muito mais sofisticado, e fornece uma configuração fácil-de-usar agradável de inicialização, boot2 usualmente executa-a, mas previamente isto era tarefa para executar diretamente no kernel.
Se você precisar sempre substituir a instalação boot1 e boot2 use disklabel(8).
# disklabel -B diskslice
Onde diskslice é o disco e slice da sua inicialização, tal como ad0s1 para o primeiro HD sobre a IDE.
Modalidade Perigosamente DedicadaSe você usar apenas o nome do disco, tal como ad0, no comando disklabel(8) você irá criar um disco perigosamente dedicado, sem partições. Isto não devera ser o que vocô quer fazer, assim que você verificar o dobro do disklabel(8) depois você deverá pressionar Return.
A inicialização e o estágio final dos três-estágios de bootstrap, é localizado no sistema de arquivos, usualmente como /boot/loader.
A inicialização é usada como um método amigável para configuração, usando um jogo de comandos internos fácil-de-usar, voltado por um interpretador mais poderoso, com um jogo de comandos mais complexo.
Durante a initialização, o carregador sondará para um console e para discos, e figura de saída de que os discos são carregados. Isto setará variáveis conformemente, e um interpretador é iniciado onde os comandos do usuário podem ser passados de um script ou interativamente.
Então o carregador irá ler o /boot/loader.rc, que por padrão lê dentro de /boot/defaults/loader.conf que seta padrões para variáveis e lê o /boot/loader.conf para as mudança destas variáveis locais. loader.rc age então sobre estas variáveis, carregando qualquer módulo e kernel que são selecionados.
Finalmente, por padrão, o carregador emite uma espera de 10 segundos para pressionar alguma tecla, e carregar o kernel se este não for interrompido. Se interrompido, ao usuário é apresentado um alerta no prompt que é de fácil uso para entender o comando setado, onde o usuário pode ajustar variáveis, descarregar todos os módulos, carregar módulos, e eles finalmente carregar ou reiniciar.
Estes são os comandos mais comuns usados no carregamento do sistema. Para uma completa discussão de todas avaliações dos comandos, por favor veja loader(8).
O processo de carregamento do kernel não é interrompido durante o tempo concedido, em segundos. Isto mostra uma contagem regrassiva, e o tempo padrão concedido é 10 segundos.
Imediatamente o processo de carregamento do kernel, com as opções dadas, se existir, e com o nome do kernel dado, se for.
Ir através da mesma configuração automática dos módulos baseados em variáveis como que acontece no boot. Isto somente faz sentido se você primeiramente descarregar, e alterar algumas variáveis, do kernel mais freqüente.
Mensagens de ajuda são lidas em /boot/loader.help. Se o tópico dado for index, então a lista de tópicos disponíveis é dada.
Processa o arquivo com o nome dado ao mesmo. O arquivo é lido, e interpretado linha por linha. Um erro imediatamente para o comando de inclusão.
Carrega o kernel, o módulo do kernel, ou arquivo do tipo dado, com o nome dado. Todos argumentos depois do nome do arquivo são passados para o arquivo.
Mostra uma lista de arquivos dentro dos caminhos dados, ou o diretório do root, se o caminho não é especificado. Se -l, é especificada o tamanho do arquivo será mostrado também.
Lista todos os dispositivos que pode ser possível para carregar módulos. Se -v for especificado, mais detalhes serão mostrados.
Mostra módulos carregados. Se -v for especificado, mais detalhes serão mostrados.
Mostra os arquivos especificados, com uma pausa em cada LINHA mostrada.
Imediatamente reiniciará o sistema.
Seta as variáveis do ambiente carregado.
Remove todos módulos carregados.
Estão aqui alguns exemplos práticos do uso do carregador:
Para simplesmente carregar seu kernel usual, mas em modo mono-usuário:
boot -s
Para descarregar seu kernel e módulos usuais, e então carregar apenas seu kernel velho (ou outro):
unload load kernel.old
Você pode usar o kernel.GENERIC para referir ao kernel genérico que vem no disco de instalação, ou kernel.old para consultar seu kernel previamente instalado (quando você tiver atualizado ou configurado seu kernel, por exemplo).
Nota: Use o seguinte para carregar seus módulos usuais com outro kernel:
unload set kernel="kernel.old" boot-conf
Para carregar um script de configuração do kernel (um script automatizado qual faça as coisas que você faria normalmente dentro do kernel na configuração do boot-time):
load -t userconfig_script /boot/kernel.conf
Este, e outros documentos, podem ser obtidos em ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.
Para perguntas sobre FreeBSD, leia a documentação antes de contatar <questions@FreeBSD.org>.
Para perguntas sobre esta documentação, envie e-mail para <doc@FreeBSD.org>.