File:  [NetBSD Developer Wiki] / wikisrc / tutorials / how_to_install_netbsd_from_an_usb_memory_stick.mdwn
Revision 1.15: download - view: text, annotated - select for diffs
Thu Oct 21 00:24:39 2021 UTC (3 months ago) by gutteridge
Branches: MAIN
CVS tags: HEAD
Escape literal asterisks in Markdown

    1: This describes how to install NetBSD (i386/amd64) using a USB memory stick instead
    2: of a CD-ROM Drive.
    3: 
    4: **Contents**
    5: 
    6: [[!toc levels=3]]
    7: 
    8: 
    9: # With an downloaded image
   10: From NetBSD 5.1.2 on for the i386 and amd64 ports it is possible to download a USB
   11: memory stick image for installing instead of downloading and transforming a CD image.
   12: 
   13: This section describes in detail how to use this method. If you want to create 
   14: an image yourself, please see below.
   15: 
   16: ## Downloading the installation image
   17: Installation images are available on the [NetBSD
   18: mirrors](http://www.netbsd.org/mirrors/) under the images/ directory, their
   19: filenames match the \*install.img.gz pattern.
   20: 
   21: Note that as of 9.2_STABLE, there are two amd64 images, \*install.img.gz
   22: and \*bios-install.img.gz. The latter is intended for older hardware
   23: which is unable to boot using a hybrid MBR and GPT image.
   24: 
   25: For example if we want to download NetBSD 9.2 for amd64:
   26: 
   27:     # ftp ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-9.2/images/NetBSD-9.2-amd64-install.img.gz
   28: 
   29: ## Copying the installation image to the memory stick
   30: To prepare the memory stick under a Unix system you can just use
   31: [[!template id=man name="dd" section="1"]].
   32: Whenever using dd(1), remember to set the blocksize by specifying the 
   33: <code>bs</code> parameter in order to speed up the write to the installation
   34: media a bit (e.g. 1m).
   35: For example if the memory stick is recognized as `sd0` (**Warning: this will
   36: overwrite all the contents on your memory stick**):
   37: 
   38:     # gunzip NetBSD-9.2-amd64-install.img.gz
   39:     # dd if=NetBSD-9.2-amd64-install.img of=/dev/rsd0d bs=1m
   40: 
   41: In the previous command we have used `rsd0d` in order to refer to the *whole*
   42: `sd0` disk.
   43: 
   44: On Linux the command is similar although it need some minor adjustments, if the
   45: memory stick is recognized as `sdb` (**Warning: this will overwrite all the
   46: contents on your memory stick**):
   47: 
   48:     # gunzip NetBSD-9.2-amd64-install.img.gz
   49:     # dd if=NetBSD-9.2-amd64-install.img of=/dev/sdb bs=1M
   50: 
   51: On Windows you can use [rawrite32](//www.netbsd.org/~martin/rawrite32/) to copy
   52: the image to the stick.
   53: 
   54: ## Installation process
   55: After NetBSD is booted from the memory stick the installation process is
   56: usual (you can find an example in
   57: [The NetBSD Guide](http://www.netbsd.org/docs/guide/en/chap-exinst.html)).
   58: Just pay attention when choosing the installation media: if you want
   59: to install using the installation sets on the memory stick when
   60: [choosing the installation 
   61: media](http://www.netbsd.org/docs/guide/en/chap-exinst.html#exinst-choose-media)
   62: select <code>g: local directory</code> and then clear the *base* (by default it points
   63: to release/).
   64: 
   65: 
   66: # Build your own image
   67: Use <code>build.sh -U release install-image</code>
   68: with your usual build settings from your src directory.
   69: 
   70: Carry on with [the instructions after download](#index2h2) above.
   71: 
   72: 
   73: # Manual method
   74: 
   75: ## Make the memory stick bootable
   76: 
   77: First, install the Master Boot Record (MBR):
   78: 
   79:     # fdisk -i /dev/rsd0d
   80: 
   81: Then, create an fdisk partition for NetBSD:
   82: 
   83:     # fdisk -u /dev/rsd0d
   84:     Disk: /dev/rsd0d
   85:     NetBSD disklabel disk geometry:
   86:     cylinders: 974, heads: 128, sectors/track: 8 (1024 sectors/cylinder)
   87:     total sectors: 997375
   88:     BIOS disk geometry:
   89:     cylinders: 974, heads: 128, sectors/track: 8 (1024 sectors/cylinder)
   90:     total sectors: 997375
   91:     Do you want to change our idea of what BIOS thinks? [n] n
   92:     Partition table:
   93:     0: Primary DOS with 32 bit FAT (sysid 11)
   94:        start 8, size 997367 (487 MB, Cyls 0-973/127/8)
   95:     1: <UNUSED>
   96:     2: <UNUSED>
   97:     3: <UNUSED>
   98:     Bootselector disabled.
   99:     Which partition do you want to change?: [none] 0
  100:     The data for partition 0 is:
  101:     Primary DOS with 32 bit FAT (sysid 11)
  102:        start 8, size 997367 (487 MB, Cyls 0-973/127/8)
  103:     sysid: [0..255 default: 11] 169
  104:     start: [0..974cyl default: 8, 0cyl, 0MB] (RETURN)
  105:     size: [0..974cyl default: 997367, 974cyl, 487MB]
  106:     bootmenu: [] (RETURN)
  107:     Partition table:
  108:     0: NetBSD (sysid 169)
  109:        start 8, size 997367 (487 MB, Cyls 0-973/127/8)
  110:     1: <UNUSED>
  111:     2 :<UNUSED>
  112:     3: <UNUSED>
  113:     Bootselector disabled.
  114:     Which partition do you want to change?: [none] (RETURN)
  115:     We haven't written the MBR back to disk yet.  This is your last chance.
  116:     Partition table:
  117:     0: NetBSD (sysid 169)
  118:        start 8, size 997367 (487 MB, Cyls 0-973/127/8)
  119:     1: <UNUSED>
  120:     2: <UNUSED>
  121:     3: <UNUSED>
  122:     Bootselector disabled.
  123:     Should we write new partition table? [n] y
  124: 
  125: 
  126: 
  127: After that, set the NetBSD partition active (it's partition number 0):
  128: 
  129:     # fdisk -a /dev/rsd0d
  130:     Disk: /dev/rsd0d
  131:     NetBSD disklabel disk geometry:
  132:     cylinders: 974, heads: 128, sectors/track: 8 (1024 sectors/cylinder)
  133:     total sectors: 997375
  134:     BIOS disk geometry:
  135:     cylinders: 974, heads: 128, sectors/track: 8 (1024 sectors/cylinder)
  136:     total sectors: 997375
  137:     Partition table:
  138:     0: NetBSD (sysid 169)
  139:        start 8, size 997367 (487 MB, Cyls 0-973/127/8)
  140:     1: <UNUSED>
  141:     2: <UNUSED>
  142:     3: <UNUSED>
  143:     Bootselector disabled.
  144:     Do you want to change the active partition? [n] y
  145:     Choosing 4 will make no partition active.
  146:     active partition: [0..4 default: 4] 0
  147:     Are you happy with this choice? [n] y
  148: 
  149: Then, create the NetBSD disklabel and add the partitions "a" and "d":
  150: 
  151:     # disklabel -i -I sd0
  152:     partition> a
  153:     Filesystem type [?] [MSDOS]: 4.2BSD
  154:     Start offset ('x' to start after partition 'x') [0.0078125c, 8s, 0.00390625M]: 63
  155:     Partition size ('$' for all remaining) [973.991c, 997367s, 486.996M]: $
  156:     partition> d
  157:     Filesystem type [?] [unused]: (RETURN)
  158:     Start offset ('x' to start after partition 'x') [0c, 0s, 0M]: (RETURN)
  159:     Partition size ('$' for all remaining) [973.999c, 997375s, 487M]: (RETURN)
  160:     partition> W
  161:     Label disk [n]? y
  162:     Label written
  163:     We haven't written the MBR back to disk yet.  This is your last chance.
  164:     Should we write new partition table? [n] y
  165: 
  166: Next, create a new NetBSD filesystem on partition sd0a:
  167: 
  168:     # newfs /dev/rsd0a
  169: 
  170: Now, make the partition sd0a bootable:
  171: 
  172:     # mkdir /stick
  173:     # mount /dev/sd0a /stick
  174:     # cp /usr/mdec/boot /stick
  175:     # umount /stick
  176:     # installboot -v -o timeout=1 /dev/rsd0a /usr/mdec/bootxx_ffsv1
  177: 
  178: 
  179: ## Copy the installation sets to the memory stick
  180: 
  181: For the installation you need an installation kernel and the installation sets. To get them, fetch for example a NetBSD CD-image file from a local FTP-Mirror [1](http://www.netbsd.org/mirrors/#ftp):
  182: 
  183:     $ cd /home/mark
  184:     $ ftp -a ftp://ftp.netbsd.org/pub/NetBSD/iso/4.0.1/i386cd-4.0.1.iso
  185: 
  186: Now mount the CD-image file:
  187: 
  188:     $ su
  189:     # mkdir /image
  190:     # vnconfig -c vnd0 /home/mark/i386cd-4.0.1.iso
  191:     # mount_cd9660 /dev/vnd0d /image
  192: 
  193: And then, mount the memory stick and copy the **install kernel** and **sets**:
  194: 
  195:     # mount /dev/sd0a /stick
  196:     # cp /image/i386/binary/kernel/netbsd-INSTALL.gz /stick/netbsd.gz
  197:     # cp -R /image/i386/binary/sets /stick/sets
  198:     # umount /stick
  199:     # rmdir /stick
  200: 
  201: Now you can unmount the CD-image:
  202: 
  203:     # umount /image
  204:     # vnconfig -u vnd0
  205:     # rmdir /image
  206: 
  207: The memory stick is now ready to boot the NetBSD-Install system. Just reboot and change your BIOS to boot the USB memory stick.
  208: 
  209: ## The installation process
  210: 
  211: If the memory stick boots fine, proceed with the installation as usual, but the selection of the install sets is not quite intuitive:
  212: 
  213:     "Your disk is now ready for installing the kernel and the distributions sets [...]"
  214:     [...]
  215:     Install from
  216:     f: Unmounted fs
  217: 
  218: Press RETURN and the following screen appears:
  219: 
  220:     "Enter the unmounted local device and directory on that device where the distribution is located. [...]"
  221: 
  222: Choose the following options:
  223: 
  224:     a: Device             sd0a
  225:     b: File system        ffs
  226:     c: Base directory       
  227:     d: Set directory      /sets
  228: 
  229: Yes, "c: Base directory" is left empty, because we had copied the distribution .tgz files to the /sets directory on the memory stick (9.)
  230: 
  231: Now continue with the installation as usual. Good luck!
  232: 
  233: 
  234: ## Alternative Method
  235: 
  236: An alternative setup method saves space on the stick at the expense of sysinst automation and is therefore more advanced. This method skips the sysinst tool by copying the sets and the **normal** GENERIC kernel instead of the install kernel.
  237: 
  238: Extract the sets from the hard disk directly on to the memory stick (/mnt):
  239: 
  240:     # tar xvfzp sets.tgz -C /mnt 
  241: 
  242: Extract the kernel to the target root:
  243: 
  244:     # tar xvfzp GENERIC-kernel.tgz -C /mnt
  245: 
  246: All you need to do is now to create a valid /etc/fstab and modify /etc/rc.conf to RC_CONFIGURED=yes on the target root (/mnt) and reboot. All fine tuning can be done when you're logged in. 

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