[% INCLUDE header title = 'GNU GRUB - Obtaining GRUB' %]
Primero de todo, lee la documentación que acompaña la distribución de GRUB con el cuidado suficiente. Deberías ser capaz de obtener la mayoría de la información de ese documento. Esta FAQ sólo te da algunas pistas.
GNU GRUB es el sucesor del gran GRUB de Erich. El no podía trabajar en GRUB a causa de otras tareas, así que el mantenedor actual, Gordon Matzigkeit, se hizo cargo de él, y abrió el desarrollo para que todo el mundo pudiera participar.
Técnicamente hablando, GNU GRUB tiene muchas funcionalidades que no estaban el GRUB original. Por ejemplo, GNU GRUB puede ser instalado en un sistema operativo tipo UNIX (p.e. GNU/Linux) vía el shell grub (/sbin/grub), soporta el modo LBA (Logical Block Address) que resuelve el problema de los 1024 cilindros, y TAB completa un nombre de fichero cuando es único. Por supuesto, también se han arreglado muchos bugs, por tanto se recomienda usar GNU GRUB.
Eso depende de tu BIOS y tu sistema operativo. Debes asegurarte de que tu unidad es accesible en modo LBA. Generalmente esto es configurable mediante la configuración de la BIOS. Lee el manual de tu BIOS para más información.
Además, algunos sistemas operativos (p.e. DOS) no pueden acceder a discos grandes, por tanto el problema no es resuelto por ningún tipo de gestor de arranque. Hasta donde yo se, al menos GNU/Hurd y GNU/Linux pueden arrancar desde estos discos.
Sí, puedes, si tu BIOS soporta modo LBA. Aunque en la versión anterior se debía usar una etapa 1 (Stage1) especial, ya no es necesario porque Stage1 ya soporta ambos modos.
mke2fs /dev/fd0
)./sbin/grub --batch --device-map=/dev/null <<EOT device (fd0) /dev/fd0 root (fd0) setup (fd0) quit EOT
Sí, la sintaxis de dispositivos de GRUB es muy diferente, aunque recuerda ligeramente a DOS y Windows 98. GRUB no distingue entre IDE y SCSI, por tanto tus discos duros se representan como (hd%d) (%d es un entero, contando desde cero). Asimismo, tus unidades de disco flexible se representan como (fd%d).
Lo que más confunde a los usuarios es el estilo de numeración. GRUB cuenta las particiones desde cero, mientras que la mayoría de los sistemas operativos cuentan desde uno. Solucionaremos la inconsistencia algún día.
No se por qué, pero los autores de FDISK han asignado el tipo de partición 0x63 a GNU Hurd incorrectamente. Por tanto usa 0x83 si la partición contiene un sistema de ficheros ext2 y usa 0xA5 si el sistema de ficheros es ffs, sea Hurd el propietario de la partición o no. Usaremos 0x63 para el sistema de ficheros GNU Hurd que todavía no ha sido implementado.
Por favor, comprueba la versión de binutils con este comando:
$ ld -vEsto mostrará dos versiones, pero sólo la última es importante. Si la versión es idéntica a la que has instalado, la instalación es correcta.
Entonces, intenta:
$ gcc -Wl,-v 2>&1 | grep "GNU ld"Si esto no es idéntico al resultado de arriba, deberías especificar el directorio donde has instalado binutils al script configure, así:
$ ./configure --with-binutils=/usr/local/bin
Si sigues las instrucciones anteriores, pero GRUB todavía falla, probablemente hay un serio bug en GRUB. Por favor, informa de él al Bug Tracking System.
¿Has visto este mensaje? Nunca damos soporte a versiones no liberadas de gcc.
Pasa una opción mem= a tu kernel Linux, de esta manera:
grub> kernel /vmlinuz mem=128M
Puedes pasar otras opciones de la misma manera. Consulta la documentación de Linux para ver las opciones disponibles.
Usa la orden map, para intercambiar las unidades de la BIOS virtualmente, así:
grub> map (hd0) (hd1) grub> map (hd1) (hd0)
Esto es a menudo considerado un bug, pero en realidad no lo es. Es una funcionalidad.
GRUB es un gestor de arranque y normalmente no se ejecuta bajo ningún sistema operativo, por tanto no sabe donde está montada una partición bajo tu sistema. Por tanto, si tienes una partición /boot e instalas las imágenes de GRUB en el directorio /boot/grub, GRUB encuentra las imágenes en el directorio /grub pero no en /boot/grub. Esto es correcto, ya que no hay garantía de que todos los sistemas operativos monten la misma partición como /boot.
Hay varias soluciones a esta situación.
cd /boot && ln -s . boot
. Esto funciona sólo
si el sistema de ficheros de la partición boot soporta enlaces
simbólicos y GRUB soporta esta funcionalidad.
grub> root (hd0,1) grub> install /grub/stage1 d (hd0) /grub/stage2 p /grub/menu.lst
No existe el concepto de desinstalar en los gestores de arranque, porque si desinstalas un gestor de arranque, sólo queda una máquina inarrancable. Por tanto, todo lo que tienes que hacer es sobreescribirlo con otro gestor de arranque, es decir, instalar otro gestor de arranque sin desinstalar GRUB.
Por ejemplo, si quieres instalar el gestor de arranque para Windows, simplemente ejecuta FDISK /MBR
en Windows. Si quieres instalar LILO (no puedo imaginar por qué querrías hacer una cosa así), ejecuta
/sbin/lilo
desde GNU/Linux.
Si tu disco es mayor de 32 GB probablemente actualizar la BIOS de tu placa base solucionará el problema. Este bug es bien conocido y la mayoría de proveedores deberían ofrecerte versiones corregidas. Por ejemplo, si tienes ASUS-P3BF, actualizando la BIOS a V1007beta1 o posterior puede arreglarlo. Por favor, consulta con el vendedor de tu placa para más información.
Comprueba si has activado el soporte para la extensión INT 13 (LBA). En este caso, desactívalo y comprueba si GRUB puede acceder ahora a tu disco SCSI. Esto dejará claro que tu BIOS SCSI apesta.
Por ahora, sabemos que las siguientes controladoras SCSI no ofrecen un modo LBA que funcione:
En el desafortunado caso de que tengas alguna de estas controladoras SCSI, no puedes usar el modo LBA, aunque GRUB todavía funcionará correctamente con el modo CHS (y por tanto el conocido problema de los 1024 cilindros vuelve de nuevo).
Hay muchas posibilidades, pero es probable que haya algo mal en el fichero de mapa de dispositivos. Echale una ojeada al fichero /boot/grub/device.map. El formato está bien documentado en el manual.
Si hay algo incorrecto, modifica el fichero y vuelve a ejecutar grub-install.
Si todavía tienes problemas o no sabes cómo debes modificarlo, será más sencillo instalar GRUB con un disco de arranque en lugar de con grub-install.
Por favor, pregunta a sus respectivos mantenedores.. Si todos los kernels libres fueran compatibles con Multiboot, el mundo sería una utopía...
Traducción por Isaac Clerencia
[% INCLUDE footer %]