Main /

Lars Technical Blog

Lars Technical Blog

HomePage / User / Lars

[cdw] 2017 by Lars

Archiv: 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 2020 2021 2022


Achtung!

Hier findet Mann (Frau vielleicht auch) Information und ggf. Sorgen bzw. ProblemeHerausforderungen bzgl. gerade aktueller Software und Hardware hinsichtlich Fehlern die mir evtl. bei dem täglichen Umgang mit Computern unterlaufen. Hier wird Tacheles gesprochen des weiteren wird evtl. übelster Sarkasmus verwendet. Personen/4men werden hier nicht verunglimpft, eher durch den Kakao gezogen. Wer dem Kauderwelsch, das häufigentweder auf gefährlichem Halbwissen, intensiver Nutzung der Suchmaschine Google, oder durch simple Anwendung entstanden ist, oder zu bestehen scheint, nichts abgewinnen kann, möge sich der hier beschriebenen Herangehensweisen selbst stellen. Wer glaubt/meint etwas zwischen den Zeilen zu finden, der irrt.

Fragen? Keine! Gut so, weitermachen.

Oro, mein Riechfläschchen!


22. April 2024

Noch ca. 297 Tage...
von jetzt an gerechnet, dann ist Voyager 1 exakt ein Lichttag von der Erde entfernt.

Zum selber rechnen, hier die Daten.

Das ist dann der 14. Feb 2025.

22. April 2024

Mal schnell einen neuen Kernel im Server installieren...
Früher hatte ich an meinem Server noch einen Monitor angeklemmt, damit ich den Output ggf. mal verfolgen konnte. Das geht aktuell nicht, weil ich da keinen Monitor mehr dran habe. Auch ist mein Server kein wirklich "Cloud-fähiger" Rechner sondern einfach nur ein ausrangierter alter kleiner Dell "OptiPlex?" 7050 Micro PC mit 8GB RAM und 128GB SSD. Ich könnte dem jetzt ein neues Linux verpassen und einfach damit starten. Mut zur Lücke, sollte er nicht hochfahren, kann man immer noch einen Monitor anstöppseln.

Aber ich wollte mal wieder das System extrahieren (per dd)

  $ dd if=/dev/sda of=richtig-fettes-image.raw conv=sync,noerror status=progress

Damit erstellen wir von der gesamten Platte, die als /dev/sda vorliegt ein Abbild. Vorsicht, das kann groß werden. Der conv= Parameter sorgt für Überlesen von Fehlern und dafür, dass das Ergebnis Sektor synchron bleibt, also fehlerhafte Sektoren dann leer mit gepflegt werden. Status gibt aus, wie weit der Prozess ist. Moderne SSD hören eher auf Namen wie "nvme0n1" oder ähnlich, das Anhängsel "p1" sagt dann 1. Partition.

Die "richtig-fettes-image.raw" enthält jetzt sämtliche Partitionen und auch den MBR oder GPT Infos. Mittels fdisk können die Metadaten des Images ausgelesen werden.

  $ fdisk -l richtig-fettes-image.raw

  Festplattenmodell: WDC PC SN730? ...
  Einheiten: Sektoren von 1 * 512 = 512 Bytes
  Sektorgröße (logisch/physikalisch): 512 Bytes / 512 Bytes
  E/A-Größe (minimal/optimal): 512 Bytes / 512 Bytes
  Festplattenbezeichnungstyp: gpt
  Festplattenbezeichner: <uuid>

  Gerät           Anfang       Ende   Sektoren  Größe Typ
  /dev/nvme0n1p1    2048    1003519    1001472   489M EFI-System
  /dev/nvme0n1p2 1003520    8816639    7813120   3,7G Linux Swap
  /dev/nvme0n1p3 8816640 2000407310 1991590671 949,7G Linux-Dateisystem

Das ist wichtig, wollen wir dieses Image oder Teile davon mounten.

Wir wissen jetzt 512 Bytes pro Sektor, die eigentliche für uns interessante Partition (p3) die unser System enthält, beginnt ab Sektor 8816640. Um die 3. Partition jetzt mal eben zu mounten, brauchen wir ein Ziel Verzeichnis (/mnt/loop) den Sektor-Offset aus Anfang und der Sektorgröße.

  $ mkdir -p /mnt/loop
  $ export SEKTOR_OFFSET=$(echo '512 * 8816640' | bc -l)
  $ mount -o ro,loop,offset=$SEKTOR_OFFSET richtig-fettes-image.raw /mnt/loop

Nicht wundern, wenn das ein paar Sekunden dauert, bei größeren Dateien kann auch Linux nicht zaubern. Wenn es keine Fehler gab, ist jetzt das Image Read-Only in das Verzeichnis /mnt/loop eingebunden.

Wenn wir diese Image aber mal in einer VirtualBox starten wollen, müssten wir das Image richtig-fettes-image.raw erstmal mittels qemu-img konvertieren.

  $ qemu-img convert -O vmdk richtig-fettes-image.raw fettes-image.vmdk 

Das dauert auch wieder etwas. Weil leere Sektoren überlesen werden, ist das vmdk evtl. eine Nummer kleiner als das Raw Image.

Unser fettes-image.vmdk lässt sich jetzt als neues Image in eine VirtualBox einfügen. Dann einfach einen neuen virtuellen PC erstellen, alles auf Default belassen, das eingefügte Image in diesen PC einbinden und starten. Wenn das System vorher bootete und wir auf unserem Host ähnliche Hardware haben, besteht die große Change, das dieses Image einfach gestartet werden kann. Hat man nur einen Prozessor zugewiesen, besteht die Gefahr das die innere VirtualBox Uhr nicht sauber läuft. Der Kernel-Parameter "tsc=unstable" kann hier helfen.

Ist dieses Image von einer anderen Hardware wie z.B. ARM und der eigene PC ist ein Intel, wird es etwas schwieriger, weil dann wohl eher ein Emulator genutzt werden muss. Qemu ist auch so ein Emulator, der dann aber mit jeder Menge Parametern gestartet werden müsste. Dazu später mehr...

p.s.

Unter "Cloud-fähiger" Rechner verstehe ich einen Rechner, der solange er an Strom und Netzwerk angeschlossen ist, immer über dieses Netzwerk erreichbar ist, auch im "ausgeschaltetem" Zustand. Auch ist so ein Rechner in der Lage von ISO Images zu booten, die nur im Netzwerk liegen. Ja, so etwas ist Standard. So etwas ist man bei PCs nicht gewohnt.

16. April 2024

Kubernetes, geiler Scheiß...

  • https://youtube.com/watch?v=X48VuDVv0do en Nana gibt ihr bestes, leider ab und zu völlig verwirrend. Sie sagt leider nicht, warum ich das ein oder andere jetzt brauche... Dafür nutzt Sie aber auch Minikube. Was zum Üben lokal erstmal ausreicht.
  • https://www.youtube.com/watch?v=1SaPfm96lY4 de Golo as it's best! daumen hoch! So wird Kubernetes erklärt! Er lässt das ein oder andere weg, aber das meiste was gebraucht wird, wird gezeigt und erklärt. Er verwendet einen kleinen Cluster bei Digital Ocean. Und baut selbst einen kleinen Service in NodeJs.

Es ist wirklich super gemacht.

3. April 2024

Google Pixel 7, Update angewendet...
Wir haben es endlich geschafft, die "komplizierte" Anpassung für das Google Pixel 7 durchzuführen. Lisa hatte gerade ihre Bachelor fertig geschrieben und deshalb absolut keine Zeit vorbei zu kommen und mir das Handy zu übergeben. Jetzt haben wir es gemacht. War total einfach, wenn man die Einstellungen alle findet. Da alles in Englisch angegeben ist und man es sich selbst übersetzen muss. Ihr Telefon ist auf Deutsch eingestellt. Der Rest der Anleitung ist wirklich einfach und sehr gut erklärt. Mal sehen ob das Handy jetzt immer noch unmotiviert abraucht.

Hier nochmal der Link zur Anpassung. https://support.google.com/pixelphone/thread/256412156/ en VORSICHT, das ist nur für Google Pixel Handys gedacht.

30. März 2024

Es gibt Dinge, die glaubt man erst, wenn Mann sie sieht...
Beispiel:

Es sind 24 Pinguine, Intel Core i7 13700k, weil es den 14700k da noch nicht gab und der 13900k zu teuer war. Ich sehe das heute auch zum ersten mal. Sieht cool aus.

28. März 2024

Cool...

21. März 2024

QR-Code als utf8-Text...
Mittlerweile gibt es echt fast alles: https://superuser.com/questions/1420001/is-it-possible-to-create-a-qr-code-using-text

    qrencode -t UTF8i 'https://beispiel.de/'

Das Ergebnis ist dann ein QR-Code den man fast überall eintragen kann.

    █▀▀▀▀▀█ ▀▄▄▀▀▀▄  ▀▀▄▄ █▀▀▀▀▀█    
    █ ███ █   ▀ ██ ▀█▄  ▄ █ ███ █    
    █ ▀▀▀ █  ▀▄▀▄▀▀ ▄▀▄▀▄ █ ▀▀▀ █    
    ▀▀▀▀▀▀▀ █ █▄▀▄▀▄▀ █▄█ ▀▀▀▀▀▀▀    
    ▀▀▄▀█▄▀▄ █▀▀▄ █▄ ▀██  ▀▄▄ ▄ ▀    
    ▀██▀▀ ▀▀▀▄██▄▀██ ██ ▀██▀ ▄▀█     
    ▀▀▄▄▄█▀ ██ ▀▀ ▄▄█▄▄▀█ ██▄▀▄██    
    ▄█▄█▀▀▀▀█▀▀█▀▀▄▀▄▀▄█▀▄██ ██▄█    
    █▄▀▄▄▄▀▄█▄ ▄▄▀▄█  ▄██▄ ▀▄█ ▀     
    ██▄▀▄ ▀▀  ▀▀▄█▄█▄▀▀▀▄▀█ ▀ █ ▀    
    ▀▀  ▀▀▀ ▄ █ ▀▄██▀▀▄██▀▀▀██▀ █    
    █▀▀▀▀▀█  █▄ ▀ █▀▄▄▀██ ▀ █▄  ▄    
    █ ███ █ █▄█ █▄▄█▀▄▄███▀▀▀█  ▄    
    █ ▀▀▀ █ ▄▀▀ ▄ ▀▀▀ █▀ ▄▄▀█▄█▀█    
    ▀▀▀▀▀▀▀ ▀  ▀▀▀▀▀▀   ▀▀  ▀▀       

Ein Scanner sollte "Das funktioniert so aber nicht ganz richtig!" ausgeben.

19. März 2024

Large Language Models...
Wirklich lesenswerter großartiger Artikel: https://www.computerbase.de/2023-03/kuenstliche-intelligenz-language-models-chatbots-grundlagen-erklaert/ de daumen hoch!

14. März 2024

HTML/2 HTML/3...

13. März 2024

Beleidigung gefällig?...

Da kommen Erinnerungen hoch, Megatötbombe...

13. März 2024

Docker soll auf host zugreifen...
Man möge in der docker-compose.yml

    extra_hosts:
      - "host.docker.internal:host-gateway"

eintragen, dann kann aus einem Docker-Container heraus per http://host.docker.internal:PORT/... auf einen anderen Container zugegriffen werden, so als ob man localhost:PORT vom Host aus verwendet.

Angeblich funktioniert das nur unter Linux.

11. März 2024

Aufhören zu formatieren...

Das sieht echt besser aus...

29. Februar 2024

Go und null Values...
Das merkt man erst dann, das es manchmal etwas tricky sein kann, JSON kennt halt 'null' als Objekt. Da hatte sich wohl niemand Gedanken im GO-Team gemacht. Genauso wie der ternary Operator einfach fehlt. (condition ? true : false)

21. Februar 2024

Goodbye Gitlab, welcome Gitea
Um es mal salopp zu sagen, Tschüß Gitlab. Du warst ein guter Freund, aber der Resourcen-Hunger auf kleinen Rechnern ist nicht mehr zu bändigen. Und das war nur die 13.12.15 Gitlab-CE Version. Ich habe mir jetzt ein Gitea 1.21.5 installiert.

Ich habe mittels curl

  curl "https://<host>/api/v4/projects?private_token=<your private token>&per_page=100"

mir alle Repository-Namen ausgeben lassen.

Die Liste dann in einer Datei abgelegt und jede Zeile entsprechend erweitert:

  git clone https://<user>:<gitlab-password>@<gitlab-url>/<path>/<reponame>.git
  ...

Das waren so >70. Repositories. Das sammelt sich halt alles so an mit der Zeit. Durch Ausführen habe ich alle Repositories aus Gitlab ausgecheckt.

Dann alle Organisationen per Script angelegt. Man könnte das auch per Hand, wollte ich aber nicht, waren mehr als 10.

  function create_new_orga() {
    local username=$1

    curl -v -X POST 
-H "Authorization: token <gitea-token>"
-H "accept: application/json"
-H "Content-Type: application/json"
-d "{ \"username\": \"$username\", \"description\": \"\", \"email\":\"\", \"full_name\": \"\", \"location\": \"\", \"repo_admin_change_team_access\": true, \"visibility\": \"limited\", \"website\": \"\" }" "https://<gitea-url>/api/v1/orgs" } create_new_orga <organame 1> create_new_orga <organame 2> ...

Dann noch ein weiteres Script geschrieben, das alle Repositories in Gitea wieder hineinschreibt.

  function create_new_repo() {
    local organame=$1
    local reponame=$2

    curl -v -X POST 
-H "Authorization: token <gitea-token>"
-H "accept: application/json"
-H "Content-Type: application/json"
-d "{ \"auto_init\": true, \"default_branch\":\"master\", \"description\": \"\", \"gitignores\":\"\", \"issue_labels\":\"\", \"license\":\"\", \"name\": \"$reponame\", \"private\":true, \"readme\":\"\" }" "https://<gitea-url>/api/v1/orgs/$organame/repos" cd $reponame git remote set-url origin https://<user>:<password>@<gitea-url>/$organame/$reponame.git git push --all --force cd - } create_new_repo <organame 1> <repo-name 1> create_new_repo <organame 2> <repo-name 2> ...

Das lässt man dann laufen und kontrolliert am Ende tunlichst den Output, ob alles fehlerfrei geklappt hat.

Danach konnte ich Gitlab abschalten und jetzt läuft nur noch Gitea. Der Load des kleinen Servers ist gesunken, von ca. 0,30 auf 0,05.

Leider ist es mir noch nicht gelungen den Action-Runner in Gitea zu starten. Will ich das überhaupt?

Links:

21. Februar 2024

efibootmgr... after NVRAM delete
So, habe meinen Rechner aus seinem Verschlag rausgefummelt, von allen Kabeln befreit AUCH STROM, geöffnet und auf dem Mainboard nach CLRTC gesucht. Lt. ASUS FAQ suche man am unteren rechten Rand danach. Auf meinem B760 ist es eher links der Mitte zu finden. Dort einen Jumper drauf stecken, bis 10 zählen und den Jumper wieder abnehmen. Jetzt den Rechner wieder schließen, in den Verschlag fummeln, Kabel wieder anschließen und starten. Der Start braucht etwas länger als man es gewohnt ist. Dann ins BIOS wechseln und dort die BIOS-Defaults laden, dann die Einstellungen vornehmen, die man sich vorher mühevoll zusammengesucht hat. Gut, wer mit den Defaults leben kann.

Die Platten wurden immer noch nicht wieder erkannt, weil sie im NVRAM nicht eingetragen worden sind!

Also wieder den USB-Bootstick gestartet, das Linux gebootet und in die chroot Umgebung gewechselt. Im Handbuch mal eben die modernen Kernel-Einstellungen herausgesucht und den Kernel neu gebaut. Vorsicht beim Bauen des Kernels. Auch wenn man 24 Kerne hat, sollte man evtl. nicht mit 24 Kernen (make -j24) bauen. Ich habe parallel ein btop gestartet, um die CPU-Temperatur zu überwachen. Sonst kann es passieren, das der Prozessor es übertreibt und ggf. die 100°C übersteigt und sofort abschaltet.

  make -j16
  make modules_install
  make install

Grub Einstellungen (menuentry) in /etc/grub.d/40_custom vorgenommen. Das Menu wird dann per grub-mkconfig erstellt.

  grub-mkconfig -o /boot/grub/grub.cfg

Um jetzt GRUB zu laden, muss dies installiert werden, das geschied auf einer mit "boot, efs" markierten vfat formatierten Partition die mit GPT arbeitet.

  grub-install --target=x86_64-efi --efi-directory=/boot

Damit wird der GRUB-Bootloader installiert in /boot/EFI/gentoo/grubx64.efi und gleichzeitig per efibootmgr in das NVRAM eingetragen. Das braucht man nur einmal zu machen, weil GRUB sich selbst um das Laden der Kernel kümmert. Es sei den, es gibt ein Update von Grub (Umstellung 2.06 auf 2.12)

Um zu sehen ob der GRUB-Bootloader eingetragen ist:

  efibootmgr

  BootCurrent: 0000
  Timeout: 1 seconds
  BootOrder: 0000
  Boot0000* gentoo   HD(1,GPT, <partuuid>,0x800,0x100000)/File(\EFI\gentoo\grubx64.efi)

Die <partuuid> kann man finden per blkid | grep nvme falls eine NVME fähige SSD im Rechner steckt. Ansonsten kann man das grep weglassen und sich alles ausgeben.

Bei mir:

  /dev/nvme0n1p1: UUID="E7xx-xxxx" BLOCK_SIZE="512" TYPE="vfat" PARTLABEL="ESP" PARTUUID="<partuuid>"
  /dev/nvme0n1p2: ... TYPE="ext4" ...
  ...

In der BootOrder zeigt eine kommaseparierte Liste von bootfähigen Platten die im NVRAM eingetragen sind. Sollte hier die eigene Platte fehlen, ist das ein Indiz für ein Problem. z.B. BootOrder: 0001 Aber darunter werden mehrere Platten angezeigt. Bei mir war es der Fehler "No space left on Device" beim Versuch mittels grub-install einen neuen GRUB-Bootloader zu installieren. Deshalb diese Tortur des NVRAM löschens.

Aktuell verwende ich noch Grub 2.06-r9 und habe explizit den grub-2.12 maskiert. Es wird aktuell empfohlen statt /boot ein /efi einzurichten und alles dort zu installieren. Das klappt aber noch nicht so sauber, wie man es sich vorstellt. Bei mir landeten immer noch Dateien in /boot.

Links:

Interne Platte mittels USB Stick laden

USB Stick booten, sobald das Menü des GRUB-Bootloaders erscheint 'e' drücken, ggf. nochmal 'e' drücken. Dann folgendes eintragen:

    insmod part_gpt
    search --no-floppy --set=root --fs-uuid EFxx-xxxx
    chainloader /EFI/gentoo/grubx64.efi

Eintippen und versuchen mittels 'C-x' zu booten. Bei mir blieb es leider hängen. Die ID hier EFxx-xxxx ist die eigene Bootpartition, siehe oben unter UUID.

Security

Man kann im ASUS Bios die 4 wichtigen Sicherheits-Dateien auf die eigene Boot-Platte schreiben lassen.

  • KEK
  • PK
  • db Signaturen der erlaubten Bootloader
  • dbx Signaturen der verbotenen Bootloader

Die anderen beiden (KEK, PK) sind wohl Schlüssel.

20. Februar 2024

efibootmgr... No space left...
Was zur Hölle.

Eigentlich wollte ich mal schnell einen neuen Kernel installieren und habe das als Script voll automatisiert. Dank dem Grub2 Schei... muss man immer noch 2 Dateien extra anpassen (/etc/default/grub) und (/etc/grub.d/40_custom) dort einen neuen Menuentry einbringen. Der Rest geht fast komplett automatisch.

Aber jetzt plötzlich lässt sich das System nicht mehr booten.

Und ein Versuch im Bios etwas einzustellen ging schief. Also Bios komplett zurückgesetzt und trotzdem kann ich aktuell nicht ins NVRAM schreiben, da dies voll sein soll.

    # efibootmgr ...
    Could not prepare Boot variable: No space left on device.

Wer hat sich diesen Schei... ausgedacht? Schlag in den Nacken! Weniger hat er nicht verdient.

Ich will meinen Rechner nicht öffnen, nur um den CLR... Button zu drücken, aber ich komme wohl nicht drum herum.

So ein SCHEI...!!! Drecks UEFI... Fluch!!!

Links:

BTW: Ich will mein CSM/MBR zurück, das war einfach. Zu Hause brauche ich kein Fort Knox.

15. Februar 2024

Micro Kubernetes...

13. Februar 2024

Wieder Fundstücke...

7. Februar 2024

Google Pixel seit Weihnachten und es ist unbrauchbar...
Töchterchen hat ein Google Pixel 7 bekommen und kann es immer noch nicht richtig nutzen. Das Teil stürzt unmotiviert einfach mal ab.

Google bestätigt Fehler

Ich hoffe mal, wir bekommen es in den Griff mit diesem Workaround. Danke, das Heise sich des Problems auch mal angenommen hat.

7. Februar 2024

Fundstücke...

6. Februar 2024

Pickle, eine Konfiguration-Beschreibungssprache...

Sieht schon mal ganz brauchbar aus.

Language Server Protokoll

Wer fragt, wird ihn nie verstehen, wer ihn kennt, für den reicht eine Frage...

Der Editor: EMACS

Wie malloc(n) funktioniert

31. Januar 2024

Package Manager für Windoof...
Eigentlich habe ich nicht viel am Hut mit diesem Kindermädchen, aber hier mal etwas, was Mann unbedingt haben/installieren sollte. https://scoop.sh/

Ein Package Manager für Windoof.

 scoop install nodejs

Schon hat Mann NodeJs auf der Platte. Cool. Wie man es unter richtigen Betriebssystemen schon lange gewohnt ist.

31. Januar 2024

Github Actions

Wichtig dazu:

Über die Github CLI gh kommt man an viele Informationen heran, die man in der GUI nicht unbedingt sieht.

30. Januar 2024

Kein CSV verwenden, es gibt keinen klaren Standard...
Bessere Alternativen WSV, OML, TBL

24. Januar 2024

Fundstücke...

10. Januar 2024

Elektronik Kompendium(s)...
Mal eine richtig gute Seite mit vielen Informationen über Elektronik/Computertechnik zum Stöbern, auch als Bücher erhältlich.

68030 mit 100-125MHz gefällig?

Auf Pi-Basis für den Amiga 500(+)/1000/2000.

Kann wohl noch viel schneller (68040 mit ~1GHz)? Soll auch Boards geben für 1200/3000/4000.

9. Januar 2024

Awesome Linux Software...

9. Januar 2024

Microsoft hat gerade angerufen...
Folgende Nummer pöppte bei mir in der Telefonanzeige auf: 00443303704891 ein Herr von Microsoft sei am Apparat.

Ich habe ihm gleich gesagt, er ist nicht von Microsoft und ich verwende dieses OS Kindermädchen nicht und habe dann aufgelegt.

Eigentlich sollte man solche Leute ja in längere Gespräche verwickeln ohne die wichtigste Info preis zu geben, die eigene öffentliche IP.

Wobei die eigene IP ja immer 127.0.0.1 ist, aber das wissen die längst. Auch die eigene IP zum Router die mit 192.168. beginnt, bringt diesen Leuten wenig.

Mein Tipp, einfach auflegen und niemals Programme installieren, die man gesagt bekommt.

1. Januar 2024

Wieder geht ein Jahr... träller...
Frohes Neues Jahr... Oder ist dafür schon zu spät?

Wer weiterhin Lust hat, in meinen Lars alten Informationen zu stöbern, sei hier herzlichst eingeladen meine alten Blogs zu lesen.

Die älteren KommentareBlogs möge man hier suchen...

Frische Änderungen | Menü editieren
zuletzt geändert am 23.04.2024 13:19 Uhr von Lars
Edit Page | Page History