seeseekey.net - Invictus Deus Ex Machina

Wenn man einen KVM Host auf­ge­setzt hat, steht man vor der Frage wie man die­sen effi­zi­ent ver­wal­tet. Für die gra­fi­sche Remo­te­ver­wal­tung gibt es unter Ubuntu den Vir­tual Machine Mana­ger wel­cher ein­fach über die Paket­ver­wal­tung instal­liert wer­den kann:

apt-get install virt-manager

Im Vir­tual Machine Mana­ger kön­nen dabei neue vir­tu­elle Maschi­nen ange­legt oder beste­hende Maschi­nen ver­än­dert wer­den. Der Vir­tual Machine Mana­ger stellt dabei eine Abs­trak­ti­ons­ebene bereit, so kann er nicht nur KVM, son­dern auch Xen und LXC Maschi­nen verwalten.

Vir­tual Machine Manager

Unter Mac OS X steht keine Vir­tual Machine Mana­ger Alter­na­tive zur Ver­fü­gung. Aller­dings kann man hier etwas schum­meln, indem man den KVM Host dafür zweck­ent­frem­det. Dazu muss das Paket „virt-manager“ auf dem KVM Host instal­liert wer­den. Auf dem Mac muss XQuartz instal­liert wer­den, damit eine X11 Imple­men­tie­rung zur Ver­fü­gung steht. Nach der Instal­la­tion öff­net man ein Ter­mi­nal und gibt dort fol­gen­des ein:

ssh -X root@server.example.org
virt-manager -c qemu:///system

Anschlie­ßend wird der Mana­ger gestar­tet und kann wie gewohnt genutzt werden.

Der Vir­tual Machine Mana­ger unter Mac OS X

Bei die­sem Ver­fah­ren wird die gra­fi­sche Aus­gabe des KVM Hosts auf den Mac umge­lei­tet. Somit wird der Vir­tual Machine Mana­ger auf der Ubuntu-Maschine aus­ge­führt, prä­sen­tiert seine Ober­flä­che aber unter Mac OS X.

Möchte man unter Linux einen Daten­trä­ger über­prü­fen, so bie­tet sich hier­für der Befehl „bad­blocks“ an. Dabei sollte man Bad­blocks nicht auf dem instal­lier­ten Betriebs­sys­tem star­ten, son­dern statt­des­sen eine Live-CD nut­zen. Ansons­ten wird man mit einer der fol­gen­den Mel­dun­gen bedacht:

/dev/sda wird offensichtlich vom System genutzt; es ist zu unsicher, Badblocks zu starten!
/dev/sda1 ist eingehängt; es ist zu unsicher, Badblocks zu starten!

Die­ses Ver­hal­ten lässt sich durch den Para­me­ter „f“ abschal­ten. Aller­dings sollte die­ser mit Bedacht genutzt wer­den. Bad­blocks kennt zwei Arten von Tests, den Read-Only und den Read/Write Test. Wäh­rend ersterer:

badblocks -nsv /dev/sda

die Daten auf der Fest­platte intakt lässt, ist dies beim Read/Write Test:

badblocks -wsv /dev/sda

nicht der Fall. Hier wer­den vor­han­dene Daten auf der Fest­platte über­schrie­ben. Die Über­prü­fung ist dabei rela­tiv lang­wie­rig. Bei grö­ße­ren Lauf­wer­ken sollte man einige Zeit mitbringen.

Wenn man bestimmte Datei­sys­te­men auf einem Betriebs­sys­tem wie Linux oder Mac OS X ein­bin­den möchte, steht einem das „File­sys­tem in User­space“ oder kurz Fuse zur Ver­fü­gung. Wäh­rend es unter Linux ein fes­ter Bestand­teil des Ker­nels ist, muss es bei Mac OS X nach­in­stal­liert wer­den. Dabei ste­hen dem Anwen­der unter­schied­lichste Imple­men­tie­run­gen wie Fuse4X und ähn­li­che zur Ver­fü­gung. Viele die­ser Pro­dukte tei­len aller­dings das Schick­sal von Fuse4X — sie wer­den nicht mehr aktiv weiterentwickelt.

osxfuse.github.io

Das ein­zig aktive Fuse Pro­jekt für Mac OS X scheint im Moment OSX­Fuse zu sein wel­ches unter http://osxfuse.github.io/ zu fin­den ist. Auch die Fuse4X Ent­wick­lun­gen sind mitt­ler­weile zu einem gro­ßen Teil in die­ses Pro­jekt ein­ge­flos­sen. OSX Fuse ist dabei freie Soft­ware auch wenn die Lizenz etwas zu aus­führ­lich ist. Es scheint sich dabei um eine BSD-Lizenz zu handeln.

Wenn man eine Anwen­dung mit­tels „screen“ aus­führt, kann es pas­sie­ren das man den Fehler:

Cannot open your terminal '/dev/pts/0' - please check.

zu Gesicht bekommt. Viel­fach wird emp­foh­len bei die­sem Feh­ler die Rechte des Gerä­tes zu ändern:

chmod 777 /dev/pts/0

Anstatt diese Lösung zu nut­zen sollte man vor der Aus­füh­rung von „screen“ den Befehl:

script /dev/null

aus­zu­füh­ren. Damit kann „screen“ anschlie­ßend ohne Feh­ler­mel­dung genutzt werden.

Mit­tels des „ln“-Kommandos ist es unter Linux mög­lich sym­bo­li­sche Links zu erstel­len. Das Kom­mando eig­net sich dabei im ers­ten Moment nur für ein­zelne Dateien. Möchte man ganze Ver­zeich­nisse behan­deln, lohnt sich der Griff zu „lndir“. Unter Ubuntu muss das Kom­mando mit dem pas­sen­den Befehl nach­in­stal­liert werden:

apt-get install xutils-dev

Anschlie­ßend kann „lndir“ genutzt werden:

lndir quellverzeichnis zielverzeichnis

In der Stan­dard­ein­stel­lung gibt „lndir“ jedes ver­linkte Ver­zeich­nis aus, bis es mit dem gesam­ten Quell­ver­zeich­nis fer­tig ist. Der Para­me­ter „-silent“ ver­hin­dert dies.

Manch­mal möchte man eine „screen“-Sitzung star­ten, ohne das diese dabei geöff­net wird. Dazu muss man die Sit­zung „deta­ched“ starten:

screen -d -m example.sh

Damit ist die „example.sh“ in der „screen“-Umgebung gestar­tet und kann spä­ter wie­der auf­ge­ru­fen werden.

Möchte man wis­sen wir viele Dateien sich in einem Ord­ner unter Linux befin­den, so kann man dies leicht durch eine Kom­bi­na­tion der Befehle „find“ und „wc“ bewerkstelligen:

find /home/seeseekey/manyfiles/ -type f | wc -l

Der „find“-Befehl lis­tet dabei alle Dateien in dem Ord­ner auf, wäh­rend „wc“ (word count) die aus­ge­ge­be­nen Zei­len zählt und man somit die Anzahl der Dateien ermittelt.

Wenn man rsync für bestimmte Auf­ga­ben wie das sichern von Daten nutzt, so soll­ten einem fol­gende Zei­len bekannt vorkommen:

>f++++++++++ share/Videos/Animated.mp4
>f++++++++++ share/Videos/FullAnimated.mp4
>f++++++++++ share/Videos/Duplex.mp4

Nun sind diese Aus­ga­ben nicht zufäl­lig, son­dern fol­gen einem Schema. Das erste Zei­chen gibt dem Nut­zer Infor­ma­tio­nen dar­über was mit der Datei pas­siert ist. Bei einem > wurde die Datei vom ent­fern­ten Ser­ver zum loka­len Rech­ner geschickt. Wenn der Pfeil in die andere Rich­tung zeigt (<) wur­den die Datei vom loka­len Rech­ner zum ent­fern­ten Ser­ver geschickt. Neben den bei­den Pfei­len gibt es noch andere Zei­chen wie z.B. den Punkt wel­cher anzeigt das die Datei nicht geän­dert wurde und somit auch kein erneu­ter Trans­fer not­wen­dig wurde.

Das Zei­chen danach gibt an um wel­che Art von Datei es sich han­delt. Das kleine f steht dabei für eine Datei, das d für ein Ver­zeich­nis, das L für einen sym­bo­li­schen Link, das große D für ein Gerät (Device) und S steht für eine spe­zi­elle Datei wie z.B. ein Socket. Anschlie­ßend fol­gen noch einige wei­tere Spal­ten, wel­che für bestimmte Attri­buts­än­de­run­gen ste­hen, so z.B. dafür ob sich die ACL-Informationen für die Datei geän­dert haben. Genaue­res dazu kann man in der Samba-Dokumentation im Abschnitt „–itemize-changes“ erfahren.

Möchte man ein Betriebs­sys­tem auf einem USB-Stick auf­spie­len, so kann man dies je nach Betriebs­sys­tem mit unter­schied­li­chen Mit­teln wie z.B. „dd“ bewerk­stel­li­gen. Mit UNet­boo­tin gibt es ein Werk­zeug für Linux, Mac OS X und Win­dows, mit wel­chem sich dies über eine gra­fi­sche Ober­flä­che erle­di­gen lässt.

Das Dia­log­fens­ter von UNetbootin

Neben der Mög­lich­keit eine ISO-Datei auf einen USB-Stick zu spie­len, ist es auch mög­lich aus einer Liste von Sys­te­men zu wäh­len. Das gewählte Sys­tem wird her­un­ter­ge­la­den und anschlie­ßend auf dem USB-Stick instal­liert. Bei UNet­boo­tin han­delt es sich um freie Soft­ware wel­che unter GPL in der Ver­sion 2 und höher lizen­ziert ist. Es kann auf der offi­zi­el­len Seite her­un­ter­ge­la­den wer­den.

Beim offi­zi­el­len Cli­ent für ELSTER han­delt es sich um Free­ware. Möchte man sich dar­auf nicht ver­las­sen und statt­des­sen freie Soft­ware nut­zen, so sollte man sich die Soft­ware Gei­er­lein anschauen.

Der geöff­nete Client

Dabei han­delt es sich um einen freien Cli­ent für ELSTER. Der Cli­ent selbst ist dabei in Java­script geschrie­ben und unter der APGLv3 ver­füg­bar. Gei­er­lein ist der Nach­fol­ger von Tax­bird. Neben der offi­zi­el­len Seite ist auch der Quell­code auf Git­Hub zu fin­den.

Wei­tere Infor­ma­tio­nen gibt es unter:
https://de.wikipedia.org/wiki/ELSTER