Wikidoku zu FreeBSD Installation auf USB Stick

DSBusr

Digilog native
Hallo zusammen,

besteht Interesse an einem Wiki Artikel zum Installieren von FreeBSD auf einen bootbaren USB Stick.
Ähnlich dem Artikel "FreeBSD CD-ISO in USB Stick Image umwandeln" (http://wiki.bsdforen.de/howto/cd_iso_to_usb) mit dem Unterschied, dass es eine native Installation ist?

Mario
 
Zuletzt bearbeitet:
DSBusr: FreeBSD lässt sich ohne Anpassung direkt auf einen USB Stick installiern. Man sollte nur daran denken die Dateisysteme zu labeln.
 
Hallo Crest,
ich habe das bereits gemacht. Aber so richtig einfach fand ich das nicht. Falls jemand mit meiner Doku etwas anfangen kann würde ich das noch einmal aufschreiben.
Mit meinem Geschmiere auf ein paar Blättern Papier ist niemandem geholfen. Da hilft nur tippen... :-)

Grüße
Mario
 
Falls jemand mit meiner Doku etwas anfangen kann würde ich das noch einmal aufschreiben.
Ich fändes es prima, auch wenn ich selbst jetzt nichts Konkretes in der Richtung vorhabe.
Benutzt Du dafür ein transluzentes Dateisystem, d. h. eines im Speicher, das nur, wenn nötig, auf die Hardwareebene durchgereicht wird, um Schreibzugriffe zu minimieren?
 
Benutzt Du dafür ein transluzentes Dateisystem, d. h. eines im Speicher, das nur, wenn nötig, auf die Hardwareebene durchgereicht wird, um Schreibzugriffe zu minimieren?

Nein, ich habe alles auf UFS gemacht. Nur /tmp /var/tmp /var/run und /var/log ist jeweils ein kleines Ramdisk Filesystem.
Logs sind dann nach dem Systemstop weg. Aber bei einem USB Sticksystem ist das (für mich) verschmerzbar.

Grüße
Mario
 
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
Code:
kbdmap
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)
Code:
mount /dev/da0s1a /mnt
Zurück in den Installer springen
Code:
exit
'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
Code:
exit
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
Code:
exit
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.
Code:
vipw

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
 
Zurück
Oben