Doku: FreeBSD Installation auf bootfähigem USB Stick
Hallo,
ich nenne das Interesse mal verhalten... ;-)
Vielleicht reicht es ja auch hier als Post im Forum.
FreeBSD 9.0 Installation und Konfiguration auf einem bootfähigen USB-Stick
Voraussetzungen
- Kenntnisse über FreeBSD und die Einstellung des Systems
- Ein USB Stick mit mindestens 2GB Größe, der keine aufhebenswerten Daten enthält (Der Stick wird während der Installation komplett gelöscht!)
- Internetzugang (Diese Doku benutzt pkg_add -r zur Installation von Packages)
So geht’s
Booten der Installations CD oder DVD
'Shell' auswählen
Wer deutsche Tastatur möchte
starten und das entsprechende Layout wählen.
Stick einstecken
Devicenamen des USB Stick notieren. Meistens da0
Den Stick platt machen, damit keine Altlasten stören. Dazu wird der Anfangsbereich überschrieben.
Code:
dd if=/dev/zero of=/dev/da0 count=2
Eine neue Partitionstabelle anlegen und ein BSD-Label erstellen. Die fdisk-Meldung „invalid fdisk partition table“ ist OK, da wir ja den alten gerade per dd geplättet haben.
Code:
fdisk -BI /dev/da0
bsdlabel -B -w da0s1
Ein Filesystem erstellen und mit einem Namen versehen. Das erleichtert später das Mounten, da der Name sich auf verschiedenen Systemen nicht verändert.
Code:
newfs -U -L FBSDUSB /dev/da0s1a
Das neue Filesystem mounten (/mnt wird automatisch das Installationsziel im Installer)
Zurück in den Installer springen
'Install' auswählen und eine FreeBSD Installation durchführen.
Bei den Distribution Sets 'Ports' abwählen (wenn mit dem verwendeten Installationsmedium angeboten)
Partitionierungsfrage mit 'Shell' beantworten.
Die Partitionierung ist schon vorher gemacht, daher direkt wieder
eingeben. (Leider gibt es keine Überspringen Auswahl. Aber Shell und exit geht ja schnell)
Die Installationsfragen mit den persönlichen Einstellungen durcharbeiten (Hostname, root Passwort, etc.)
Die Installationsfrage der Crashdumps mit 'no' beantworten, da sonst im Falle eines Falles viel Platz in /var benutzt wird.
Einen eigenen User anlegen. Auch wenn es ein USB Bootstick ist sollte man nicht ausschließlich als root arbeiten.
Am Ende der Installation Open Shell mit 'yes' beantworten.
Man landet in einem chroot des gerade frisch installierten Systems.
Zum Nutzen der Filesystemnamen (Bitte beachte, was einfache und doppelte Anführungszeichen sind!)
Code:
echo 'geom_label_load=“YES“' >>/boot/loader.conf
Zum Erstellen einer initialen fstab Datei
Code:
echo '/dev/ufs/FBSDUSB / ufs rw,noatime 1 1' >>/etc/fstab
Die Netzwerkeinstellung für alle erkannten Interfaces auf DHCP stellen. (Bitte beachte, was einfache und doppelte Anführungszeichen sind!)
Code:
echo 'ifconfig_DEFAULT="DHCP"' >> /etc/rc.conf
Ein (kleines) Swapfile erstellen und einbinden (Bitte beachte, was einfache und doppelte Anführungszeichen sind!)
Das hilft zwar nicht wirklich bei zu wenig RAM. Aber BSD fühlt sich ganz ohne Swap manchmal schlecht.
Code:
dd if=/dev/zero of=/swap0 count=20000
echo 'swapfile="/swap0"' >> /etc/rc.conf
Zurück in den Installer springen
Reboot auswählen
Sicherstellen, dass auch vom USB Stick gebootet wird (BIOS Einstellungen, F9 oder F12 beim Booten drücken, oder wie auch immer das System es gerne hätte).
Wenn jetzt das neue System vom USB Stick bootet ist der Rest nur noch ein „kleines bisschen“ Finetuning.
Einige Vorschläge
In /etc/motd von Zeile 4 oder 5 bis zum Ende löschen.
In /etc/ttys ab ttyv4 die restlichen auf off stellen.
In /etc/rc.conf die eigenen Vorstellungen einrichten. (Die alte Netzwerkeinstellung des Installationssystems kann entfernt werden, wenn die ifconfig_DEFAULT enthalten ist).
In /etc/fstab einge Ramdrives einrichten
Das heisst aber, dass die dort hinterlegten Informationen nach dem Neustart weg sind! Dafür ist das System etwas flotter.
Code:
md /tmp mfs rw,-s32m 0 0
md /var/tmp mfs rw,-s32m 0 0
md /var/run mfs rw,-s5m 0 0
md /var/log mfs rw,-s16m 0 0
pkg_add nach Geschmack
Zum Beispiel
Code:
pkg_add -r bash screen nmap lsof mc
pkg_add -r vim-lite xauth pkg_search
pkg_add -r rsync curl wget lynx w3m
Bitte nicht die Shell von root in der passwd auf bash umstellen!
Für den Normaluser kann man die Shell auf /usr/local/bin/bash stellen.
Für den root-User
So wird eine Bash nur gestartet wenn die Shell interaktiv läuft und das Bash Executable da ist.
In der .cshrc Datei von Root gibt es unten einen Bereich if ($?prompt) then
Dort diese if Anfrage am Ende vor den endif ergänzen
Code:
if ( -x /usr/local/bin/bash ) then
exec /usr/local/bin/bash
endif
Beispiel für bash Profilkonfigurationsdateien (Im Homedir beim normalen User und eventuell bei root einrichten)
Beispiel für eine .bash_profile
Code:
# ~/.bash_profile: executed by bash(1) for login shells.
. ~/.bashrc
# EOF
Beispiel für eine .bashrc
Code:
#
# ~/.bashrc - Bash configuration file
#
alias vi=vim
# don't put duplicate lines
# in the history
# and use 1000 entries
export HISTCONTROL=ignoredups
export HISTFILESIZE=1000
# Set a fancy prompt for bash shell
case $TERM in
xterm*|rxvt*)
# gruen
export PS1='\[\033[01;32m\]#\[\033[00m\] '
PROMPT_COMMAND='echo -ne "\033]0;${USER}@${HOSTNAME}:${PWD}\007"'
;;
*)
PS1='\[\033[01;32m\]#\[\033[00m\] '
;;
esac
echo "Terminal: $TERM"
echo ""
echo "DISPLAY ist: $DISPLAY"
echo ""
/usr/bin/uptime
echo ""
/usr/bin/who
echo ""
# EOF
Das X11 System einrichten
Code:
pkg_add -r dbus hal xorg fluxbox
Für den Normaluser eine ~/.Xdefaults mit diesem Inhalt anlegen
Code:
! Reload without X11 Restart:
! xrdb -load ~/.Xdefaults
!
! Format
! application.component.subcomponent.subcomponent.attribute: value
!
XTerm*foreground: black
XTerm*background: lightyellow
XTerm*saveLines: 2048
XTerm*font: *-terminus-*-*-*-14-*
xterm*cursorColor: orange
xterm*dynamicColors: true
XTerm.vt100.geometry: 80x40
XTerm*scrollTtyKeypress: true
XTerm*scrollBar: true
XTerm*rightScrollBar: true
!
! EOF
!
Für den Normaluser eine ~/.xinitrc anlegen
setxkbmap setzt die (X11) Tastatur sessionweise auf deutsche Einstellung. Man kann dazu auch hal Policys nehmen. Entsprechende Doku für den hald ist im FreeBSD Handbuch zu finden
Mit ssh-agent kann man später ssh-keys innerhalb von fluxbox per ssh-add ankoppeln. Wenn das kein Thema ist kann der ssh-agent prefix auch wegbleiben.
Code:
/usr/local/bin/setxkbmap de
ssh-agent /usr/local/bin/fluxbox
In /etc/rc.conf hal und dbus Start aufnehmen
Code:
hald_enable="YES"
dbus_enable="YES"
Die Arbeitsprogramme installieren.
Zum Beispiel
Code:
pkg_add -r firefox vlc gimp keepassx epdfview
System neu starten oder hald und dbus per rc.d Script als Root starten.
Als Arbeitsuser einloggen
X11 kann man jetzt per startx laufen lassen und landet im fluxbox Windowmanager.
Wenn X nicht starten kann muss eventuell eine /etc/X11/xorg.conf manuell konfiguriert werden.
Das liegt sehr stark an der verwendeten Hardware.
Das ist aber nicht Fokus dieses Howtos. Bitte schau ins FreeBSD Handbuch.
Das System mit FreeBSD 9.0, einigen CLI Packages und X11 mit Fluxbox benötigt ungefähr 2GB Platz auf dem Stick.
Die installierten Tools haben im Fluxbox noch keine Menüeinträge. Bei Bedarf die ~/.fluxbox/menu anpassen.
Viele Spass mit dem neuen USB Stick System..
Grüße
Mario