Difference between revisions of "Mboot.c32"

From Syslinux Wiki
Jump to: navigation, search
(Further Reading)
m (Add NetBSD example.)
 
(8 intermediate revisions by 5 users not shown)
Line 1: Line 1:
 
[[Category:Comboot]]
 
[[Category:Comboot]]
[[Category:FixMe]]
+
[[Category:Modules]]
  
= About =  
+
== About ==  
'''mboot.c32''' is a comboot module for Syslinux that loads images using the Multiboot protocol.  A really good use case for this is booting Xen, or any other hypervisor based virtualization pieces that also require an initrd/initramfs.  If your Xen boot doesn't require an initrd then, then it is possible to utilize the existing kernel/append method.
+
'''mboot.c32''' is a Syslinux module that loads images using the [http://www.gnu.org/software/grub/manual/multiboot/multiboot.html Multiboot] specification.  A really good use case for this is booting [http://xensource.com Xen], or any other hypervisor-based virtualization pieces that also require an initrd/initramfs.  If your Xen boot doesn't require an initrd, then it is possible to utilize the existing kernel/append method.
 +
Another use case for mboot.c32 is to boot [http://freebsd.org FreeBSD] ELF kernels with rootfs.
  
= Requirements =  
+
== Requirements ==  
 
* working Syslinux environment
 
* working Syslinux environment
 
* mboot.c32
 
* mboot.c32
  
= Syntax =  
+
== Syntax ==  
 
  mboot.c32 stage1 stage1_args --- stage2 stage2_args --- stage3 stage3_args [ --- stageX stageX_args ]
 
  mboot.c32 stage1 stage1_args --- stage2 stage2_args --- stage3 stage3_args [ --- stageX stageX_args ]
  
The use of '''---''' is required!
+
The use of '''---''' (three dashes) to separate the individual files is required.
  
== Example ==
+
<br/>
 +
 
 +
== Examples ==
 +
 
 +
=== Xen ===
 
Here is an example pxelinux.cfg file for booting [[Xen]]
 
Here is an example pxelinux.cfg file for booting [[Xen]]
 
<pre>
 
<pre>
Line 22: Line 27:
 
</pre>
 
</pre>
  
Here is an example pxelinux.cfg file for booting [[Xen]] over HTTP, when using gpxelinux.0 (needs testing)
+
=== FreeBSD ===
 +
 
 +
[http://www.syslinux.org/archives/2009-April/012341.html http://www.syslinux.org/archives/2009-April/012341.html]
 +
 
 
<pre>
 
<pre>
LABEL xen
+
LABEL freebsd
   KERNEL http://fs.local/pxe/mboot.c32
+
   KERNEL mboot.c32
   APPEND http://fs.local/pxe/xen-3.2.gz dom0_mem=262144 --- http://fs.local/pxe/vmlinuz-2.6.16-2-xen-686 console=tty0 \
+
   APPEND freebsd_kernel kernel_option kernel_option --- freebsd_initial_ramdisk
root=/dev/md1 ro --- http://fs.local/pxe/initrd.img-2.6.16-2-xen-686
+
 
</pre>
 
</pre>
 +
 +
=== NetBSD ===
 +
 +
[http://raw.github.com/Statix/Docs/master/BSD/Netbsd_mulitiboot_with_syslinux.sh http://raw.github.com/Statix/Docs/master/BSD/Netbsd_mulitiboot_with_syslinux.sh]
 +
 +
<pre>
 +
LABEL netbsd
 +
  COM32 mboot.c32
 +
  APPEND /netbsd-INSTALL.gz
 +
</pre>
 +
 +
Other NetBSD kernels, such as "INSTALL" or "TINY_INSTALL",
 +
should also be possible options.

Latest revision as of 19:22, 12 February 2014


About

mboot.c32 is a Syslinux module that loads images using the Multiboot specification. A really good use case for this is booting Xen, or any other hypervisor-based virtualization pieces that also require an initrd/initramfs. If your Xen boot doesn't require an initrd, then it is possible to utilize the existing kernel/append method. Another use case for mboot.c32 is to boot FreeBSD ELF kernels with rootfs.

Requirements

  • working Syslinux environment
  • mboot.c32

Syntax

mboot.c32 stage1 stage1_args --- stage2 stage2_args --- stage3 stage3_args [ --- stageX stageX_args ]

The use of --- (three dashes) to separate the individual files is required.


Examples

Xen

Here is an example pxelinux.cfg file for booting Xen

LABEL xen
  KERNEL mboot.c32
  APPEND xen-3.2.gz dom0_mem=262144 --- vmlinuz-2.6.16-2-xen-686 console=tty0 root=/dev/md1 ro --- initrd.img-2.6.16-2-xen-686

FreeBSD

http://www.syslinux.org/archives/2009-April/012341.html

LABEL freebsd
  KERNEL mboot.c32
  APPEND  freebsd_kernel kernel_option kernel_option --- freebsd_initial_ramdisk 

NetBSD

http://raw.github.com/Statix/Docs/master/BSD/Netbsd_mulitiboot_with_syslinux.sh

LABEL netbsd
  COM32 mboot.c32
  APPEND /netbsd-INSTALL.gz

Other NetBSD kernels, such as "INSTALL" or "TINY_INSTALL", should also be possible options.