Como inicializar no FreeBSD instalado na segunda partição de uma unidade externa

3

Instalei o FreeBSD 9.1 na segunda partição de um disco rígido externo e não consigo que meu computador inicialize a partir dele. O FreeBSD foi instalado usando a imagem memstick do FreeBSD ddd em uma unidade flash USB.

A primeira partição é uma partição ntfs que possui meu backup. Quando descobri a necessidade de ter uma instalação do FreeBSD, "encolhi" a primeira partição (no Windows) para obter espaço livre para instalar o FreeBSD e depois instalar o FreeBSD. Ele nunca pediu para instalar um gerenciador de inicialização.

Quando tentei inicializar pela primeira vez, ele falhou sem nenhuma mensagem de erro (talvez não houvesse nenhum gerenciador de inicialização instalado). Então inicializei a partir da minha unidade flash e executei o comando boot0cfg -B /dev/ad1) (ad1 refere-se ao disco rígido externo). Agora, na inicialização, ele exibe um menu como:

F1 Win
F2 FreeBSD
F5 First disk

e ao pressionar F1 ou F2, recebo a mensagem de erro: "BOOTMGR está faltando". Qual poderia ser o problema?

Por favor me ajude a iniciar a instalação do FreeBSD.

    
por Rushil Paul 24.04.2013 / 08:18

1 resposta

2

Os discos rígidos ad0 e ad1 precisam ter o código de inicialização boot0, e a fatia (partição MBR) do ad1 em que o FreeBSD se encontra precisa ter boot1. Isso é um pouco confuso, mas resulta de uma decisão arquitetônica de usar bsd disklabels dentro de partições MBR.

O Boot0 é realmente pequeno e dinâmico, permitindo que outros gerenciadores de inicialização respeitáveis do SO continuem. Basicamente boot0 fica no MBR. Boot0 não pode ler disklabels, então ele apenas carrega o primeiro bloco (s) de uma partição (slice) e pula para executar esse código.

Boot1 é onde o código específico do FreeBSD realmente inicia, a memória é configurada nos modos adequados ao kernel do FreeBSD e o código boot1 pode ler o disklabel do BSD, localizar / e até ler o sistema de arquivos o suficiente para encontrar um arquivo do kernel pelo nome. O Boot1 é bastante complicado e carrega muitas coisas, incluindo o carregamento de mais código de boot, módulos, o kernel e inicia a execução do kernel.

Suponho que você tenha um layout de disco parecido com este:

ad0 - disco rígido interno (boot0)
ad0s1 - primeira e única partição (fatia) do disco rígido interno, C: \

ad1 - disco rígido externo (boot0)
ad1s0 - uma partição FAT ou NTFS (slice) na unidade externa, D: \
ad1s1 - Partição do FreeBSD (slice) (boot1)
ad1s1a - FreeBSD /
ad1s1b - Troca do FreeBSD
ad1s1c - FreeBSD / usr
...

Eu observei onde você precisa dos loaders boot0 e boot1.

Fazer isso manualmente ensina boas lições valiosas sobre como o FreeBSD é inicializado. As próximas lições em linha são configurar o ambiente / boot /, alterar uma imagem personalizada e selecionar e configurar os módulos do kernel antes que o próprio kernel seja carregado.

Eu estou supondo que você está fazendo isso principalmente para fins de aprendizado e poderia estar interessado em desmontar a instalação. NanoBSD vale a pena investigar.

    
por 01.04.2014 / 14:00