File:  [NetBSD Developer Wiki] / wikisrc / tutorials / how_to_install_netbsd_from_an_usb_memory_stick.mdwn
Revision 1.6: download - view: text, annotated - select for diffs
Tue Dec 18 12:07:02 2012 UTC (16 months ago) by wiki
Branches: MAIN
CVS tags: HEAD
web commit by spz: formatting

This describes how to install NetBSD (i386/amd64) using a Memory Stick instead of a CD-ROM Drive.



**Contents**



[[!toc levels=3]]


#With an downloaded image
From NetBSD 5.1.2 on for the i386 and amd64 ports it is possible to download a 
memory stick image for installing instead of downloading and transforming a CD image.

This section describes in detail how to use this method. If you want to create 
an image yourself, please see below.

##Downloading the installation image
Installation images are available on the [NetBSD
mirrors](http://www.netbsd.org/mirrors/) under the images/ directory, their
filenames match the *install.img.gz pattern.

For example if we want to download NetBSD 6.0 for i386:

    # ftp ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-6.0/images/NetBSD-6.0-i386-install.img.gz

##Copying the installation image to the memory stick
To prepare the memory stick under a Unix system you can just use
[[!template id=man name="dd" section="1"]].
For example if the memory stick is recognized as sd0 (**Warning: this will
overwrite all the contents on your memory stick**):

    # gunzip NetBSD-6.0-i386-install.img.gz
    # dd if=NetBSD-6.0-i386-install.img of=/dev/rsd0d

Whenever using dd(1), remember to set the blocksize by specifying the 
<code>bs</code> parameter, at least with a value of 4K, i.e. the call would end 
up with:

    # dd if=NetBSD-6.0-i386-install.img of=/dev/rsd0d bs=4K

##Installation process
After NetBSD is booted from the memory stick the installation process is
usual (you can find an example in
[The NetBSD Guide](http://www.netbsd.org/docs/guide/en/chap-exinst.html)).
Just pay attention when choosing the installation media: if you want
to install using the installation sets on the memory stick when
[choosing the installation 
media](http://www.netbsd.org/docs/guide/en/chap-exinst.html#exinst-choose-media)
select <code>g: local directory</code> and then clear the *base* (by default it points
to release/).


#Build your own image
Use <code>build.sh -U release install-image</code>
with your usual build settings from your src directory.

Carry on with [the instructions after download](#index2h2) above.


#Manual method

##Make the Memory Stick bootable



1 Install the Master Boot Record (MBR):



    # fdisk -i /dev/rsd0d



2 Create an fdisk partition for NetBSD:

<pre><code>

# fdisk -u /dev/rsd0d

Disk: /dev/rsd0d

NetBSD disklabel disk geometry:

cylinders: 974, heads: 128, sectors/track: 8 (1024 sectors/cylinder)

total sectors: 997375

BIOS disk geometry:

cylinders: 974, heads: 128, sectors/track: 8 (1024 sectors/cylinder)

total sectors: 997375

Do you want to change our idea of what BIOS thinks? [n] n

Partition table:

0: Primary DOS with 32 bit FAT (sysid 11)

   start 8, size 997367 (487 MB, Cyls 0-973/127/8)

1: <UNUSED>

2: <UNUSED>

3: <UNUSED>

Bootselector disabled.

Which partition do you want to change?: [none] 0

The data for partition 0 is:

Primary DOS with 32 bit FAT (sysid 11)

   start 8, size 997367 (487 MB, Cyls 0-973/127/8)

sysid: [0..255 default: 11] 169

start: [0..974cyl default: 8, 0cyl, 0MB] (RETURN)

size: [0..974cyl default: 997367, 974cyl, 487MB]

bootmenu: [] (RETURN)

Partition table:

0: NetBSD (sysid 169)

   start 8, size 997367 (487 MB, Cyls 0-973/127/8)

1: <UNUSED>

2 :<UNUSED>

3: <UNUSED>

Bootselector disabled.

Which partition do you want to change?: [none] (RETURN)

We haven't written the MBR back to disk yet.  This is your last chance.

Partition table:

0: NetBSD (sysid 169)

   start 8, size 997367 (487 MB, Cyls 0-973/127/8)

1: <UNUSED>

2: <UNUSED>

3: <UNUSED>

Bootselector disabled.

Should we write new partition table? [n] y

</code></pre>



3 Set the NetBSD partition active (it's partition Number 0):

<pre><code>

# fdisk -a /dev/rsd0d

Disk: /dev/rsd0d

NetBSD disklabel disk geometry:

cylinders: 974, heads: 128, sectors/track: 8 (1024 sectors/cylinder)

total sectors: 997375

BIOS disk geometry:

cylinders: 974, heads: 128, sectors/track: 8 (1024 sectors/cylinder)

total sectors: 997375

Partition table:

0: NetBSD (sysid 169)

   start 8, size 997367 (487 MB, Cyls 0-973/127/8)

1: <UNUSED>

2: <UNUSED>

3: <UNUSED>

Bootselector disabled.

Do you want to change the active partition? [n] y

Choosing 4 will make no partition active.

active partition: [0..4 default: 4] 0

Are you happy with this choice? [n] y

</code></pre>



4 Create the NetBSD disklabel and add the partitions "a" and "d":

<pre><code>

# disklabel -i -I sd0

partition> a

Filesystem type [?] [MSDOS]: 4.2BSD

Start offset ('x' to start after partition 'x') [0.0078125c, 8s, 0.00390625M]: 63

Partition size ('$' for all remaining) [973.991c, 997367s, 486.996M]: $

partition> d

Filesystem type [?] [unused]: (RETURN)

Start offset ('x' to start after partition 'x') [0c, 0s, 0M]: (RETURN)

Partition size ('$' for all remaining) [973.999c, 997375s, 487M]: (RETURN)

partition> W

Label disk [n]? y

Label written

We haven't written the MBR back to disk yet.  This is your last chance.

Should we write new partition table? [n] y

</code></pre>



5 Create a new NetBSD filesystem on partition sd0a:



    # newfs /dev/rsd0a





6 Make the partition sd0a bootable:

<pre><code>

# mkdir /stick

# mount /dev/sd0a /stick

# cp /usr/mdec/boot /stick

# umount /stick

# installboot -v -o timeout=1 /dev/rsd0a /usr/mdec/bootxx_ffsv1

</code></pre>

##Copy the installation sets to the Memory Stick



7 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):



    $ cd /home/mark

    $ ftp -a ftp://ftp.netbsd.org/pub/NetBSD/iso/4.0.1/i386cd-4.0.1.iso





8 Mount the CD-image file:



    $ su

    # mkdir /image

    # vnconfig -c vnd0 /home/mark/i386cd-4.0.1.iso

    # mount_cd9660 /dev/vnd0d /image



9 Mount the Memory Stick and copy the **Install kernel** and **sets**:



    # mount /dev/sd0a /stick

    # cp /image/i386/binary/kernel/netbsd-INSTALL.gz /stick/netbsd.gz

    # cp -R /image/i386/binary/sets /stick/sets

    # umount /stick

    # rmdir /stick



10 Umount the CD-image:



    # umount /image

    # vnconfig -u vnd0

    # rmdir /image



The Memory Stick is now ready to boot the NetBSD-Install system. Just reboot and change your BIOS to boot the USB Memory Stick.

##The installation process



If the Memory Stick boots fine, proceed with the Installation as usual, but the selection of the Install-sets is not quite intuitive:



    "Your disk is now ready for installing the kernel and the distributions sets [...]"

    [...]

    Install from

    f: Unmounted fs





Press RETURN and the following screen appears:



    "Enter the unmounted local device and directory on that device where the distribution is located. [...]"





Choose the following options:



    a: Device             sd0a

    b: File system        ffs

    c: Base directory       

    d: Set directory      /sets



Yes, "c: Base directory" is left empty, because we had copied the distribution .tgz files to the /sets directory on the Memory Stick (9.)



Now continue with the installation as usual. Good luck!

###Alternative Method



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.



Extract the sets from the harddisk directly on to the Memory stick (/mnt).



    # tar xvfzp sets.tgz -C /mnt 



Extract the Kernel to the target root



    # tar xvfzp GENERIC-kernel.tgz -C /mnt



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