Mi esquema de partición de disco, visto por Grub, es el siguiente:
hd0,gpt1: EFI system
hd0,gpt2: Linux Swap
hd0,gpt3: Linux Filesystem
hd0,gpt4: FreeBSD UFS`
El proceso de instalación de FreeBSD 11.0-RELEASE fue bien, también intenté hacer chroot y actualizar el sistema, por si acaso. Luego inicié Arch Linux y lo edité /etc/grub/40_custom
, probando varias configuraciones (verEntrada del menú FreeBSD en GRUB en wiki.archlinux.org), y corrió grub-mkconfig -o /boot/grub/grub.cfg
.
(Nota: edité el parámetro "mountfrom" especificando el archivo de desarrollo correcto para el fs raíz, que en mi caso es ada0p4, y omití la entrada "bsd1", configurando solo (hd0,gpt4); de lo contrario, no pude encontrar el dividir.)
Si cargo kfreebsd /boot/loader
y inicio, aparece una pantalla negra.
si cargo
kfreebsd /boot/kernel/kernel
kfreebsd_loadenv /boot/device.hints
set kFreeBSD.vfs.root.mountfrom=ufs:/dev/ada0p4
set kFreeBSD.vfs.root.mountfrom.options=rw
y al arrancar me sale esto:
Mi computadora portátil es una Thinkpad X220 (BIOS estándar actualizada). Versión de grub: 2.02.beta3-4
.
¿Alguna idea de lo que está mal aquí? Por favor deja un comentario si necesitas más información.
#
# DO NOT EDIT THIS FILE
#
# It is automatically generated by grub-mkconfig using templates
# from /etc/grub.d and settings from /etc/default/grub
#
### BEGIN /etc/grub.d/00_header ###
insmod part_gpt
insmod part_msdos
if [ -s $prefix/grubenv ]; then
load_env
fi
if [ "${next_entry}" ] ; then
set default="${next_entry}"
set next_entry=
save_env next_entry
set boot_once=true
else
set default="0"
fi
if [ x"${feature_menuentry_id}" = xy ]; then
menuentry_id_option="--id"
else
menuentry_id_option=""
fi
export menuentry_id_option
if [ "${prev_saved_entry}" ]; then
set saved_entry="${prev_saved_entry}"
save_env saved_entry
set prev_saved_entry=
save_env prev_saved_entry
set boot_once=true
fi
function savedefault {
if [ -z "${boot_once}" ]; then
saved_entry="${chosen}"
save_env saved_entry
fi
}
function load_video {
if [ x$feature_all_video_module = xy ]; then
insmod all_video
else
insmod efi_gop
insmod efi_uga
insmod ieee1275_fb
insmod vbe
insmod vga
insmod video_bochs
insmod video_cirrus
fi
}
if [ x$feature_default_font_path = xy ] ; then
font=unicode
else
insmod part_gpt
insmod ext2
set root='hd0,gpt3'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt3 --hint-efi=hd0,gpt3 --hint-baremetal=ahci0,gpt3 ff637c2e-1e42-4533-9a12-6ac2f6d43c9b
else
search --no-floppy --fs-uuid --set=root ff637c2e-1e42-4533-9a12-6ac2f6d43c9b
fi
font="/usr/share/grub/unicode.pf2"
fi
if loadfont $font ; then
set gfxmode=1024x768
load_video
insmod gfxterm
set locale_dir=$prefix/locale
set lang=en_US
insmod gettext
fi
terminal_input console
terminal_output gfxterm
if [ x$feature_timeout_style = xy ] ; then
set timeout_style=menu
set timeout=5
# Fallback normal timeout code in case the timeout_style feature is
# unavailable.
else
set timeout=5
fi
### END /etc/grub.d/00_header ###
### BEGIN /etc/grub.d/10_linux ###
menuentry 'Arch Linux' --class arch --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-ff637c2e-1e42-4533-9a12-6ac2f6d43c9b' {
load_video
set gfxpayload=keep
insmod gzio
insmod part_gpt
insmod fat
set root='hd0,gpt1'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt1 --hint-efi=hd0,gpt1 --hint-baremetal=ahci0,gpt1 BE35-0EC9
else
search --no-floppy --fs-uuid --set=root BE35-0EC9
fi
echo 'Loading Linux linux ...'
linux /vmlinuz-linux root=UUID=ff637c2e-1e42-4533-9a12-6ac2f6d43c9b rw
echo 'Loading initial ramdisk ...'
initrd /intel-ucode.img /initramfs-linux.img
}
submenu 'Advanced options for Arch Linux' $menuentry_id_option 'gnulinux-advanced-ff637c2e-1e42-4533-9a12-6ac2f6d43c9b' {
menuentry 'Arch Linux, with Linux linux' --class arch --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-linux-advanced-ff637c2e-1e42-4533-9a12-6ac2f6d43c9b' {
load_video
set gfxpayload=keep
insmod gzio
insmod part_gpt
insmod fat
set root='hd0,gpt1'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt1 --hint-efi=hd0,gpt1 --hint-baremetal=ahci0,gpt1 BE35-0EC9
else
search --no-floppy --fs-uuid --set=root BE35-0EC9
fi
echo 'Loading Linux linux ...'
linux /vmlinuz-linux root=UUID=ff637c2e-1e42-4533-9a12-6ac2f6d43c9b rw
echo 'Loading initial ramdisk ...'
initrd /intel-ucode.img /initramfs-linux.img
}
menuentry 'Arch Linux, with Linux linux (fallback initramfs)' --class arch --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-linux-fallback-ff637c2e-1e42-4533-9a12-6ac2f6d43c9b' {
load_video
set gfxpayload=keep
insmod gzio
insmod part_gpt
insmod fat
set root='hd0,gpt1'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt1 --hint-efi=hd0,gpt1 --hint-baremetal=ahci0,gpt1 BE35-0EC9
else
search --no-floppy --fs-uuid --set=root BE35-0EC9
fi
echo 'Loading Linux linux ...'
linux /vmlinuz-linux root=UUID=ff637c2e-1e42-4533-9a12-6ac2f6d43c9b rw
echo 'Loading initial ramdisk ...'
initrd /intel-ucode.img /initramfs-linux-fallback.img
}
}
### END /etc/grub.d/10_linux ###
### BEGIN /etc/grub.d/20_linux_xen ###
### END /etc/grub.d/20_linux_xen ###
### BEGIN /etc/grub.d/30_os-prober ###
### END /etc/grub.d/30_os-prober ###
### BEGIN /etc/grub.d/40_custom ###
# This file provides an easy way to add custom menu entries. Simply type the
# menu entries you want to add after this comment. Be careful not to change
# the 'exec tail' line above.
menuentry 'FreeBSD 11.0' {
insmod ufs2
set root=(hd0,gpt4)
kfreebsd /boot/kernel/kernel
kfreebsd_loadenv /boot/device.hints
set kFreeBSD.vfs.root.mountfrom=ufs:/dev/ada0p4
set kFreeBSD.vfs.root.mountfrom.options=rw
}
### END /etc/grub.d/40_custom ###
### BEGIN /etc/grub.d/41_custom ###
if [ -f ${config_directory}/custom.cfg ]; then
source ${config_directory}/custom.cfg
elif [ -z "${config_directory}" -a -f $prefix/custom.cfg ]; then
source $prefix/custom.cfg;
fi
### END /etc/grub.d/41_custom ###
EDITAR: olvidé mencionar que justo antes de la partición del disco, aparece una advertencia con el siguiente texto
Se sabe que su modelo de Lenovo tiene un error en el BIOS que le impide arrancar desde particiones GPT sin UEFI. ¿Le gustaría que el instalador aplique una solución alternativa?
Como estoy arrancando con UEFI, elijo no aplicarlo (incluso intenté aplicarlo sin éxito).
Respuesta1
Tuve el mismo problema con la misma computadora portátil (lenovo X220 con 2 discos duros, uno para el sistema y otro para datos) y FreeBSD 10. Una solución para mí fue:
- instale el esquema MBR (la compatibilidad con GPT parece no funcionar en esta computadora portátil)
- instalar comida
- instalar FreeBSD en alguna partición
El mío grub.cfg
es simple (y funciona bien durante años):
menuentry 'FreeBSD' {
insmod bsd
insmod ufs2
set root='hd0,msdos3'
kfreebsd /boot/loader
}
Yo simplemente uso FreeBSDgestor de arranquepara iniciar el kernel de FreeBSD (con alguna configuración personalizada en micargador.conf). Si intentas arrancar directamente con kfreebsd
la opción del kernel de FreeBSD, tendrás que configurar muchas cosas.
Por cierto, ¿has leído?documentación oficial de FreeBSD sobre entorno de arranque múltiple con grub2?
Respuesta2
Si bien la mayoría de las guías sugieren usarlo chainloader +1
para carga en cadena, no funcionó para mí.
La siguiente configuración funcionó:
insmod ufs2
set root=(hd0,gpt4)
chainloader /boot/loader.efi