
He instalado FreeBSD 9.1 en la segunda partición de un disco duro externo y no puedo arrancar mi computadora desde allí. FreeBSD se instaló utilizando la imagen del memstick de FreeBSD agregada a una unidad flash USB.
La primera partición es una partición ntfs que tiene mi copia de seguridad. Cuando encontré la necesidad de tener una instalación de FreeBSD, "reduje" la primera partición (en Windows) para obtener espacio libre para instalar FreeBSD y luego instalé FreeBSD. Nunca pidió instalar un administrador de arranque.
Cuando intenté arrancar por primera vez, falló sin ningún mensaje de error (tal vez no había ningún administrador de arranque instalado). Entonces inicié desde mi unidad flash y ejecuté el comando boot0cfg -B /dev/ad1)
(ad1 se refiere al disco duro externo). Ahora, al arrancar, muestra un menú como:
F1 Win
F2 FreeBSD
F5 First disk
y al presionar F1 o F2 aparece el mensaje de error: "Falta BOOTMGR". ¿Cuál podría ser el problema?
Ayúdenme a iniciar mi instalación de FreeBSD.
Respuesta1
Tanto el disco duro ad0 como el ad1 deben tener el código de arranque boot0, y la porción (partición MBR) de ad1 en la que se encuentra FreeBSD debe tener boot1. Esto es algo confuso, pero es el resultado de una decisión arquitectónica muy antigua de usar etiquetas de disco BSD dentro de particiones MBR.
Boot0 es realmente pequeño y dinámico, lo que permite que otros gestores de arranque respetables de otros sistemas operativos continúen. Básicamente, boot0 se encuentra en el MBR. Boot0 no puede leer etiquetas de disco, por lo que simplemente carga los primeros bloques de una partición (segmento) y salta para ejecutar ese código.
Boot1 es donde realmente comienza el código específico de FreeBSD, la memoria se configura en modos adecuados para el kernel de FreeBSD y el código boot1 puede leer la etiqueta del disco BSD, buscar / e incluso leer el sistema de archivos lo suficiente como para encontrar un archivo del kernel por su nombre. Boot1 es bastante complicado y hace muchas cosas, incluida la carga de más código de arranque, módulos, el kernel y comienza a ejecutar el kernel.
Supongo que tienes un diseño de disco parecido a este:
ad0 - disco duro interno (boot0)
ad0s1 - primera y única partición (segmento) del disco duro interno, C:\
ad1 - disco duro externo (boot0)
ad1s0 - una partición FAT o NTFS (segmento) en un disco externo, D:\
ad1s1 - partición FreeBSD (slice) (boot1)
ad1s1a - FreeBSD /
ad1s1b - intercambio de FreeBSD
ad1s1c - FreeBSD /usr
.. .
He observado dónde se necesitan los cargadores boot0 y boot1.
Hacer esto a mano enseña lecciones valiosas sobre cómo arranca FreeBSD. Las siguientes lecciones son configurar el entorno /boot/, cambiar una imagen personalizada y seleccionar y configurar los módulos del kernel antes de que se cargue el kernel.
Supongo que estás haciendo esto principalmente con fines de aprendizaje y podrías estar interesado en simplificar la instalación. Vale la pena investigar NanoBSD.