help-grub
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Grub update/change to allow Ubuntu 12.04 to recognize PC-BSD 10.1.2


From: Alfred Urrutia
Subject: Grub update/change to allow Ubuntu 12.04 to recognize PC-BSD 10.1.2
Date: Fri, 2 Oct 2015 09:42:01 +0000 (UTC)

I have an issue with whatever version of Grub is running on my Ubuntu 12.04 install.  I have a desktop computer with (now) 5 hard drives.  One drive has Ubuntu on it, another drive has Windows 7, 2 other hard drives are for storage, the 5th hard drive was supposed to have 2 partitions, one for more Linux storage, the other for PC-BSD 10.1.2 and this is where I have the issue.

I installed PC-BSD on the hard drive fine, was able to change my motherboard's BIOS so that I could boot into it and start setting it up the way I want.  So I know Grub, at least the version on that 5th drive, can deal with ZFS pools and PC-BSD.  I've read that PC-BSD has a custom version of Grub so that it can deal with ZFS.  The issue is that I've tried all kinds of tricks and advice that I've found online to modify 40_custom in /etc/grub.d/ in order for Ubuntu's Grub to recognize and boot into PC-BSD but nothing seems to work.  What is the Ubuntu 12.04 version of Grub missing that would allow it to recognize PC-BSD?  I've tried something like this -

menuentry "PC-BSD 9.1" {
set root='(hd0,2)'
chainloader +1
}
 
but it doesn't find anything (I changed root to equal (hd2,1) and (hd2,2), neither worked.  I also tried something much more precise and convoluted like this -

menuentry "PC-BSD 9.1" {

insmod zfs
search -s -l tank0
kfreebsd /freebsd@/boot/kernel/kernel
kfreebsd_module_elf /freebsd@/boot/kernel/opensolaris.ko
kfreebsd_module_elf /freebsd@/boot/kernel/zfs.ko
kfreebsd_module /freebsd@/boot/zfs/zpool.cache type=/boot/zfs/zpool.cache
set kFreeBSD.vfs.root.mountfrom=zfs:tank0/freebsd
}

This time Grub found something but complained about errors, didn't know what tank0 was, couldn't load ELF.  I then read somewhere that I should try something like this -

menuentry "Normal Bootup" {
insmod zfs
search --no-floppy -s -l tank
kfreebsd /ROOT/default/@/boot/kernel/kernel
kfreebsd_loadenv /ROOT/default@/boot/device.hints
kfreebsd_module /ROOT/default/@/boot/zfs/zpool.cache type=/boot/zfs/zpool.cache
set kFreeBSD.vfs.root.mountfrom=zfs:tank/ROOT/default
kfreebsd_module_elf /ROOT/default/@/boot/modules/nvidia.ko
kfreebsd_module_elf /ROOT/default/@/boot/kernel/crypto.ko
kfreebsd_module_elf /ROOT/default/@/boot/kernel/aesni.ko
kfreebsd_module_elf /ROOT/default/@/boot/kernel/geom_eli.ko
kfreebsd_module_elf /ROOT/default/@/boot/kernel/opensolaris.ko
kfreebsd_module_elf /ROOT/default/@/boot/kernel/zfs.ko
kfreebsd_module_elf /ROOT/default/@/boot/kernel/tmpfs.ko
kfreebsd_module_elf /ROOT/default/@/boot/kernel/linux.ko
kfreebsd_module_elf /ROOT/default/@/boot/kernel/geom_journal.ko
kfreebsd_module_elf /ROOT/default/@/boot/kernel/geom_mirror.ko
kfreebsd_module_elf /ROOT/default/@/boot/kernel/ums.ko
set kFreeBSD.bootfile="kernel"
set kFreeBSD.kernel="kernel"
set kFreeBSD.kernel_options=""
set kFreeBSD.kernelname="/boot/kernel/kernel"
set kFreeBSD.module_path="/boot/kernel;/boot/modules"
set kFreeBSD.vfs.zfs.arc_max="1024M"
set kFreeBSD.kern.ipc.shmseg="1024"
set kFreeBSD.kern.ipc.shmmni="1024"
set kFreeBSD.kern.maxproc="10000"
set kFreeBSD.legal.intel_ipw.license_ack="1"
set kFreeBSD.legal.intel_iwi.license_ack="1"
set kFreeBSD.legal.realtek.license_ack="1"
set kFreeBSD.hint.acpi_throttle.0.disabled="1"
set kFreeBSD.machdep.disable_mtrrs="1"
set kFreeBSD.kern.geom.eli.visible_passphrase="2"
set kFreeBSD.kern.cam.scsi_delay="500"
set kFreeBSD.hw.memtest.tests="0"
set kFreeBSD.kern.vty="vt"
set kFreeBSD.kern.geom.label.gptid.enable="0"
set kFreeBSD.kern.geom.label.disk_ident.enable="0"
set kFreeBSD.kern.geom.label.ufsid.enable="0"
set kFreeBSD.hw.pci.do_power_nodriver="3"
set kFreeBSD.net.inet.ip.fw.default_to_accept="1"
set kFreeBSD.net.inet.ip.fw.
set kFreeBSD.net.graph.maxdata="65536"
set kFreeBSD.linux_common_load="YES"
set kFreeBSD.grub.platform="$grub_platform"
set kFreeBSD.kern.geom.eli.passphrase="$pass"
}

which I was told to get by booting directly into PC-BSD, grabbing whatever was in /boot/grub/grub.cfg and then cramming it into 40_custom in Ubuntu's Grub.  This didn't help, has the same kinds of errors as before (doesn't know what tank0 is, a bunch of complaints about needing to load the kernel first, can't load ELF).

I'm getting the idea that the Grub that is on the hard drive with Ubuntu on it isn't recent enough or custom enough to handle whatever PC-BSD considers normal.  So, my question is, is there a way for me to replace the normal Grub I have that came with Ubuntu 12.04 with the custom PC-BSD Grub?  What steps would I have to go through to get that custom version onto the hard drive with Ubuntu such that it will still allow me to boot into Ubuntu (and Windows 7) but also actually handle booting into PC-BSD as well?  I've tried asking around everywhere but nobody knows, the only useful suggestion is to permanently change the boot order in BIOS so that I'm starting out on the PC-BSD hard drive.  I don't want to do that, I shouldn't *have* to do that, I should be able to have a version of Grub that likes ZFS and PC-BSD and can boot into it.  Can anyone help me out with this?

Thanks in advance.





Alfred.

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
"Karate?  The Dane Cook of martial arts?"
                                                                          - Archer

 Alfred Urrutia address@hidden

reply via email to

[Prev in Thread] Current Thread [Next in Thread]