This shows you the differences between two versions of the page.
Next revision | Previous revision | ||
usersguide:bootingovernetworkusingpxe [2014/11/11 14:52] 127.0.0.1 external edit |
usersguide:bootingovernetworkusingpxe [2016/03/22 18:27] jeanbaptisteboric [MINIX 3 files] Correct script name |
||
---|---|---|---|
Line 1: | Line 1: | ||
+ | ====== Booting over network using PXE ====== | ||
+ | |||
+ | It is possible to boot MINIX 3 over the network. This makes use of the [[https://en.wikipedia.org/wiki/Preboot_Execution_Environment|PXE protocol]] supported in some network cards. The network card loads its boot files over network and boot the PC from these files. | ||
+ | |||
+ | PXE booting involves two machines : | ||
+ | * The **server**, which has a DHCP and TFTP server ; | ||
+ | * The **client**, which is set to boot over PXE. | ||
+ | |||
+ | This document will explain how to populate the TFTP root directory for booting MINIX 3. | ||
+ | |||
+ | <div round info> | ||
+ | ** Setting up a PXE server** | ||
+ | |||
+ | Setting up a DHCP/TFTP server is outside the scope of this document. Check your operating system's documentation to learn how to set up a PXE server. | ||
+ | </div> | ||
+ | |||
+ | ===== MINIX 3 files ===== | ||
+ | |||
+ | The boot-to-ramdisk image is suitable for booting over PXE. [[developersguide:crosscompiling|To generate the image]], run ''releasetools/x86_ramimage.sh''. The kernel and modules will be placed into ''../obj.i386/work'', move them to the TFTP root directory. | ||
+ | |||
+ | ===== Bootloader ===== | ||
+ | |||
+ | As with a hard drive installation, a boot loader is required to bootstrap the system. | ||
+ | |||
+ | ==== PXELINUX ==== | ||
+ | |||
+ | //Main documentation : [[http://www.syslinux.org/wiki/index.php?title=PXELINUX]]// | ||
+ | |||
+ | Download the latest release of SYSLINUX at [[https://www.kernel.org/pub/linux/utils/boot/syslinux/]]. Extract the following files and put them in the TFTP root directory : | ||
+ | |||
+ | * ''bios/com32/elflink/ldlinux/ldlinux.c32'' | ||
+ | * ''bios/com32/lib/libcom32.c32'' | ||
+ | * ''bios/com32/libutil/libutil.c32'' | ||
+ | * ''bios/com32/mboot/mboot.c32'' | ||
+ | * ''bios/com32/menu/menu.c32'' | ||
+ | * ''bios/core/pxelinux.0'' | ||
+ | |||
+ | Create a directory named ''pxelinux.cfg/'' in the TFTP root directory. Inside it, create a file named ''default'' with the following contents : | ||
+ | |||
+ | <file> | ||
+ | DEFAULT menu.c32 | ||
+ | TIMEOUT 100 | ||
+ | |||
+ | LABEL x86 | ||
+ | MENU LABEL MINIX 3 | ||
+ | KERNEL mboot.c32 | ||
+ | APPEND kernel bootramdisk=1 --- mod01_ds --- mod02_rs --- mod03_pm --- mod04_sched --- mod05_vfs --- mod06_memory --- mod07_tty --- mod08_mib --- mod09_vm --- mod10_pfs --- mod11_mfs --- mod12_init | ||
+ | </file> | ||
+ | |||
+ | ====== Booting directly with QEMU ====== | ||
+ | |||
+ | You can test the TFTP root directory with QEMU without setting up a DHCP/TFTP server first. To boot with QEMU, ''cd'' to the TFTP root directory and use the following command : | ||
+ | |||
+ | <code> | ||
+ | qemu-system-i386 --enable-kvm -m 1G -tftp . -bootp pxelinux.0 -boot n | ||
+ | </code> | ||