File:  [NetBSD Developer Wiki] / wikisrc / guide / inst-media.mdwn
Revision 1.2: download - view: text, annotated - select for diffs
Thu Mar 21 11:11:21 2013 UTC (7 years, 7 months ago) by jdf
Branches: MAIN
CVS tags: HEAD
Add TOCs to all chapters.

    1: **Contents**
    2: 
    3: [[!toc levels=3]]
    4: 
    5: # Building NetBSD installation media
    6: 
    7: ## Creating custom install or boot floppies for your architecture e.g. i386
    8: 
    9: Sometimes you may want to create your own boot or install floppies for i386
   10: instead of using the precompiled ones, or tailor the ones built by the NetBSD
   11: build system. This section outlines the steps to do so.
   12: 
   13: The overall idea is to have a filesystem with some tools (sysinst, ls,
   14: whatever), and embed this filesystem as some sort of ramdisk into a NetBSD
   15: kernel. The kernel needs to include the `md` pseudo device to be able to hold a
   16: ramdisk. The kernel with the ramdisk can then be put on removable media or made
   17: available via the net (using NFS or TFTP).
   18: 
   19: To perform the following steps, you need to be running a kernel with the `vnd`
   20: pseudo device enabled (this is the default for a GENERIC kernel).
   21: 
   22:  1. First, you must create a valid kernel to put on your floppies, e.g.
   23:     INSTALL. This kernel must include the `md` pseudo device, which allows
   24:     embedding a ramdisk. See [[Compiling the kernel|guide/kernel]] for kernel
   25: 	building instructions.
   26: 
   27:  2. The next step is to create the ramdisk that gets embedded into the kernel.
   28:     The ramdisk contains a filesystem with whatever tools are needed, usually
   29: 	[init(8)](http://netbsd.gw.com/cgi-bin/man-cgi?init+8+NetBSD-5.0.1+i386) and
   30:     some tools like sysinst,
   31: 	[ls(1)](http://netbsd.gw.com/cgi-bin/man-cgi?ls+1+NetBSD-5.0.1+i386), etc.
   32: 	To create the standard ramdisk, run `make` in the
   33:     `src/distrib/i386/ramdisks/ramdisk-big` directory (for NetBSD 3.x:
   34:     `src/distrib/i386/floppies/ramdisk-big`).
   35: 
   36: 	This will create the `ramdisk.fs` file in the directory. If you want to
   37: 	customize the contents of the filesystem, customize the `list` file.
   38: 
   39:  3. Now, the ramdisk gets inserted into the kernel, producing a new kernel which
   40:     includes the ramdisk, all in one file. To do so, change into the
   41:     `src/distrib/i386/instkernel` directory (for NetBSD 3.x:
   42:     `src/distrib/i386/floppies/instkernel`) and run `make`.
   43: 
   44:  4. The next step is to make one or more floppy images, depending on the size of
   45:     the kernel (including the ramdisk). This is done by changing into
   46:     `/usr/src/distrib/i386/floppies/bootfloppy-big`, and running `make` again.
   47: 
   48: 	This will create one or two (depending on the size of kernel) files named
   49: 	`boot1.fs` and `boot2.fs`
   50: 
   51:  5. Last, transfer these files to the floppies with the commands
   52: 
   53:         # dd if=boot1.fs of=/dev/fd0a bs=36b
   54:         # dd if=boot2.fs of=/dev/fd0a bs=36b
   55: 
   56:  6. Put the first floppy in the drive and power on!
   57: 
   58: ## Creating a custom install or boot CD with build.sh
   59: 
   60: Creating custom install or boot CDs is easy with `build.sh`. The NetBSD base
   61: system includes the
   62: [makefs(8)](http://netbsd.gw.com/cgi-bin/man-cgi?makefs+8+NetBSD-current)
   63: tool for creating filesystems. This tool is used to create iso-images. Creating
   64: iso-images includes these tasks:
   65: 
   66:  1. Release build
   67: 
   68:         #./build.sh release
   69: 
   70:  2. CD-ROM iso-image build
   71: 
   72:         #./build.sh iso-image
   73: 
   74: The `build.sh` iso-image command will build a CD-ROM image in
   75: `RELEASEDIR/MACHINE/installation`
   76: 
   77: **Warning**: For now not all architectures are supported. The mac/68k ports
   78: doesn't boot for now.
   79: 

CVSweb for NetBSD wikisrc <wikimaster@NetBSD.org> software: FreeBSD-CVSweb