From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from list by lists.gnu.org with archive (Exim 4.71) id 1R4YfE-0001Ed-NP for mharc-grub-devel@gnu.org; Fri, 16 Sep 2011 09:41:08 -0400 Received: from eggs.gnu.org ([140.186.70.92]:60068) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1R4Jxc-0003Qn-Tz for grub-devel@gnu.org; Thu, 15 Sep 2011 17:59:09 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1R4Jxb-0001CF-Km for grub-devel@gnu.org; Thu, 15 Sep 2011 17:59:08 -0400 Received: from mx06.lb01.inode.at ([62.99.145.6]:8153 helo=mx.inode.at) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1R4Jxb-0001Aa-6O for grub-devel@gnu.org; Thu, 15 Sep 2011 17:59:07 -0400 Received: from [85.127.249.232] (port=7152 helo=[192.168.178.3]) by smartmx-06.inode.at with esmtp (Exim 4.69) (envelope-from ) id 1R4JxV-0007mv-Eh; Thu, 15 Sep 2011 23:59:01 +0200 Message-ID: <4E727524.2010206@libera.cc> Date: Thu, 15 Sep 2011 23:59:00 +0200 From: Emmanuel Kasper User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1.16) Gecko/20110818 Icedove/3.0.11 MIME-Version: 1.0 To: grub-devel@gnu.org Subject: How to boot NetBSD and FreeBSD with grub: missing bits for the GRUB manual X-Enigmail-Version: 1.0.1 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6, seldom 2.4 (older, 4) X-Received-From: 62.99.145.6 X-Mailman-Approved-At: Fri, 16 Sep 2011 09:41:07 -0400 Cc: =?ISO-8859-1?Q?Gr=E9goire_Sutre?= X-BeenThere: grub-devel@gnu.org X-Mailman-Version: 2.1.14 Precedence: list Reply-To: The development of GNU GRUB List-Id: The development of GNU GRUB List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 15 Sep 2011 21:59:10 -0000 Hello I found out that altough GRUB supports a rich set of options for the kfreebsd and knetbsd commands, the GRUB manual was lacking reference on how to use them. I propose the following text to be added in the section 4.2 Some caveats on OS-specific issues. Plus I noticed a FIXME in 4.1.1 How to boot an OS directly with GRUB so I propose an addition for that part (see at end ) I tried to work the FreeBSD part in a OS-agnotic way, so it can apply to FreeBSD and GNU/kFreeBSD If this text looks fine, I can re-send in the form of an info patch ( did not want to learn yet another markup language before getting feedback ... ) I used the following thread to get the needed information before verifying on my NetBSD and GNU/kFreeBSD machines: http://forums.freebsd.org/showthread.php?t=5918 Manu FreeBSD GRUB can boot a FreeBSD kernel by using the 'kfreebsd' command. The procedure would look like this: 1. Set the partition where resides the FreeBSD kernel: 'set root=(hd0,1,a)' 2. Load the kernel 'kfreebsd /boot/kernel/kernel' 3. Load the kernel boot information 'kfreebsd_loadenv /boot/device.hints' 4. Set the root devicepath 'set kFreeBSD.vfs.root.mountfrom=ufs:/dev/ad4s1a' 5. Set any filesystem options to pass vfs.root.mountfrom.options=rw 6. Finally, run the command 'boot' (see boot). If you want to use the FreeBSD /boot/loader third-stage bootstrap program, you would can do the following: 1. Set the partition where resides the /boot/loader program: 'set root=(hd0,1,a)' 2. Load /boot/loader 'kfreebsd /boot/kernel/kernel' 3. Finally, run the command 'boot' (see boot) The list of all available options for the 'kfreebsd' command can be seen by running 'kfreebsd --help' from the GRUB prompt. NetBSD GRUB can boot a NetBSD kernel by using the 'knetbsd' command. Procedure is as follows: 1. Set the partition where resides the NetBSD kernel. If NetBSD is installed on the first partition of your first hard disk, you would need: 'set root=(hd0,1,a)' 2. Load the kernel and specify the root devicepath: 'knetbsd /netbsd --root=wd0a' 3. Finally, run the command 'boot' ( see boot) The list of all available options for the 'kfreebsd' command can be seen by running 'kfreebsd --help' from the GRUB prompt. Multiboot (addition to 4.1.1 ) Booting a multiboot compliant kernel, requires loading the kernel with the 'multiboot' command, and then executing it with the 'boot' command. An example of very simple but fully compliant kernel, is the Grub Invaders game, which you can start this way: 1. Load Grub Invaders with the command 'multiboot' 'multiboot /boot/invaders.exe' 2. Run the command 'boot' ( see boot)