8.1 memstick installation
freebsd-questions at pp.dyndns.biz
Sun Sep 12 16:52:40 UTC 2010
> 2010/8/23 Morgan Wesström<freebsd-questions at pp.dyndns.biz>:
>> On 2010-08-23 19:34, Friedemann Becker wrote:
>>> I have some questions about an installation on a memorystick.
>>> I have (a few weeks still) a very poor internet connection at home
>>> that's unusable for anything beyond email. I tried some hacking on
>>> musescore (yes I know that it can't work, but that's not my problem
>>> for now). Since I don't want to carry missing ports/packages/other
>>> stuff around on a stick everytime I miss something - which takes one
>>> day each - i would like to have a working system (not installation
>>> image) on usb-stick.
>>> Can i use fdimage with the memorystick installation image on windows,
>>> or any hacked versions of it?
>>> And how do turn this stick in a running system?
>>> Or is there any kind of live-stick-images out there, and if it is, how
>>> to move these on the stick (since windows is missing dd and nero
>>> doesn't like burning sticks :-) )
>>> Thanks in advance
>> Check my old message on how to do this in FreeBSD 7.2. The same
>> instructions should work for 8.1 too, just change the version references.
On 2010-08-26 13:52, Friedemann Becker wrote:
> Thanks a lot,
> this seems to work. Is there any chance to get this into the faq or
> handbook? It's seems way more usefull to me than a live-CD. Best thing
> would be putting it into sysinstall, but maybe this is not reallistic.
> Best regards,
For the archives - below I've updated my installation guide to work with
FreeBSD 8.1-RELEASE, GPT and ZFS if anyone finds it useful.
Make sure your usb memory stick is empty and unpartitioned, then plug it
in and boot from the FreeBSD DVD.
Select your country and keyboard layout.
Enter the Fixit environment and use the live filesystem on your DVD.
Your usb memory stick will most likely be da0 but you can (and should)
check it with "camcontrol devlist" before you continue.
Create a new GPT partitioning scheme:
# gpart create -s gpt da0
Create a 64KiB partition for the zfs bootcode starting at LBA 1920:
# gpart add -b 1920 -s 128 -t freebsd-boot da0
Create a zfs partition spanning the remainder of the usb memory stick
and give it a label we can refer to:
# gpart add -t freebsd-zfs -l FreeBSDonUSB da0
(The starting LBA for the first partition is there to align the
partitions to the flash memory's erase block size. This is particularly
important for the main zfs partition. The main partition above will
start at exactly 1MiB (LBA 2048) which will align it to any erase block
size used today. This alignment is also of great importance if you use
this guide to install FreeBSD to one of the newer harddrives using 4096
Install the protective MBR to LBA 0 and the zfs bootcode to the first
# gpart bootcode -b /dist/boot/pmbr -p /dist/boot/gptzfsboot -i 1 da0
Create /boot/zfs (for zpool.cache) and load the zfs kernel modules:
# mkdir /boot/zfs
# kldload /dist/boot/kernel/opensolaris.ko
# kldload /dist/boot/kernel/zfs.ko
Create a zfs pool and set its bootfs property:
# zpool create zrootusb /dev/gpt/FreeBSDonUSB
# zpool set bootfs=zrootusb zrootusb
Switch to fletcher4 checksums and turn off access time modifications:
# zfs set checksum=fletcher4 zrootusb
# zfs set atime=off zrootusb
Extract at a minimum, base and the generic kernel:
# cd /dist/8.1-RELEASE/base
# DESTDIR=/zrootusb ./install.sh
# cd ../kernels
# DESTDIR=/zrootusb ./install.sh generic
Delete the empty, default kernel directory and move the generic kernel
into its place:
# rmdir /zrootusb/boot/kernel
# mv /zrootusb/boot/GENERIC /zrootusb/boot/kernel
Make sure the zfs modules are loaded at boot:
# echo 'zfs_load="YES"' > /zrootusb/boot/loader.conf
# echo 'vfs.root.mountfrom="zfs:zrootusb"' >> \
Create /etc/rc.conf. Adjust and add to your own needs:
# echo 'ifconfig_DEFAULT="DHCP"' > /zrootusb/etc/rc.conf
# echo 'hostname="freebsd"' >> /zrootusb/etc/rc.conf
# echo 'keymap="swedish.iso"' >> /zrootusb/etc/rc.conf
# echo 'ntpdate_enable="YES"' >> /zrootusb/etc/rc.conf
# echo 'sshd_enable="YES"' >> /zrootusb/etc/rc.conf
# echo 'zfs_enable="YES"' >> /zrootusb/etc/rc.conf
Setup your time zone:
# cp /zrootusb/usr/share/zoneinfo/Europe/Stockholm \
Create an empty fstab to avoid startup warnings:
# touch /zrootusb/etc/fstab
Set the root password in the new environment:
# chroot /zrootusb /bin/sh
# passwd root
# cp /boot/zfs/zpool.cache /zrootusb/boot/zfs
Unmount the filesystem and set its mountpoint:
# zfs unmount -a
# zfs set mountpoint=legacy zrootusb
Exit SYSINSTALL and reboot. You now have a fully functional and bootable
FreeBSD installation on your usb memory stick.
More information about the freebsd-questions