Old but not bus­ted … – Die­ser Inhalt wur­de vor mehr als 9 Jah­ren publi­ziert. Die Kor­rekt­heit und Ver­füg­bar­keit von Links kön­nen lei­der nicht gewähr­leis­tet werden.

Da am kom­men­den Sams­tag (14.02.2015) mei­ne Open-/GPG/PGP *wha­te­ver* Keys eh aus­lau­fen, habe ich mich heu­te mal ran­ge­setzt und etwas auf­ge­räumt und (end­lich auch) erneu­ert (1024 bits DSA is halt nicht mehr aktu­ell)

Als ‚Vor­bild‘ habe ich mir Bruce Schnei­er genom­men 😉 und mir die fol­gen­den bei­den RSA-Keys mit 4096 bits generiert:

Old but not bus­ted … – Die­ser Inhalt wur­de vor mehr als 9 Jah­ren publi­ziert. Die Kor­rekt­heit und Ver­füg­bar­keit von Links kön­nen lei­der nicht gewähr­leis­tet werden.

Ges­tern wollte/musste ich mal wis­sen, was in einem LXC-Con­tai­ner (auf unse­rem Kom­mu­ne-Ser­ver) gemoun­tet ist. – Da das im ers­ten Anlauf nicht ganz so tri­vi­al her­aus zu bekom­men war, hier mal mei­ne klei­ne Gedankenstütze.

long story short

root@host:~/# ls -lha /proc/$(lxc-info -n container -p | awk '{print $2}')/root/home

Erklärbär

Szenario

  • LXC-Ver­si­on: 0.7.5 (ja ich weiß, is alt … ;))
  • Host = hn
  • Con­tai­ner = container
  • Mount = in der fstab (host:/var/lib/lxc/container/fstab) ist das host:/home mit der Zei­le "/home home none bind 0 0" ein­ge­bun­den (d.h. also, dass beim Star­ten des LXC-Con­tai­ners des /home vom Host beim Start des Con­tai­ners in den Con­tai­ner gemoun­tet wird; dabei ist home als rela­ti­ver Pfad zum / angegeben)

Das Problem

Wenn man nun auf dem Host wis­sen will, wie das /home im Con­tai­ner aus­sieht (ls -lha /var/lib/lxc/container/rootfs/home) wird man fest­stel­len, dass es ganz anders aus­sieht, als erwar­tet. – Hin­ter­grund ist, dass der obi­ge Mount in einem tem­po­rä­ren File­sys­tem (also nicht wie ein normaler/echter Mount) ein­ge­hängt wird.

Hier mal die Aus­ga­be, die mit einem Stan­dard-LXC-Tem­p­la­te (Ubun­tu) erzeugt wird:

root@host:~/# ls -lha /var/lib/lxc/container/rootfs/home
total 4.0K
drwxr-xr-x  3 root   root     19 Aug 18  2012 .
drwxr-xr-x 22 root   root   4.0K Feb  7 14:15 ..
drwxr-xr-x  2 ubuntu ubuntu   54 Aug 20  2012 ubuntu

Die Lösung

Nach etwas Recher­che stieß ich auf den Blog-Post „LXC 1.0: Advan­ced con­tai­ner usa­ge“ des LXC-Ent­wick­lers Sté­pha­ne Gra­ber, in dem der Trick (und eini­ge Hin­ter­grün­de) erklärt werden.

Jeder Con­tai­ner hat eine eige­ne Pro­zess­num­mer (pid). Die­se bekommt man mit lxc-info -n container -p heraus.
Der im tem­po­rä­ren Datei­sys­tem ein­ge­häng­te Mount befin­det sich unter host:/proc und dort wie­der unter der jewei­li­gen PID.
Also ange­nom­men unser Con­tai­ner hat die PID 1234, dann fin­det man des­sen root-File­sys­tem (inkl. aller Mounts) unter host:/proc/1234/root/.

Wir benö­ti­gen also zuerst die PID des Con­tai­ners (lxc-info -n container -p) und danach kön­nen wir uns das File­sys­tem anzei­gen las­sen (ls -lha /proc/PID/root/). – Bei­de Befeh­le kann man nun kombinieren.

mit LXC 1.x

In oben genann­ten Blog-Post wird für das Eru­ie­ren der PID lxc-info -n container -p -H (ange­passt!) ange­ge­ben. Dabei ste­hen die Schal­ter -n container für den Con­tai­ner­na­men, -p für die Aus­ga­be der PID und -H (wahr­schein­lich; sie­he unten) für die nume­ri­sche Aus­ga­be der PID. 

Die Kom­bi­na­ti­on der bei­den Befeh­le zum Anzei­gen des Root-Datei­sys­tems für den Con­tai­ner sieht dann so aus: ls -lha /proc/$(lxc-info -n container -p -H)/root/ (ange­passt!).

mit LXC 1.x (in meinem Fall 0.7.5)

Da ich ATM aller­dings noch nicht die Ver­si­on 1.x ver­wen­de, funk­tio­niert der Tipp (aus dem Blog-Post für die Ver­si­on 1.x lei­der nicht (so ganz).
Denn in 0.7.5 gibt es den Schal­ter -H bei der Aus­ga­be der PID mit lxc-info -n container -p nicht, so dass man nicht nur die PID, son­dern den Text pid: 1234 zurück bekommt. :-/

Aller­dings ist das nicht so dra­ma­tisch, denn man kann sich ja mit awk behel­fen (und somit den Schal­ter ersetzen/emulieren). 🙂
lxc-info -n container -p | awk '{print $2}' lie­fert nur die zwei­te ‚Spal­te‘ der lxc-info-Aus­ga­be, also die num­me­ri­sche PID.

Ergo hier nun mei­ne Lösung zum Anzei­gen des Root-Datei­sys­tems des Containers:

root@host:~/# ls -lha /proc/$(lxc-info -n container -p | awk '{print $2}')/root/home
total 4.0K
drwxr-xr-x  3 root   root    19 Aug 18  2012 .
drwxr-xr-x 22 root   root  4.0K Feb  7 14:15 ..
drwxr-xr-x  2 user1  user1       […]         user1
drwxr-xr-x  2 user2  user2       […]         user2
drwxr-xr-x  2 user3  user3       […]         user3

… wie­der was gelernt … 😉 – Aller­dings wohl nicht für lan­ge, denn das Update auf die Ver­si­on 1.x steht ja vor der Tür …

Old but not bus­ted … – Die­ser Inhalt wur­de vor mehr als 10 Jah­ren publi­ziert. Die Kor­rekt­heit und Ver­füg­bar­keit von Links kön­nen lei­der nicht gewähr­leis­tet werden.

FYI: In der nächs­ten Zeit wer­de ich alle Diens­te von sokai.name zu sok.ai umziehen. 🙂

Old but not bus­ted … – Die­ser Inhalt wur­de vor mehr als 10 Jah­ren publi­ziert. Die Kor­rekt­heit und Ver­füg­bar­keit von Links kön­nen lei­der nicht gewähr­leis­tet werden.

So, gera­de habe ich mal ganz gegen mei­ne (sonst eigentl. ja eher biblio­the­ka­ri­sche) Natur gehan­delt und mich von mei­nen ICQ-Accounts (rest­los) getrennt …

Bis jetzt hat­te ich den einen Account immer noch per XMPP-Trans­port in mei­nem Jab­ber-Roas­ter hän­gen. Da sich aber seit sehr lan­ger Zeit bis auf einen „Ewig-Gest­ri­gen“ nix mehr gerührt hat – Gesicht­buch sei ‚dank‘ – hat es mich heu­te gejuckt und ich habe mich getraut …
Kein XMPP-Trans­port mehr, kei­ne 40 (off­line) ICQ-Kon­tak­te mehr im Roas­ter, kei­ne Chat-Pro­to­kol­le mehr (obwohl die eh noch in irgend einem Kope­te-Back­up von anno-dazu­mal lie­gen und schon seit Jah­ren in Pidgin migriert wer­den soll­ten), kei­ne ICQ-Accounts mehr …

Nen klei­nes biss­chen isses schon scha­de … Manch­mal hat­te es mich dann ja doch (bei ande­ren Din­gen, wie z.B. E‑Mails) schon irgend­wie erfreut/fasziniert, in die Anfän­ge mei­nes online-Lebens einzutauchen …

Weg ist weg … *aus­die­maus*

Old but not bus­ted … – Die­ser Inhalt wur­de vor mehr als 10 Jah­ren publi­ziert. Die Kor­rekt­heit und Ver­füg­bar­keit von Links kön­nen lei­der nicht gewähr­leis­tet werden.

Gera­de hat­te ich das Pro­blem, dass mei­ne aktu­ell instal­lier­te Ver­si­on von ffmpeg nicht so woll­te wie ich und mir eine Video­da­tei­kon­ver­tie­rung mit einer Feh­ler­mel­dung quittierte.

Nach einer klei­nen Recher­che stell­te sich her­aus, dass das Pro­blem bekannt und bereits in einer aktu­el­le­ren Ver­si­on beho­ben ist. Da ich aber nun nicht so schnell eine aktu­el­le­re Ver­si­on instal­lie­ren konn­te und obi­ges Pro­blem auch nur bei einer Datei auf­trat, fand ich fol­gen­de Mög­lich­keit bei ubuntuforums.org zur (tem­po­rä­ren) Benut­zung einer sta­ti­schen (bereits kom­pi­lier­ten) Ver­si­on von ffmpeg.

wget http://ffmpeg.gusari.org/static/32bit/ffmpeg.static.32bit.2014-02-23.tar.gz
tar xzvf ffmpeg.static.32bit.2014-02-23.tar.gz
./ffmpeg -i input [output options] output

Erläu­te­rung:
Mit dem ers­ten Befehl wird die gepack­te 32bit-Vari­an­te von ffmpeg vom 23.02.2014 her­un­ter gelan­den.
Der zwei­te ent­packt die Datei, wobei die bei­den Datei­en ffmpeg und ffprobe ent­ste­hen.
Und als drit­tes wird die gera­de ent­pack­te Datei ffmpeg benutzt, um eine (bei­spiel­haf­te) Kon­ver­tie­rung durchzuführen.

… und schwup­di­wup war mein Pro­blem (jeden­falls tem­po­rär) beho­ben … – Dan­ke an FakeOutdoorsman!