BlogBlog ÜbersichtjailscriptportsoptFreeBSDLinksThermoskanne

Live-CD's mit QEMU emulieren

Falls man eine Live-CD testen möchte, braucht man nicht das ISO-Image runterladen, eine CD brennen, den Rechner neu starten - denn dafür gibt es QEMU.

QEMU kann ganz einfach aus den Ports installiert werden:

# cd /usr/ports/emulators/qemu && make install clean

Um die Geschwindigkeit von QEMU merkbar zu beschleunigen, kann man das QEMU Kernel Modul installieren. Zur Installation werden die Kernel Sourcen benötigt.

# cd /usr/ports/emulators/kqemu-kmod && make install clean

Danach kann das Kernel Modul geladen werden:

# kldload kqemu.ko

Wird QEMU öfter gebraucht, so kann man sich das Kernel Modul auch beim Starten laden, indem man folgende Zeile in der /boot/loader.conf hinzufügt:

kqemu_load="YES"

Wichtig: Wird ein neuer Kernel installiert, so muss man das QEMU Kernel Modul aus dem alten Kernel kopieren, falls man eine gleiche Kernelversion benutzt:

# cp /boot/kernel.old/kqemu.ko /boot/kernel/

Benutzt man einen anderen Kernel, so muss der kqemu-kmod Port neu gebaut werden.

Danach die gewünschte Live-CD herunterladen und diese mit folgendem Befehl starten:

# qemu -cdrom <Pfad zum ISO Image>

Möchte man dem Live-CD System 512MB Arbeitsspeicher zur Verfügung stellen, das Tastaturlayout auf Schweizerdeutsch einstellen und erlauben, dass die Live-CD auch Geräusche von sich geben kann, so verwendet man folgenden Befehl:

# qemu -m 512 -k de-ch -enable-audio -cdrom <Pfad zum ISO Image>

FreeBSD 6.0, auf dem ReactOS 0.2.8 und Knoppix 4.0.2 mit Hilfe von QEMU emuliert werden.

Mit QEMU sind noch ganz viele interessante Sachen möglich, so kann man zum Beispiel ein Windows in einem FreeBSD installieren: http://www.bsdbox.de/?page_id=18 und dieses ins eigene Netzwerk integrieren: http://www.bsdbox.de/?page_id=25

Weitere Informationen zu QEMU unter http://fabrice.bellard.free.fr/qemu/

Comments (1)  Permalink

Manpages

Da ich oft auf die Manpages verweise, möchte ich den letzten Befehl der Woche dieses Jahres den Manpages widmen. Die Manpages sind in 9 verschiedene Sections gegliedert.

Section 1: General Commands
Section 2: System Calls
Section 3: Library Functions
Section 4: Kernel Interfaces
Section 5: File Formats
Section 6: Games
Section 7: Miscellaneous Information
Section 8: System Manager's Manual
Section 9: Kernel Developer's Manual

Jede Section besitzt eine Einleitung. Diese kann mit folgendem Befehl aufgerufen werden:

# man <Sectionnummer> intro

Eine Manpage ruft man grundsätzlich wie folgt auf, wobei die Sectionnummer optional ist:

# man <Sectionnummer> <Name der Manpage>

Wählt man eine Manpage, die in verschiedenen Sections vorkommt, jedoch ohne eine Sectionnummer anzugeben, so wird nur die erste gefundene Manpage angezeigt. Gibt man zum Beispiel nur man intro ein, kriegt man nur die Intro-Manpage der ersten Section. Mit der Option -a werden alle gefundenen Seiten nacheinander dargestellt:

# man -a intro

Wird auf eine Manpage verwiesen, so verwendet man üblicherweise folgende Schreibweise: Befehl(Section). fortune(6) bedeutet dementsprechen, dass die Manpage von fortune sich in Section 6 befindet.

Die Manpages sind auch im Internet verfügbar: http://www.freebsd.org/cgi/man.cgi

Folgende Manpages sind immer mal einen Blick wert:

  • rc.conf(5) Übersicht und Beschreibung der rc.conf Systemvariablen
  • make.conf(5) Übersicht und Beschreibung der make.conf Variablen
  • login.conf(5) Übersicht und Beschreibung der login.conf Variablen
  • hier(7) Aufbau der FreeBSD Verzeichnisstruktur
  • tuning(7) Tipps zur Leistungssteigerung eines FreeBSD Systemes
  • ports(7) Hilfe zu den Ports und Beschreibung aller make targets für den Portbaum
  • security(7) Tipps zum Absichern eines FreeBSD Systemes
  • firewall(7) Wie man eine einfache Firewall erstellt
  • build(7) Beschreibung der make targets um ein System zu aktualisieren/erstellen
  • style(9) Richtlinien für Kernelcode

Mehr Informationen zu man natürlich in der Manpage: man(1)

Related Entries:
Gespeicherte Optionen nach OptionsNG konvertieren
Ports-Subversion-Repository spiegeln
sysinstall-Ersatz für neuere FreeBSD-Versionen
Alte FreeBSD-Port Patchdateien aufsplitten
FreeBSD-Portbaum auf Fehler überprüfen
 Permalink

Systemstatistiken auf der Konsole mit systat

Im FreeBSD Basissytem gibt es ein Programm, mit dem man sich ganz einfach Systeminformationen und Statistiken auf der Konsole ausgeben lassen kann.
# systat -<Option>
Folgende Optionen sind möglich:
pigs: Zeigt den Prozess, der den grössten Anteil der CPU konsumiert
icmp: Zeigt Statistiken über empfangene und gesendete ICMP Meldungen
ip: Zeigt Statistiken über empfangene und gesendete IP Pakete
tcp: Zeigt Statistiken über empfangene und gesendete TCP Pakete
iostat: Zeigt Informationen zur CPU Auslastung und IO Aktivitäten der Festplatten
swap: Zeigt Informationen über die Benutzung des Swap Bereiches
vmstat: Zeigt Informationen zur virtuellen Speicherverwaltung
netstat: Zeigt Informationen zu den aktuellen Netzwerkverbindungen
ifstat: Zeigt Informationen zu den Netzwerkschnittstellen

Innerhalb von systat kann auch mit :<Option> die Ansicht gewechselt werden. Mit :q verlässt man systat. Mehr Informationen dazu gibt es wie immer in der Manpage zu systat.
Related Entries:
Gespeicherte Optionen nach OptionsNG konvertieren
Ports-Subversion-Repository spiegeln
sysinstall-Ersatz für neuere FreeBSD-Versionen
Alte FreeBSD-Port Patchdateien aufsplitten
FreeBSD-Portbaum auf Fehler überprüfen
 Permalink

FreeBSD Ports richtig deinstallieren

Wenn man einen Port auf FreeBSD deinstallieren möchte, ist es empfehlenswert, diesen mittels pkg_deinstall oder pkg_delete zu entfernen, da so dieser nur entfernt wird, falls keine anderen Programme mehr von ihm abhängig sind. Ein make deinstall im Portverzeichnis achtet nicht auf Abhängigkeiten, was zu Problemen führen kann.

pkg_delete befindet sich bereits in Basissystem. Möchte man einen Port deinstallieren und gleichzeitig auch alle Ports, von denen nur der zu deinstallierende Port abhängig ist, lohnt es sich sysutlis/portupgrade zu installieren. Darin befindet sich pkg_deinstall. Damit können Ports auch aufwärts rekursiv deinstalliert werden. Um also einen Port samt allen nur von ihm gebrauchten Abhängigkeiten zu deinstallieren verwende ich folgenden Befehl:

# pkg_deinstall -R -d -v <Portname>

Die Option -d entfernt alle leeren Verzeichnisse des Portes und mit -v kriegt man ein bisschen mehr Informationen.

Related Entries:
Gespeicherte Optionen nach OptionsNG konvertieren
Ports-Subversion-Repository spiegeln
sysinstall-Ersatz für neuere FreeBSD-Versionen
Alte FreeBSD-Port Patchdateien aufsplitten
FreeBSD-Portbaum auf Fehler überprüfen
Comments (2)  Permalink

Jobkontrolle in der Shell mit bg, fg und jobs

Mit Ctrl + z wird ein in der Shell aktiver Prozess in den Hintergund verlagert. Dabei wird dieser gestoppt. Mit bg wird der gestoppte Prozess im Hintergrund wieder gestartet. jobs listet alle aktiven und gestoppten Prozesse im Hintergrund auf. Um einen Hintergrundprozess wieder in den Vordergrund zu holen, verwendet man fg.

Jeder Hintergrundprozess kriegt eine Jobnummer, damit können mehrere Prozesse in den Hintergrund verschoben werden und diese dann explizit wieder gestartet oder zurück in den Vordergrund gebracht werden. jobs listet zu jedem Hintergrundprozess die jeweilige Jobnummer auf. So kann z.B. mit fg <Jobnummer> der Hintergrundprozess mit dieser Jobnummer wieder in den Vordergrund gebracht werden.

 Permalink

SMB Freigaben einfach mounten mit Sharity-Light

Um eine SMB Freigabe einfach zu mounten gibt es Sharity Light:

/usr/local/sbin/shlight //<Server>/<Service> <Mountpunkt> -U <Benutzer> -C -u <UID> -g <GID>

Danach muss noch das Passwort eingegeben werden und schon ist das Verzeichnis eingebunden.

-C bedeutet, dass das Passwort nicht in Grossbuchstaben konvertiert wird.

-u und -g weisen den eingebundenen Daten die User- und Group ID zu.

Um das eingebundene Verzeichnis wieder zu lösen, einfach folgenden Befehl benutzen:

/usr/local/sbin/ushlight <Mountpunkt>

Sharity Light befindet sich auf Open- und FreeBSD im Port net/sharity-light.

 Permalink

vi Kurzreferenz

Ich werde öfters gefragt, wieso ich den vi als Editor brauche. Ganz einfach, der kann viel und man editiert so schnell, wie mit keinem anderen Editor. Deshalb möchte ich den Befehl der Woche dem vi widmen.

Bewegen


h, j, k, l links, runter, hinauf, rechts
Pfeiltasten Hoffentlich selbsterklärend
w, b
Springt jeweils ein Wort vorwärts/rückwärts
E
Springt ans Ende des aktuellen Wortes
0, $
Springt zum Anfang/Ende der Zeile
H, M, L
Springt an den Anfang, in die Mitte oder ans Ende des Fensters
G
Springt ans Ende der Datei
1G
Springt an den Anfang der Datei
Suchen
/<Wort>[Enter] Sucht vorwärts nach <Wort> und setzt den Cursor auf den ersten Buchstaben
?<Wort>[Enter]
Sucht rückwärts nach <Wort> und setzt den Cursor auf den ersten Buchstaben
n, N
Sucht nach <Wort> vorwärts, rückwärts fortsetzen
Schreiben

i, a
Fügt den nachfolgenden Text vor/nach dem Buchstaben unter dem Cursor ein
I, A
Fügt den nachfolgenden Text am Anfang/Ende der Zeile ein
o, O
Fügt eine neue Zeile nach/vor der aktuellen Zeile ein
r
Ersetzt das aktuelle Zeichen unter dem Cursor
Löschen

x
Löscht das aktuelle Zeichen unter dem Cursor
dh
Löscht das Zeichen links des Cursors
dw
Löscht das aktuelle Wort
db
Löscht das Wort links des aktuellen Wortes auf dem sich der Cursor befindet
dd
Löscht aktuelle Zeile
d0, d$
Löscht die Zeile von der aktuellen Corsorposition zum Zeilenanfang/-ende
dG Löscht alle folgenden Zeilen, einschliesslich der aktuellen, bis zum Ende der Datei
J
Löscht den Zeilenumbruch zwischen der aktuellen und der nächsten Zeile
d/<Wort>
Löscht von der aktuellen Cursorposition alles bis zu <Wort>
Navigieren

:<Zielennummer>
Geht zur angegebenen Zeile
Suchen und ersetzen

:s/<suche>/<ersetze>/ Sucht <suche> auf der aktuellen Zeile und ersetzt den ersten Treffer durch <ersetze>
:s/<suche>/<ersetze>/g Sucht <suche> auf der aktuellen Zeile und ersetzt alle durch <ersetze>
:%s/<suche>/<ersetze>/g Sucht <suche> in der ganzen Datei und ersetzt es durch <ersetze>
:%s/<suche>/<ersetze>/gc Sucht <suche>in der ganzen Datei und fragt nach, ob er es durch <ersetze> ersetzen soll
Weiteres

u Macht den letzten ausgeführten Befehl rückgängig
. <- Punkt Führt den letzten ausgeführten Befehl nochmals aus
~ Ändert Grossbuchstaben in Kleinbuchstaben und umgekehrt
Kommandomodus
[Esc] Wechselt in den Kommandomodus
:w / :w <Dateiname> Speichert Datei / Speichert Datei in <Dateiname>
:q / :q! Verlässt den vi / Verlässt vi ohne geänderte Datei zu speichern
:wq oder :x
Speichert Datei und verlässt den vi
:! <Befehl> Führt <Befehl> in der Shell aus
:e <Dateiname> Erstellt neue Datei namens <Dateiname>
Kopieren und Einfügen
yy Kopiert aktuelle Zeile
p, P
Fügt kopierte Zeile nach/vor der aktuellen Zeile ein

Lösch- und Bewegungsbefehle können auch noch mit Zahlen kombiniert werden, so löscht zum Beispiel ein 3dw gleich 3 Wörter auf einmal oder ein 5h bewegt den Cursor gleich 5 Zeichen nach links.

Leider weiss ich auch nicht alle Befehle auswendig, aber dafür hab ich ja meine vi Referenz Kaffeetasse.

Related Entries:
Treppeneffekt beim Einfügen von Text im vi verhindern
Rechtschreibprüfung im vi
vi Fenster teilen
Abkürzungen im vi benutzen
vi Makros benutzen
 Permalink

Überblick über alle installierten Ports

Um einen Überblick über alle installierten Ports zu erhalten, einfach folgenden Befehl benutzen:

# portversion

Zusätzlich wird bei jedem Port angezeigt, ob sich im lokalen Portbaum eine neuere Version befindet oder ob die installierte Version aktuell ist.

Ein bisschen mehr Informationen bekommt man mit dem verbose Modus von portversion:

# portversion -v

portversion befindet sich im sysutils/portupgrade Port. Mehr Informationen findet man in der Manpage portversion(1)

UPDATE 05.02.2007:

portupgrade wurde von sysutils in die neue Kategorie ports-mgmt verschoben. portupgrade kann nun wie folgt installiert werden:

# cd /usr/ports/ports-mgmt/portupgrade && make install clean
Related Entries:
Gespeicherte Optionen nach OptionsNG konvertieren
Ports-Subversion-Repository spiegeln
sysinstall-Ersatz für neuere FreeBSD-Versionen
Alte FreeBSD-Port Patchdateien aufsplitten
FreeBSD-Portbaum auf Fehler überprüfen
Comments (1)  Permalink

Platz schaffen mit portsclean

Mit der Zeit wird der Platz auf der Festplatte immer kleiner, da kann man zum Beispiel mit pkg_cutleaves die Ports aufräumen oder mit portsclean den Portbaum säubern. Zuerst kann der Portbaum auf den neusten Stand gebracht werden, damit die veralteten Quellcodedateien gelöscht werden können. Dies kann man zum Beispiel mit cvsup machen. Danach einfach folgenden Befehl als root ausführen:

# portsclean -CDP 

-C Löscht alle Arbeitsverzeichnisse aus dem Portbaum

-D Löscht alle veralteten Quellcodedateien aus dem /usr/ports/distfiles Verzeichnis

-P Löscht alle veralteten Pakete aus dem /usr/ports/packages Verzeichnis


Mehr Informationen zu portsclean in der Manpage portsclean(1).

Related Entries:
Gespeicherte Optionen nach OptionsNG konvertieren
Ports-Subversion-Repository spiegeln
sysinstall-Ersatz für neuere FreeBSD-Versionen
Alte FreeBSD-Port Patchdateien aufsplitten
FreeBSD-Portbaum auf Fehler überprüfen
Comments (2)  Permalink

Herausfinden zu welchem Port eine Datei gehört

Manchmal ist es ganz nützlich herauszufinden, zu welchem Port eine Datei gehört. Dies kann ganz einfach mit pkg_which gemacht werden.

# pkg_which <Datei> 

Falls ich also wissen will, aus welchem Port pkg_which ist:

# pkg_which pkg_which
portupgrade-20041226_7 portupgrade-20041226_8

Wenn man nach einer Datei sucht, die nicht aus einem Port stammt, ruft pkg_which which(1) auf und durchsucht PATH nach der Datei.

pkg_which befindet sich, wie oben herausgefunden, im sysutils/portupgrade Port. Zum Installieren einfach folgenden Befehl benutzen:

# cd /usr/ports/sysutils/portupgrade && make install clean

Mehr Informationen zu pkg_which in der Manpage pkgdb(1)

UPDATE 05.02.2007:

portupgrade wurde von sysutils in die neue Kategorie ports-mgmt verschoben. portupgrade kann nun wie folgt installiert werden:

# cd /usr/ports/ports-mgmt/portupgrade && make install clean
Related Entries:
Gespeicherte Optionen nach OptionsNG konvertieren
Ports-Subversion-Repository spiegeln
sysinstall-Ersatz für neuere FreeBSD-Versionen
Alte FreeBSD-Port Patchdateien aufsplitten
FreeBSD-Portbaum auf Fehler überprüfen
 Permalink
Prev Next311-320/325