LINUX, DAS ALLES KANN
Ubuntu
als Haupt-Betriebssystem
Verfasst
von Alexander Sofianos - +30 697 438 8332
alexander.sofianos@gmail.com
- alexander-sofianos.com
Neun Distros wurden teilweise als Multiboot-System auf zwei ThinkPads, W530 und T520, installiert.
Ubuntu hat sich als die goldene Mitte zwischen Linux-from-Scratch und Bloat-Distros durchgesetzt, und rangiert sehr gut in Bezug auf: Stabilität, Font-Wiedergabe, Vielseitigkeit und größte Hilfsgemeinde.
Ein eigenes Konzept für das Klonen des Betriebssystems (BS) durch den Einsatz von: Rsync, Persistent-Live-USB mittels Mkusb, FSTAB-Konfiguration, rEFInd-Boot-Manager, Grub-Reinstallation und -Updaten.
Testen durch mehrfache und langfristige Einsetzung aktualisierter Klone als Vorgabe-BS.
BS-Klone sind wenig portabel: Eine „Live CD Customization From Scratch“ für eine eigene Distro-Erstellung wie auch die Virtualisierung einer physischen Installation anhand Virt-p2v sind geplant.
Mehrfache Ubuntu-KVMs laufen gleichzeitig, brauchen wenig CPU und können pausiert parat stehen. Sie werden vernetzt, geklont, synchronisiert und bekommen eine neue Identität.
KVM-CPU-Zyklen steigen bei Video-Anwendungen trotzt Virgil3d-Treiber-Einsetzung. Neuere Hardware wird benötigt um GPU-Beschleunigung mittels Intel-GVT-g zu testen.
Windows-KVMs (WVMs) sind umständlich zu erstellen und durch Pool-Änderungen und VM-Umbenennungen, booten sie nicht mehr. Ihr Einsatz ist nicht zwingend nötig, da Linux viele versteckte Fähigkeiten hat.
Alle Systeme werden problemlos durch SSH vernetzt und anhand der Fahne -X wird der X11-Fenstermanager weitergeleitet. NoMachine-Remote-Desktop wird ergänzend eingesetzt wie auch CIFS und Samba für WVMs.
Gocryptfs , ein gestapeltes Dateisystem, wird für Verzeichnisse-Verschlüsselung vewendet und Rclone für Verschlüsselung und Synchronisierung von Cloud-Backends. Electrum-Bitcoin-Hot-Wallet: Sicherheitsmaßnahmen und Vorgehensweisen werden erklärt.
BS- und Desktop-Umgebung-Anpassung anhand Erweiterungen und vielseitiger Paketverwaltung. Ergänzende Programme und Tools für PDF-Bearbeitung und für jede Aufgabe.
Der Reiz zur Themenwahl kam durch die angeborene Übereinstimmung mit dem Linux-Spruch „frei wie in Freiheit, nicht wie in freies Bier“.
Am Anfang des Projekts im Jahr 2020 wurde ein Zertifikat in „Introduction to Linux“ von edX und The LinuxFoundation erlangt, und danach wurde dieses Projekt verwirklicht, von Ideen die Jahrelang im Kopf waren.
Lob an alle die teilweise freiwillige Arbeit leisten, und die Zeit nehmen in Foren, Blogs und Distro-Seiten, Wissen über Linux und Open-Source-Apps zu verbreiten.
Zusammenfassend
Betriebssystemklonen-Konzept 1
Gocryptfs - Rclone - Electrum-Bitcoin-Wallet 1
DE-Erweiterungen - Paketverwaltung - PDF-Bearbeitung 2
Literatur-Resourcen klassifiziert 5
Auswahl von Ubuntu als Haupt-BS 8
Bereinigung unötiger Dateien 28
BS-Backup und -Klon-Erstellung als Konzept des Verfassers 34
Electrum-Wallet für Bitcoins 58
Sicherheitsmaßnahmen und Datenverschlüsselung 62
Stapel-Umbennenug von Dateien 74
Closed-Source-BSs vermeiden 76
Ubuntu-Zuverlässigkeit hat sich bewährt 76
Vollständig
Betriebssystemklonen-Konzept 1
Gocryptfs - Rclone - Electrum-Bitcoin-Wallet 1
DE-Erweiterungen - Paketverwaltung - PDF-Bearbeitung 2
Literatur-Resourcen klassifiziert 9
Die größeren Foren und Gemeinde 9
Verschlüsselung und Crypto-Wallet 10
Auswahl von Ubuntu als Haupt-BS 12
Schwierigkeitsgrad der BS-Verwendung 13
T520-Thinkpad Festplatte und externe Festplatte mit dazugehörigen BSs 15
PPA - Personal Package Archive - Persönliches Paket-Repo 20
Deb-Dateien Paketemanagement 20
Master-PDF-Editor und Qoppa-PDF-Studio 27
LibreOffice-Draw als PDF-Editor 28
Konfiguration für PDF-Dokumente 29
Writer - der Mangel der geteilten Ansicht 32
Bereinigung unötiger Dateien 32
Übriggebliebene Konfigurationsdateien entfernen 32
Unnötige Pakete mit autoremove löschen 33
Daten im Snap-Cache löschen 33
Festplattenbelegungsanalyse 33
Remote-Desktop gegen ssh -X 37
BS-Backup und -Klon-Erstellung als Konzept des Verfassers 38
Woher soll der Befehl ausgeführt werden 39
Wo sollen die Klone erstellt und aktualisiert 40
Booten mit dem rEFInd-Bootmanager von Roderick Smith 41
Grub-Bootloader für unsere Arbeitspartition installieren 44
Portabilitätsbeschränkungen von Ubuntu-Installationen 44
Installationen externer Festplatten 44
Authentifizierungsfehler an der Bildschirmsperre 44
Installationen auf USB-Sticks 45
Den persönlichen Ordner in eine andere Installation kopieren 45
Leistungsvergleich - KVM gegen VirtualBox 45
Performance Evaluation of Xen, KVM, and Proxmox Hypervisors 46
KVM-Vorinstallationshandlungsweisen 46
Standard-Pool-Speicherstelle ändern 47
VMs-erstellen und -bearbeiten 48
Gasterweiterungen für Windows-Gäste 49
Virtuelle Maschinen kopieren - updaten - umbenennen 55
VM-Verwaltung und -Resourcen 58
VMs als Haupt-BS gegen Distroerstellung 59
Virtualisierung einer physischen Installation 60
Netzwerk-Synchonisierung der VMs 60
Fazit: Distroerstellung gegen Virtualisierung 60
EXT-DATEN über SSH synchronisieren 61
QCOW2-VD-Datei synchronisieren 61
Electrum-Wallet für Bitcoins 62
Überprüfen der Schlüsselsignaturen 63
Optionale Abhängigkeiten fehlen 64
Privater Hauptschlüssel oder Master Private Key (MPK) 64
Transaktionsgebühren dynamisch gestalten 65
Wallets verschiedener Software erstellen 65
BTC Börsenplätze als Nebenbemerkung 66
Sicherheitsmaßnahmen und Datenverschlüsselung 66
Stapel-Umbennenug von Dateien 78
Closed-Source-BSs vermeiden 80
Ubuntu-Zuverlässigkeit hat sich bewährt 80
BS = Betriebssystem
Confs = Konfigurationen
DE = Desktop Environment - Desktop-Umgebung
Distro = Linux-Variante - Distribution
FOSS = Frei- und Open-Source-Software
Konf- oder Conf-Datei = Konfigurationsdatei
KVMs = Kernelbasierte Virtuelle Maschinen
Manpages = Manual-Pages - Handbuchseiten
PPA - Personal Package Archive - Persönliches Paket-Repo
Repos = Repositorys
SSH = Secure Shell
UVMs = Ubuntu Virtuelle Maschinen
VMs = Virtuelle Maschinen
WVMs = Windows Virtuelle Maschinen
Das vorhandene Projekt ist ein Prozess um Linux so zu installieren, anzupassen und bereichern, dass es ein ganz individuelles Konzept darstellt, um alles zu bewältigen.
Diese Forschung bezieht sich auf eigenes Testen durch Experimente, nach kritischer Betrachtung der Bibliographie.
Der Kern des Projekts liegt in den letzten Kapitel, und obwohl manche Leser wollen nur diese betrachten, die Kapitel-Rangordnung wurde so festgelegt, um einen natürlicheren Informationsaufbau durch die Projektstufen zu ermöglichen und eventuelle Zusammenhänge leichter zu erkennen.
Nachstehend werden aber die Ziele der Kapitel reihenfolgend vom Kern zum Rand aufgelistet um die schwerwiegendere Abschnitte zu unterstreichen.
BS klonen und updaten als eigenes Rsync-Konzept
Portabilitätsbeschränkungen der BS-Klone erforschen
KVMs einsetzten, klonen, updaten, umbenennen und Windows-KVMs als Plan-B-Test
Partitionierungs-Konzept um alles getrennt zu speichern
Distro-Auswahl durch Multiboot
Rclone: Cloud-Speicher-Backends verschlüsseln und synchronisieren.
Gestapeltes, kryptographisches Gocryptfs-Dateisystem und Gpg mit Tar lokal einsetzen
Einfach und schnell alles mit SSH und RD vernetzen
Electrum-Bitcoin-Wallet: Installation, Transaktionen, Sicherheitsvorkehrungen
Paketverwaltung mit einer Vielfalt von Optionen
Font-Wiedergabe verbessern
Gnome-Anpassung durch Erweiterungen
Lösungen für die PDF-Problematik finden
LibreOffice-Mangeln überwinden
Eine Anwendungen für jede Aufgabe parat haben
Das System von unnötigen Dateien befreien
Hervorgetretene Anliegen die vom Ausmaß der erforderlichen Arbeit und Hardware nicht mehr im Rahmen des vorliegenden Projekts bewältigt werden könnten, wurde betreffend nur die Bibliographie überblickt mit dem Vermerk dass sie als Fortsetzungsprojekt geplant sind.
Betreffend die wichtigsten Punkte sind: Distro-Erstellung, KVM-GPU-Beschleunigung und Virtualisierung einer physischen Installation.
Linux ist „im Bau befindlich“. Es muss ständig gegoogelt werden um Puzzlestücke zu sammeln die oft gar nicht zusammenpassen.
Es gibt keine Anleitung in der alles über ein BS oder Programm steht.
In den Manpages sind die meisten Anwendungen gut dokumentiert. Eine Ausnahme ist ffmpeg, da vieles nicht dokumentiert wird, man kann viele Optionen auf ffmpeg.org auch schlecht finden.
Hierzu sind Blogs oder auch Youtube-Videos oft die einzigen Quellen. Ghostscript ist auch ein Fall wo Infos in den Manpages nicht komplett sind.
Die folgende hinweisende Liste versucht die Landschaft der unzähligen Quellen die beraten wurden zu schildern.
Die meisten Infos befinden sich in Frage-Foren, Foren, Blogs und Distro-Seiten.
Die größten Frage-Foren sind askubuntu.com und seine Verwandtforen: serverfault.com, superuser.com, stackoverflow.com und stackexchage.com.
Bezüglich Ubuntu und Gnome sind auch folgende Quellen vorhanden: help.ubuntu.com, ubuntu.com, ubuntuforums.org und wiki.ubuntu.com und extensions.gnome.org, bugs.launchpad.net
Reddit.com ist eine große Gemeinschaft mit zahlreichen Linux-Infos und github.com ist das Entwickler-Heim von Open-Source-Anwendugen.
Das ist ein Blog mit oft sehr präzise Infos und Anleitungen über komplizierte und exotische Themen.
Für LibreOffice, ask.libreoffice.org ist sehr hilfreich wie auch documentation.libreoffice.org, extensions.libreoffice.org, help.libreoffice.org, libreofficehelp.com und wiki.documentfoundation.org
Docs.gimp.org und imagemagick.org bieten Hilfe für Bild-Dateien.
Um Kubuntu zu testen, Infos finden sich unter kubuntu.org, community.kde.org, kde.org und userbase.kde.org.
Die größeren Foren sind sehr gut solange es um beliebte Themen geht. KVM- oder Xen-Virtualisierung sind etwa exotische Fächer die nicht viel in Foren diskutiert werden.
Die Distroseiten redhat.com und docs.fedoraproject.org, sowie das wiki.archlinux.org sind die Vorgabe-Quellen in dieser Hinsicht und anschließend spezifische Seiten wie libguestfs.org, libvirt.org, linux-kvm.org, spice-space.org und virgil3d.github.io.
Fedora und Redhat stellen außerdem zu Verfügung nützliche Treiber und Guest-Addons für Windows-Gäste.
Für Xen und Proxmox: xenproject.org, wiki.xenproject.org, citrix.com, proxmox.com
Hierzu wurde auch eine wissenschaftliche Arbeit „Performance Evaluation of Xen, KVM, and Proxmox Hypervisors“ betrachtet.
Hardware-Eigenschaften sollen auch recherchiert werden beispielsweise unter ark.intel.com für CPUs und unter crucial.com für Speicher.
Rclone.org bietet detaillierte Anleitungen und ein sehr hilfreiches Forum unter forum.rclone.org.
Gocryptfs unter nuetzlich.net/gocryptfs. Der Entwickler ist sehr hilfsbereit und antwortet auf Fragen unter github.com/rfjakob/gocryptfs/issues.
Für den Crypto-Wallet: electrum.org, electrum.readthedocs.io, bitcointalk.org, bitcoin.stackexchange.com, en.bitcoin.it, bitcoinops.org, kraken.com
Sehr gute Blogs mit Tutorials sind: fosslinux.com, geeksforgeeks.org, howtoforge.com, howtogeek.com, itsfoss.com, kifarunix.com, linuxconfig.org, linuxhint.com, linuxinsider.com, linuxize.com, linuxuprising.com, ostechnix.com, techrepublic.com, vitux.com.
Zwei ThinkPads: W530 und T520. Zwei externe Toshiba-Festplatten und verschiedene USB-Sticks.
Linux-Distros können in drei Hauptfamilien geordnet werden: Debian, OpenSuse und RedHat. Weitere bemerkenswerte Familien sind Archlinux und Gentoo.
Ubuntu ist debianbasiert und viele Distros sind wiederum ubuntubasiert.
Kommandozeile-Befehle sind im allgemeinen unterhalb der verschiedenen Familien kompatibel, mit der Ausnahme des Paketverwaltungssystems.
Distro |
Paketverwaltung |
Debianbasiert |
Apt |
RedHat |
Yum |
Fedora |
Dnf |
OpenSuse |
Zypper |
Archlinux |
Packman |
Gentoo |
Portage |
Weitere Erläuterungen unter https://en.wikipedia.org/wiki/List_of_software_package_management_systems
Aufgrund des Linux-Seminars wurden anfänglich, außer Ubuntu, auch OpenSuse und CentOS installiert.
Nach dem Seminar, auch folgende Distros wurden installiert: Deepin, Manjaro, MX, Debian, Fedora und Kubuntu.
Mint wurde als bereits installiertes System getestet.
Ohne viel Konfiguration, die Schriftwiedergabe lässt bei den meisten Distros viel zu wünschen übrig. Am Projektanfang, wurde einige Zeit mit Fedora um Verbesserung versucht, ohne zufriedenstellenden Erfolg.
Jedenfalls, in Ubuntu sehen wir von Anfang an, eine bessere Schriftwiedergabe, im Vergleich mit allen andern Distros die installiert wurden, und in Übereinstimmung mit den allgemeinen Meinungen von Foren und Blogs.
Schrift-Rendering sieht am schlimmsten in Browsern aus, weil viele Webseiten, MS-Schriftarten verwenden, die nicht gut genug durch entsprechende Linux-Schriftarten ersetzt werden. Der erste Schritt hierzu ist das Paket ttf-mscorefonts zu installieren mit
$ sudo apt install ttf-mscorefonts
und in Firefox „Seiten das Verwenden von eigenen statt der oben gewählten Schriftarten erlauben“ nur fallweise aktivieren.
Da müssen auch viele zusätzlich Schriftarten installiert. Texgyre und Roboto sind ein gutes Beispiel für Fonts die wir in Browsern brauchen, die nicht vorinstalliert sind. Je mehr Schriftarten installiert werden, desto erhöhen sich die Chancen, dass die Schriftart die wir lesen wollen, oder deren bestmöglichen Ersatz, verfügbar ist.
Zu diesem Zweck ist das Fontocofig-Config-Paket automatisch installiert: „Konfiguration Fontconfig ist eine Bibliothek zur Konfiguration und Anpassung von Schriften, die nicht vom X Window System abhängt. Sie wurde entwickelt, um Schriften innerhalb des Systems aufzufinden und gemäß der Anforderungen auszuwählen, die von Anwendungen gestellt werden.“ (Von der Paketbeschreibung.)
Für eine mehrfache Installation von kleinen Paketen wie Schriftarten, ist Synaptic, die zuerst installiert werden muss, die bessere Lösung, und das war auch der einzige Fall im Projekt dass das Apt-Frontend zur Befehlszeile bevorzugt wurde.
Eine angepasste Fonts.conf-Datei kann auch eingesetzt werden. Das wurde in Fedora unternommen, aber in Ubuntu und Kubuntu war es nicht nötig. Canonical, die Firma hinter Ubuntu, hat sogar die Entwicklung eigener Schriftarten finanziert, die sehr gelungen sind.
Für BSs wie CentOS und Debian muss man viel mehr Zeit widmen.
Bei CentOS die einzige Installations-ISO die funktionierte, war 11GB groß. Vom GUI fehlen auch viele „Selbstverständlichkeiten“.
Bei Debian, die übliche Installations-ISO, enthält nicht mal WLAN-Routerntreiber. Man muss dann eine andere nehmen, die nicht nur „Super-Open-Source-Treiber“ enthält. Es fällt gleich auf, dass mit dem GUI und der Schriftartwiedergabe viel unternommen werden muss.
Als Debian installiert wurde, auf einer nächstliegenden Partition war Fedora installiert. Nach der Debian-Installation, verschwand von Fedora jeder Hinweis von WLAN, also nichts unter Einstellungen. Gleichzeitig waren auf der gleichen Festplatte auch Ubuntu, OpenSuse und Centos installiert und war ihnen nichts passiert. Darüber, dass in Fedora plötzlich das WLAN verschwindet, gibt es viele Ergebnisse beim Googeln.
Andererseits, Ubuntu erkennt oft WLAN-Router die andere Distros nicht erkennen.
KDE ist eine Desktop-Umgebung, die für Anwender die von Windows kommen, angenehmer als Gnome sein kann. KDE ist aber nicht so ausgereift wie Gnome. Das ist der Grund dafür dass viele Distros, Gnome als Vorgabe-DE verwenden.
Für manche, KDE wirkt ein wenig wie Bloatware, das war aber hier nicht das Problem. Manche Programme und BS-Funktionen wie auch die Zuverlässigkeit des gesamten Systems, stehen nicht auf einer Stufe mit Ubuntu.
Das Schlimmste war das LibreOffice. Die Icons sind zu groß und mit falscher Skalierung. Man kann sie zwar deaktivieren aber nicht von überall.
Diese Distro hat wirklich sehr viel Bloat, und bringt sogar ein paar Konzepte mit, die wir nur von Windows kennen, wie z.B. dass der Benutzer keine BS-Updates ausschließen kann.
Nach vielen Versuchen, die endgültige Wahl des Projekts fiel auf Ubuntu mit der Vorgabe-Gnome-Desktop-Umgebung.
Bei manchen Distros existiert ein Zusammenhang mit einer Firma wie im Fall von RHEL, CentOS und Fedora, mit RedHat, so beim Ubuntu, mit der Firma Canonical.
Das ist nicht bedenklich, da Ubuntu Open-Source ist, und Canonical hauptsächlich Support verkauft.
Im Projekt wurde GPT mit Ext4-Partitionen verwendet.
LVM hat im Vergleich einige Vorteile, ist aber viel Komplexer, weist eine höhere Gefahr von Datenkorruption und -verlust auf und hat zusätzliche Streitpunkte: Es wird deshalb in einem künftigen Projekt getestet werden.
Wenn wir frei experimentieren wollen, ohne dass wir das BS ein zweites Mal von Grund auf installieren und konfigurieren müssen, sind viele bootfähige Klone eine sehr gut Lösung.
Um diesen Ansatz nicht unnötig zu komplizieren wurden keine einzelnen Partitionen für ein Home-Verzeichnis verwendet, sondern separate Partitionen für persönliche Daten.
Am W530, eine WD10JPLX Festplatte mit 1TB Speicher, wurde in 18 Partitionen zerteilt. Die ersten vier waren anfangs Windows-10 spezifisch, wurden aber nie dafür verwendet, weil im Laufe des Projekts das Interesse für Windows nachließ, so dass sie nur in VMs verwendet wurden.
Windows-10-Gäste waren als Plan-B gedacht, falls man unbedingt ein Programm braucht, dass nur unter Windows vorhanden ist.
Dieser Ansatz wurde schließlich auch abgeschafft, für Gründe die weiter unten allmählich erläutert werden.
Zwei externe 1TB groß Toshiba-Festplatten sind für Backups vorhanden, aber auch für externe Ubuntu-Installationen eingesetzt.
Der T520 wurde ähnlich wie der W530 partitioniert, aber mit einer 320GB-Festplatte.
Die Sda-Festplatte unten, stammt vom T520-ThinkPad, und die Sdb ist eine Toshiba externe Festplatte. Beide Festplatten wurden ähnlich partitioniert.
Die zwei ersten Partitionen sind ESP, also EFI-System-Partitionen, und es sind deswegen zwei, falls eine Distro eine eigene Partition für den Bootloader benötigt. Fstype ist Vfat, wenn eine Windows-Installation auch anwesend wäre, sonst könnten die ESPs auch mit Ext4 formatiert werden.
Kubuntu, kubuntu-clone und kubuntu-test, sind bootfähige Klone, so angenommen ein BS unbehebbare Fehler aufweist, kann die nächste Partition gebootet werden.
Auf den zwei letzten Partitionen sind OpenSuse und CentOS installiert.
Sdb ist eine externe Festplatte, und von
ihrer Sdb7-Partition ist Ubuntu 20.04 LTS gebootet, Sdb1 ist an
/boot/efi angehängt und eine aktive
Swap-Partition ist auch vorhanden.
7ubui1, 8ubui2 und 9ubui3 sind ebenfalls Klone, im Sinne der Kubuntu-Klone an der Sda.
10ubuc2, 11ubuc5 und 12ubuc6, sind Klone des Ubuntu-BS vom W530-Thinkpad, und die 13kubui1 und 14kubui2, sind Klone des Kubuntu-Haupt-BS auf dem T520-Thinkpad. Auf der Partition Vmsc3 befinden sich Kopien virtueller Maschinen.
Die Sda4-data, ist eine größere Partition wo alle Personaldaten gespeichert werden, so dass unabhängig davon welche Partition gebootet wird, der Zugriff auf die privaten Daten nur das Einhängen der Data-Partition erfordert.
Die Dataei-Partition hat Sicherungskopien der persönlichen Notebookdaten, und Datani ist eine kleine NTFS-Datenpartition.
Die gleichen Grundgedanken wie bei dem T520 wurden hier auch befolgt.
Zwei ESPs, eine Swap-Partition, Datae ist die persönliche Datenpartition, Vms, Vms2, Vms3 und Vms4 sind Partitionen für virtuelle Maschinen, Datan ist für Ntfs-Daten, 14ubuk2, 15ubuk3 und 16ubuk4, sind drei Klone des BSs.
Damit schnell und leicht mit dem Ein- und Aushängen von Partitionen geht, können wir in Fstab, angepasste Einhängepunkte eintragen.
Diese sind dann mit Label und nicht mit UUID gekennzeichnet, damit sie leicht erkennbar sind.
Ein Label kann während der Erstellung einer Partition mit verschiedenen Programmen zugewiesen werden, wie mit dem Mkfs-Program.
Nachträglich kann ein Label mit
$ sudo e2label /dev/sdxx <label>
eingetragen werden.
Die zwei letzten Einträge sind von Ntfs-Partitionen. Es muss hier bemerkt werden dass sie ganz andere Einhängeoptionen als die Ext4-Partitionen brauchen.
Unsere Pakete dürfen mittels zwei Befehlen aktualisiert werden.
$ sudo apt update - Paketinfos holen
$ sudo apt upgrade - Pakete aktualisieren
Wir suchen nach Paketen in den Repos mit Schlüsselwörtern wie folgt:
$ unbuffer apt search -f <schlüsselwort> | less -R
Die Ergebnisse vom „apt search“ sind teilweise farbig. Aber um die Bild-auf- und Bild-ab Taste zu verwenden, pfeifen wir less dazu, aber gehen dann die Farben verloren.
Unbuffer, das zuerst installiert werden muss, arbeitet mit der -R Fahne von less zusammen, um die farbige Ausgabe zu bewahren.
Die -f Option bedeutet full, deshalb kann sie abwechselnd eingesetzt werden, um die Ausgabe zusammenfassend oder mit vollen Beschreibungen zum Drucken.
Um ein Paket zu installieren,
$ sudo apt install <paketname>
Wir entfernen Pakete mit
$ sudo apt remove <paketname>
Es bleiben aber die Konfigurationen gespeichert falls wir das Paket nochmals installieren wollen. Ein Paket und seine Konfigurationen entfernen wir mit
$ sudo apt purge <paketname>
Die Paketverwaltung ist auch mittels Synaptic möglich, dass weiter oben erwähnt wurde, ist ein GUI-Frontend für Apt, und muss zuerst installiert werden.
Entsprechend der Paketverwaltung durch die Repos, müssen die Software-Entwickler ein einzelnes Installationspaket für jedes Paket-Verwaltungssystem: Apt, Yam, Dnf, Zypper usw., erstellen müssen.
Snap wurde 2014 von Canonical freigegeben und 2016 wurde in die Distro-Mehrheit portiert. Snaps können universal installiert werden und vereinfachen die Entwicklerarbeit.
Durch Snaps ist es auch möglich freie Versionen von Closed-Source-Anwendungen, wie Skype zu installieren, was durch die Repos unmöglich ist.
Folgend werden Snapbefehle-Beispiele angeführt.
$ snap find <paketname>
$ snap install <paketname>
$ snap remove <paketname> - Confs werden nicht entfernt
$ snap remove --purge <paketname> - Confs werden entfernt
$ snap list - Installierte Snaps anzeigen
PPAs sind private Repos, wodurch Pakete installiert werden können, die in den offiziellen Repos nicht vorhanden sind, aber weil sie auch Repos sind, deren Pakete werden zusammen mit den offiziellen aktualisiert.
Um ein PPA hinzufügen und ein dazugehöriges Paket zu installieren werden folgende Befehle gebraucht.
$ sudo add-apt-repository ppa:<ppa übergeordnetes verzeichnis>/<paketverzeichnis>
$ sudo apt update
$ sudo apt install <paketname>
Closed-Source-Programme wie Foxit-PDF-Reader und Master-PDF-Editor, werden oft als Dateien mit einer .deb Erweiterung angeboten.
Die werden installiert mit
$ sudo dpkg -i <paketpfad>
Es ist auch möglich
$ sudo apt install <paketpfad>
es kann aber sein dass apt install, keine Meldung über fehlende Abhängigkeiten gibt.
Wenn apt search einen Paketzustand als [installed, local] anzeigt, es handelt sich um ein Deb-Paket dass manuell installiert wurde.
Wenn das Paket aktualisiert werden soll, aber kein offensichtlicher GUI-Weg dafür verfügbar ist, suchen wir das Paket zuerst suchen mit
$ dpkg -l | grep <paketname>
Paket entfernen mit
$ dpkg -r <paketname>
Der Befehl
$ locate <paketname>
zeigt immer noch Dateien wie postinst und porstrm.
Apt search zeigt deren Zustand als [residual config]
Man sollte diese Pakete nicht entfernen, so dass wenn das neue Paket installiert wird, können die alten Konfigurationen dadurch aufgenommen werden.
Ubuntu-Software ist die einfachere GUI-Variante ein Programm zu installieren, was im Projekt nie angewendet wurde.
Beim ersten Kontakt, wirkt Gnome etwas fremd für Benutzer die von Windows kommen. Es sollten zuerst die Pakete: Optimierungen und Dconf-Editor installiert werden, und daraufhin verschiedene Erweiterungen. So kann das Look-and-Feel sehr angepasst werden.
Wo nicht angepasst werden kann, das sind die Desktop-Verknüpfungen. Es können Icons zum Desktop nur wenn in den Ordner /home/<benutzer>/Desktop eingefügt werden.
Wenn wir Linux lernen wollen, müssen wir unausweichlich einiges anders machen als bei Windows. Der Desktop sollte nur um ein schönes Bild zu zeigen verwendet werden. Da können auch Icons als Deko verwendet, aber lieber nicht als Verknüpfungen.
Einige Extensions dürfen durch die Paketverwaltung installiert werden.
Zusätzliche Erweiterungen können entweder von extensions.gnome.org installiert werden oder auch manuell:
Zuerst unter /home/<benutzer>/.local/share/gnome-shell/ einen Ordner namens <extensions> erstellen.
Dann von extensions.gnome.org eine Erweiterung in den <extensions> Ordner herunterladen.
Entpacken und die Datei metadata.json aufmachen.
Die UUID-Beschreibung kopieren, die innerhalb der Anführungszeichen steht, und damit den Erweiterung-Ordner umbenennen.
Alt+F2 und im Kommandofenster „r“ geben um die Shell neu zu starten.
Dash-to-Panel ist eine Extension die uns sehr viele Anpassungsmöglichkeiten gibt. Damit ist eine vielseitige Taskleiste gemeint, die die Ubuntu-Erfahrung um einiges verbessert, und womit Neuankömmlinge etwas freuen können.
Jede Desktop-Umgebung hat Vorgabe-Programme. Es ist aber möglich solche Programme auch in anderen DEs zu installieren.
Der Dateimanager von Gnome, Nautilus, ist nicht so anpassbar und atemberaubend, kann er aber leichter als andere Dateimanager, Netzwerken mit Samba-Shares und Android unter anderem.
Als täglicher Dateimanager wirkt aber Nemo von
Cinnamon-DE, viel besser.
Wiederum, wenn uns Dateien-Vorschauen wichtig ist,
da wäre Dolphin von KDE besser.
Alle drei Dateimanager können ergänzend verwendet werden.
Im Terminal ein guter und leicht zum lernen Editor, ist Nano.
Betreffend GUI-Editoren, der Vorgabe-Gnome-Texteditor ist auch nichts besonders. Kate, wieder von KDE, hat nur Vorteile und ist nicht so schwer wie andere.
Diese Programme sind ein Spezialfall wegen der allgemeinen Ansicht, dass wir unter Linux große Schwierigkeiten mit Pdf-Editors haben, was nur teilweise trifft.
Poppler, die PDF-Darstellungsbibliothek mit der die meisten Open-Source-Frontends arbeiten, muss allerdings noch weiterentwickelt werden.
Eine gute Auswahl ist der PDF-Editor Okular, schon wieder von KDE. Bei den meisten Dokumenten ist die Fontwiedergabequalität sehr gut.
Es können zwar mit Okular Dokumente editiert werden, aber zwischen anderem, Formen werden nicht unterstützt, und die Schreibfunktion ist bei speziellen Zeichen wie griechische und asiatische Buchstaben fehlerhaft, da sie teils unsichtbar werden.
Unten, wird im Okular eine Seite von „The Linux Command Line“ vom William Shotts http://linuxcommand.org/tlcl.php angezeigt.
Zwei nennenswerte gewerbliche Linux-PDF-Editors sind verfügbar. Master-PDF-Editor (MPE), $69,95 pro Lizenz, das schon im Projekt als Demo getestet wurde und Qoppa-PDF-Studio Pro, $129 für zwei Geräte, nur als Trial anwendbar ohne es zu kaufen, das teurer als der MPE ist, aber laut Rezensionen auch besser.
Im MPE-Demo, sind alle Funktionen zwar verfügbar, bei den meisten Editorfunktionen wird aber ein Wasserzeichen im Dokument erzeugt.
Die Schreibfunktion ist im Demoversion jedenfalls freigegeben, aber Akzente wahlweise auf Buchstaben zu setzen, wie in der griechischen Sprache ist nicht möglich.
Ein Bild von MPE folgt, in dem OpenSuse-Reference, erhaltbar von https://doc.opensuse.org/ angezeit wird.
In einem Fontwiedergabe-Vergleich zwischen Okular und MPE, gewinnt MPE grenzwertig. Es gibt zu verstehen dass MPE eine eigene Rendern-Bibliothek verwendet und nicht das Poppler-Backend.
Weil die PDF-Editors bezüglich Office-Arbeit notwendig sind, um offizielle Formulare auszufüllen unter anderem, es ist zu beachten, dass das MPE-Demo Formen unterstützt im Gegensatz zum Okular, und dass durch deren Bearbeitung kein Wasserzeichen während des Testens entstand.
Seit 2012, existieren keine Linux PDF-Programme mehr von Adobe.
Foxit-PDF-Reader wurde getestet mit dem Ergebnis dass Ubuntu manchmal komplett einfror.
Eine andere Lösung zur PDF-Problematik unter Linux, ist LibreOffice-Draw.
Anfangs werden wir aufgrund von den zwei folgenden Problemen abgeschreckt.
Wenn wir eine größere PDF-Datei mit Draw öffnen, dauert es relativ lang und fängt auch der CPU-Lüfter zu arbeiten.
Dann wenn wir mit der Maus eine Seite ziehen wollen wird vielleicht die PDF-Schicht von der Grundschicht weggezogen, in der Art und Weise von Gimp.
Zudem, eine quadratische Textbegrenzung wird angezeigt, die vom PDF-Text rechts und links überschreitet wird, und störend erscheint.
Zuerst die Pdf-Datei mit dem nativen Odg-Format speichern.
Optionen/LibreOffice/Anwendungsfarben/Textbegrenzungen deaktivieren.
Die Datei soll künftig mit der Odg-Erweiterung verwendet werden und nur wenn sie z.B. per E-mail gesendet sollte, wird wieder als Pdf-Datei exportiert.
Wenn unser Dokument mit einer bestimmten Schrift standardmäßig bearbeitet werden soll, es reicht nicht eine neue Vorlage als Vorgabe zu setzen.
Die Standardschrift ist hardcoded in LibreOffice und kann nicht (auf einfache Weise) geändert werden wie die Dateien Normal.dot und Nomal.xlt unter Windows.
Wir müssen also wie im Link Associating a document with a different template erläutert wird, vorgehen.
Datei/Dokumentvorlagen/Dokumentvorlage öffnen.
Die gewünschte Vorlage öffnen.
Den gesamten Inhalt unseres Dokuments mit Strg+A und Strg+C kopieren und mit Strg+V in das neue leere Dokument einfügen und speichern.
Jetzt kann endlich die Schreibfunktion durch die Auswahl von „Textfeld einfügen (F2)“ verwendet werden, die schon mit der gewünschten Schrift permanent konfiguriert ist. Rechtschreibung-Überprüfung ist auch verfügbar wie nur in den teureren Pdf-Editors.
Noch besser, da LibreOffice-Draw andere Rendern-Bibliotheken einsetzt und nicht das Pdf-Poppler-Backend, die Schriftwiedergabe sieht etwas besser als im Okular aus.
Große Minuspunkte gibt es aber trotzdem: Unterschiedliche Abstände zwischen Wörtern im Text, und die Lesezeichen, Hyperlinks etc. gehen jetzt alle verloren. Der Text ist aber noch suchbar.
Das ist ein Skript von Gutschke dass die Daten einer Pdf-Datei in Bildlern umwandelt. Die Datei bekommt eine Odt-Erweiterung und kann unter LibreOffice-Writer annotiert werden.
Skript herunterladen, unter ~/bin - gegebenenfalls Verzeichnis zuerst erstellen - speichern und ausführbar machen mit
$ chmod +x pdf2odt
Das Skript scheint einwandfrei zu
funktionieren als mit der Konvertierung einer Pdf-Datei von 200
Seiten getestet wurde.
Um Dokumente zusammen zu setzten und individuell zu ordnen ist der Open-Source PDF-Arranger die beste Wahl.
Das MPE-Demo ist die einzige freie Möglichkeit interaktive Formen auszufüllen. Die Schreibfunktion ist frei, zwar etwas fehlerhaft für manche Sprachen, aber auf Deutsch wird problemlos geschrieben. Okular kann auch Deutsch schreiben, aber griechische und asiatische Buchstaben sind teilweise unsichtbar. Er unterstützt keine interaktiven Formen, wie das MPE-Demo, aber er kann unterstreichen und einfache Formen zeichnen, was beim MPE-Demo nicht freigegeben ist.
Die beide Anwendungen können also ergänzend eingesetzt werden.
Das Pdf2odt-Skript, ist sehr gut wenn wir nicht interaktiv, Formen in mehreren Sprachen und mit Rechtschreibungs-Überprüfung ausfüllen wollen, und auch dementsprechend besser als LibreOffice-Draw da mit dem Pdf2odt, entstehen keine unnatürlichen Abstände zwischen Wörtern.
Wenn wir was professionelleres unbedingt haben wollen, ist der Kauf von Qoppa-PDF-Studio-Pro an erster Stelle oder von Master-PDF-Editor an zweiter Stelle, nötig.
Andererseits, die Linux-Phylosophie ist gleichzeitig mit mehreren Tools zu arbeiten die gegenseitig ergänzend sind.
Was unter dem Überschrift „LibreOffice-Draw als PDF-Editor“ über Vorlagen erwähnt wurde, gilt für alle LibreOffice-Anwendungen.
Die Auferstehung einer überholten Erweiterung, die „Template Changer“ heißt, soll das Ändern einer Vorlage erleichtern, die Kompatibilität ist aber laut Entwickler bis LO-Version 6.3 und wurde im Projekt nicht getestet.
Insofern können Soft-Links, kurzum Symlinks, verwendet werden, wobei die Symlink-Datei parallel mit der Quelle-Datei, betrachtet werden kann.
Einen Symlik erstellen mit
$ ln -s <quelldatei> <link-datei>
Um die Linkdatei zu aktualisieren, durch Alt+F4 schließen, und mit
$ libreoffice <link-datei>
neu starten.
Bei einer Umbenennung der Quelldatei, die Linkverbindung mit
$ ln -sf <quelldatei> <link-datei>
aktualisieren.
Die Linkverbindung zur Quelle wird mit ls im
Terminal angezeigt.
Unter https://help.ubuntu.com/community/AptGet/Howto wird der untere Befehl empfohlen und kurz beschreibt. Beim Xargs wurde die Option -p oder --interactive aus Sicherheitsgründen zugefügt.
$ dpkg -l | grep '^rc' | awk '{print $2}' | sudo xargs -p dpkg --purge
dpkg -l - Paketliste ausdrucken.
grep '^rc' - Druckt Pakete aus, die entfernt wurden, wobei deren Konfigurationsdateien noch vorhanden sind.
awk '{print $2}' - Druckt die zweite Spalte aus.
xargs - Bereitet Befehlausführungen aus der Liste dass awk ausgedruckt hat, und leitet diese an dpkg weiter.
-p - Interaktiv
--purge - Entfernen samt Konfigurationsdateien
Da xargs kein deutsch versteht auch wenn die BS-Sprache auf Deutsch umgestellt ist, müssen wir bezüglich der -p Fahne, mit yes statt ja antworten.
$ sudo apt autoremove
$ sudo apt-get clean
Löscht alles unter /var/cache/apt/archives/ und /var/cache/apt/archives/partial/ bis auf die Lock-Datei.
Alles unter /var/lib/snapd/cache löschen, was im folgenden Hyperlink erläutert wird.
https://askubuntu.com/questions/1075050/how-to-remove-uninstalled-snaps-from-cache
Wenn wir
$ sudo apt purge <paketname>
verwenden, werden auch die Konfigurationsdateien der Pakete entfernt, aber nicht der versteckten Konf-Dateien im persönlichen Ordner, deren Name mit einem Punkt anfängt, die müssen manuell gelöscht werden.
Die Festplattenbelegungsanalyse ist ein schönes graphisches Tool, um einen Überblick der Verzeichnisse- und Dateiengrößen zu gewinnen, um selektiv Daten zu löschen.
Zuerst muss überprüft werden ob alle relevanten Pakete und Bibliotheken an beiden Seiten installiert sind. Mit
$ ssh benutzer@ip-adresse
können wir uns mit dem Server verbinden, und durch
$ ssh -X benutzer@ip-adresse
ist es möglich GUI-Anwendugen des Servers im Client zu verwenden, kurzum eine Weiterleitung des X11 Fenstermanagers.
Eine private IP-Adresse kann mit
$ ifconfig | grep -E 'inet.*192'
ermittelt werden. Hier sehen wir IP-Adressen von zwei Netzwerk-Schnittstellen. Das erste Netzwerk, dass 122 einbezieht, ist für die KVMs, und das zweite, dass 31 enthaltet, für das WLAN.
Hier wird z.B. ein Daten-Backup synchronisiert.
$ rsync -aAXsh --delete --preallocate --info=progress2,stats2 -e ssh <quelle> benutzer@ip-adresse:<ziel>
Im Vergleich mit dem Klonbefehl, darf für ein Daten-Backup die Fahne -H fehlen, wenn keine Hardlinks anwesend sind.
-e - Weist Rsync an, welches Netzwerkprogramm angewendet wird. Diese Option muss unmittelbar vor SSH stehen. Wenn nicht, funktioniert zwar SSH, aber alle Fahnen zwischen -e und ssh werden nicht aufgeführt.
Man kann den Rsync-Vorgang mit den Tasten Strg+Z unterbrechen. Um fort zu fahren,
$ jobs
um die Nummer des angehaltenen Job zu zeigen, und
$ fg <job-nummer>
um Rsync wieder fortzusetzen.
fg - Foreground
Die Bildqualität der nativen Remnina-Anwendung von Ubuntu war mit der Vorgabe-Konfiguration nicht überzeugend.
NoMachine ist zwar Closed-Source-Software, aber mit einer freien Version für Linux und insgesamt hat im Projekt gut abgeschnitten.
TeamViewer is sehr beliebt und bietet auch eine freie Version an, hat aber im Vergleich mit NoMachine keine bessere Bildqualität aufgewiesen.
Sollte vermerkt werden dass TeamViewer 2016 gehackt wurde. Der Südweste Presse nach: „Einen Anlass, die Kunden über den Angriff zu informieren, sah die Firma damals nicht.“
Remote-Desktop ist zwar sehr praktisch, kann es aber auch gefährlich werden, weil dadurch viele Sicherheitsvorkehrungen umgehen werden können.
Folgend sehen wir Ubuntu 20.04-LTS, natives BS, ein NoMachine-Client verbunden mit Ubuntu-Server auf einem anderen Laptop mit dem Wintersee-Hintergrund, und auch zwei KVM-Gäste: Windows und Ubuntu.
Beim Projekt-Testen mit ssh -X liegt keine Frage von Bildqualität und Auflösung vor. Es ist alles nativ, und muss nach dem Benutzer- und Hostname gesucht werden um heraus zu finden auf welchem Computer gerade gearbeitet wird.
SSH Desktop-Tunneling wäre auch möglich mit VNC, das wurde im Projekt aber nicht getestet.
Beim Remote-Desktop zwischen den zwei Laptops, W530 und T520, war die Bildqualität mit keinem Programm genau so gut wie nativ. Der Grund dafür: Wenn der Server eine viel niedrigere Auflösung als der Client hat, werden die Schriftarten sehr klein angezeigt. Bei einer Vergrößerung des RD-Fensters und Anpassung der Auflösung, wird natürlich alles verschwommen.
Optimal funktioniert RD folglich zwischen Maschinen mit ähnlichen Bildschirmauflösungen.
Alles in allem, SSH mit oder ohne die X Fahne, funktioniert tadellos, und RD wurde weniger eingesetzt.
Unten sehen wir den gleichen NoMachine-Client von oben, mit Ubuntu-Server ki@dusk im zweiten Laptop.
ki@dusk weist seine IP-Adresse mit
$ ifconfig | grep -E 'inet.*192'
vor.
bi@green, das native BS vom Laptop, verbindet sich mit ki@dusk
$ ssh -X ki@192.168.31.235
Danach mit
$ nemo
wird Nemo von ki@dusk, auf dem Desktop von bi@green aufgerufen.
Im oberen Bild ist es deutlich dass die Schriftarten des Servers sehr klein angezeigt werden, wie weiter oben erwähnt wurde.
Von Windows kennen wir nur eine BS-Image-Sicherung. In Linux ist für diesen Zweck möglich, einfach alle Dateien samt verschiedener Eigenschaften zu kopieren.
Rsync ist das Terminalprogramm für diese Aufgabe.
Es sind auch Rsync-GUI-Frontends vorhanden, mit geliebtestem das, in Mint vorinstalliert, Timeshift. Es wurde einmal erfolglos damit versucht eine Fedora-Installation wiederherzustellen.
Rsync hat so viele Optionen, die wurden nie in eine GUI reinpassen.
Nach sehr vielen Experimenten wird immer mit Erfolg folgendes verwendet:
# rsync -aAHXsh --delete --preallocate --info=progress2,stats2 <quelle>/ <ziel>/
-a - Archivierungsmodus, und impliziert, beinhaltet, die Fahnen -rlptgoD, aber nicht -AHX
-r - Eine rekursion in den Ordnern durchführen
-l - Symlinks
-p - Zugriffsrechte
-t - Änderungszeiten
-g - Gruppen
-o - Eigentümer
-D - Geräte- und Spezielldateien
-A - ACLs (impliziert -p)
-H - Harte Links
-X - Erweiterte Attribute
-s - oder --protect-args - Leerzeichen werden nicht in Namen gespaltet. Das kann uns schützen wenn irgendwo aus versehen Dateinamen mit Leerzeichen vorhanden sind. Diese Option wird eventuell eine neue Standardeinstellung von Rsync.
-h oder --human-readable
--delete - Dadurch werden alle irrelevante Daten, die nicht in der Quelle vorhanden sind, vom Ziel gelöscht. Auf dieser Weise wird das Ziel ein Spiegelbild der Quelle.
--preallocate - Die größeren Dateien werden angrenzend gespeichert, und das Dateisystem wird nicht fragmentiert. Allerdings kopiert Rsync etwas langsamer dadurch.
--info=progress2,stats2 - Hier wird der Fortschritt angezeigt und zum Schluss Statistiken: wie viele Dateien wurden erstellt, gelöscht usw.
Der Schrägstrich an der Quelle ist sehr wichtig, weil ohne ihn, werden nicht die Inhalte des Ziels aktualisiert, sondern die Quelle wird ins Ziel kopiert, also dadurch werden die Daten durch eine Synchronisierung sich verdoppeln.
Der Befehl darf nur als Root ausgeführt werden.
Das Quell-BS darf nicht gebootet sein.
Es wurde versucht den Befehl von einer unabhängigen Partition der gleichen Festplatte auszuführen. Der Klon bootet nicht, und wenn wir die Dateien der Quelle und des Ziels mit
sudo find <Pfad> | wc -l
zählen, fehlen vom Klon ungefähr 10 Dateien.
Es ist also notwendig, aus einem externen BS den Befehl auszuführen.
Die offensichtliche Lösung wäre vom üblichen Ubuntu-Live-USB zum Rsyncen. Wenn dieser Vorgang aber öfters durchgeführt wird, ist das nicht optimal. Eine bessere Lösung ist ein Persistent-Live-USB.
Mit dem Programm Mkusb, ist das unter Ubuntu sehr leicht zu bewältigen. Dadurch wird eine zusätzliche Casper-Partition erstellt, worauf Programme und Benutzereinstellungen installiert und gespeichert werden. Es wird außerdem eine Partition für Daten erstellt.
Unten wurde die Partition 14ubuk2 auf die
16ubuk4,
von einem Persistent-Live-USB, synchronisiert.
Auf der Notebook-Festplatte sind immer drei Klone vorhanden. Im Fall eines unbehebbaren Fehlers, stehen zwei bootfähige Klone immer parat.
Hierfür ist es wichtig häufig genug die Klone zu synchronisieren, so dass wenn wir einen anderen Klon einsetzten, nicht über viel verlorene Arbeit ärgern müssen.
Bezüglich externer Klone, anfangs wurden sie auf USB-Sticks verschiedener Hersteller erstellt und synchronisiert aber später nur auf Toshiba externe Festplatten.
Die USB-Sticks auch wenn USB3, weisen im Vergleich mit den externen Festplatten, eine viel niedrigere Geschwindigkeit auf, sie werden sehr heiß und auch schnell korrupt. SSDs sind in Bezug darauf auch nicht geeignet dass vom ständigen Schreiben schnell abgenutzt werden.
Auf Verlängerungskabeln muss auch aufgepasst werden, da viele USB3-Kabel, die externen Festplatten nicht richtig erkennen. Die dickere Version von Oricokabeln haben sich verlässlich erwiesen.
Ferner, die externen Festplatten wurden genau so wie die internen partitioniert und ihre Klone werden auch bootfähig. Die funktionieren aber nur in Verbindung mit demjenigen Computer von dem sie kopiert wurden, die sind nicht portabel. Dazu wird es später verfeinert.
Damit die Klone booten können, müssen in der FSTAB-Datei, die richtigen UUIDs für alle relevante Partitionen geschrieben werden: also die UUID der Rootpartition brauchen wir immer, und wenn die Klone von einem externen Laufwerk booten sollen, wo wir auch ESP- und SWAP-Partitionen erstellt haben, die sollen auch umgeschrieben werden.
$ lsblk -fm
Die Ausgabe druckt UUIDs für alle Partitionen aus.
$ sudo nano <Klonpfad>/etc/fstab
Nach langer Forschung, der rEFInd-Bootmanager von Roderick W. Smith hat sich als bester UEFI-Bootloader erwiesen. Der kann auf der Festplatte installiert werden, aber es ist besser ihn von einem USB-Stick zu betreiben.
Alle GPT/UEFI-Linux-Systeme können damit gebootet werden, ohne dass vom BS ein Bootloader in Anspruch genommen werden muss. Einfach mit F12 oder ähnliches das Bootmedium auswählen, rEFInd-Live-USB booten, Klon auswählen, dazu werden die Partitionbezeichnungsnamen aufgelistet, und booten.
Im nächsten Bild ist das W530-Thinkpad links mit einem Ubuntu-BS und rechts das T520-Thinkpad mit dem rEFInd-Bootloader-Menü.
Folgend sind drei Ubuntu-Klone auf der
externen Festplatte von T520-Thinkpad,
und Kubuntu, OpenSuse und CentOS auf der
Festplatte des T520-Thinkpads.
Jedes Mal wenn Klone aktualisiert werden,
wird es von einem anderen Klon gebootet um sicher zu stellen, dass
alles einwandfrei funktioniert.
Bevor ein Klon zum ersten Mal gebootet wird, erkennen wir beim genauen Hinsehen des Dateisystems, dass einige Links als gebrochen aufgelistet sind, die werden aber beim Booten aufgebaut.
Wenn ein Klon zum ersten Mal geboot wird,
$ lsblk -fm
um sicher zu stellen dass /, /boot/efi und [SWAP] an den richtigen Partitionen eingehängt sind.
Um GRUB zu installieren
$ sudo grub-install /dev/sdx
Sdx ist meistens Sda. Dann GRUB aktualisieren mit
$ sudo update-grub
Wenn wir neu booten steht unsere neue Arbeitspartition schon an der ersteln Stelle vom GRUB-Bootmenü.
Ubuntu-Systeme die auf einer internen Festplatte installiert wurden, könnten im anderen Laptop des Projekts nach vielen Fehlermeldungen booten, aber kurz danach frieren immer ein. Kubuntu-Systeme obwohl theoretisch auch Ubuntu sind, könnten beim oberen Versuch gar nicht booten.
Die BS-Klone können problemlos auf einer externen Festplatte eingesetzt werden so lange die externe Festplatte mit dem Klon-Quelle-Laptop verbunden ist, aber nicht wenn die externe Festplatte am anderen Laptop angeschlossen wird.
Installationen die auf der externen Festplatte von einem Notebook durchgeführt wurden, haben am anderen Laptop funktioniert aber anfangs mit folgenden Problemen.
Funktionierende Lösungen wurden von https://askubuntu.com/questions/1032624/ubuntu-18-04-authentication-error-on-loging-after-lock entnommen.
Am Ende der Dateien
/etc/sysctl.d/99-sysctl.conf und /etc/sysctl.conf
die Zeile
fs.inotify.max_user_watches = 524288
hinzufügen, und dann
$ sudo sysctl -p
$ sudo dpkg-reconfigure gnome-shell
Alle SSH-Packete wurden per „sudo apt purge“ enfernt und wieder installiert.
Das war ein Misserfolg, weil die USB-Sticks fangen, vom ständigen Schreiben, schon nach 10 Tagen, korrupt zu werden an.
Die Option von einem Persistent-Live-USB, die weiter oben diskutiert wurde, kann nicht als Haupt-BS verwendet werden. Es wird schnell deutlich dass nicht alle möglichen Pakete installiert werden können, und wenn ein solches System ständig aktualisiert wird, ist es auch schnell korrupt, nach Forenberichten und -anweisungen.
Da sind meistens Konfigurationen die übertragen werden, die Pakete müssen wieder manuell installiert werden.
Probleme treten hier auf, wenn das BS dass mit dem Home-Verzeichnis synchronisiert wurde, einen anderen Benutzername hat. Weiter unten, unter dem Überschrift „VM umbenennen“ wird erläutert wie der Benutzername richtig geändert werden kann.
Unter Linux ist VirtualBox von Oracle sehr beliebt, diesbezüglich gibt es aber einen großen Hacken. Die notwendigen Gasterweiterungen sind Closed-Source, und für den gewerblichen Einsatz nur gegen Entgelt verfügbar.
Weil VMs ein Kernteil von modernen IT-Systemen sind, sollten sie unbedingt native Linuxprogramme sein. Diese Programme sind als KVM oder KVM-Libvirt-Qemu bekannt, inklusiv Bibliotheken und Abhängigkeiten die wir brauchen um VMs zu erstellen und verwalten. Noch dazu, Virtmanager kann als GUI-Frontend installiert werden, und vor allem um die VMs in der graphischen Konsole anzuzeigen.
KVM steht für Kernel-based Virtual Machine, ist der einzige Hypervisor der im Linux-Kernel eingebaut ist, und konvertiert Linux in einen Hypervisor-Typ-1 (HT1 - Bare-Metal) laut https://www.redhat.com/de/topics/virtualization/what-is-KVM.
VirtualBox ist nur ein Hypervisor-Typ-2, d.h. er fungiert als eine zusätzliche Schicht auf dem BS, und kein Teil des Kernels wie KVM, und deswegen sind seine VMs langsamer und brauchen mehr CPU-Zyklen, was auch in Forenthreads berichtet wird.
Eine Aufklärung zuerst: Viele missverstehen einen Hypervisor-Typ-1 (HT1) als ein eigenständiges BS, weil bei den gewerblichen Lösungen oft nicht offensichtlich wird, dass der HT1 durch ein Host-BS installiert wird, und dass ein Host-BS erforderlich ist, um viele Aufgaben zu bewältigen, wie Datenträgerabbild-Erstellung, Konfigurationsdateien-Bearbeitung, Netzwerk-Einrichtung usw.
Dementsprechend wird auch unter https://stackoverflow.com/questions/45529207/why-xen-requires-an-os-though-it-is-a-type-i-hypervisor erläutert.
In dieser Hinsicht muss zuerst Ubuntu, oder eine andere Linux-Distro, installiert werden, und dann die relevanten Pakete für KVM oder Xen, also die Einrichtung zwischen den beiden ist ungefähr gleich aufwendig.
Die umfassendste wissenschaftliche Arbeit die gefunden wurde, die KVM, Xen und dazu auch Proxmox vergleicht, hat den Titel „Performance Evaluation of Xen, KVM, and Proxmox Hypervisors“ geschrieben 2018 von Algarni, Rafi Ikbal, Alroobaea, Ghiduk und Nadeem, im „International Journal of Open Source Software and Processes“.
Die Ergebnisse sind zugunsten KVM.
„Die Experimente belegen dass KVM in den meisten Testkategorien übertrifft mit Ausnahme der Dateisystem-Leistung, wobei Xen setzt sich durch nur in der Kategorie Dateisystem-Leistung.
Dies bestätigt dass KVM besser für Anwendungen die CPU- und speicherintensiv sind, während Xen wäre besser für Dateisystem- und datenträgerintensive Programme.“ (Umgeschrieben und übersetzt, Seite 52)
Es ist auch nennenswert dass KVM von Google verwendet wird, und dass Amazon einen Umstieg vom XEN auf KVM plant.
Unter https://help.ubuntu.com/community/KVM/Installation entnehmen wir Einweisungen für die Hauptinstallation und Konfiguration. Unten werden die wichtigsten Punkte auf Deutsch dargestellt und umgeschrieben.
Zuerst müssen wir herausfinden ob der Prozessor Hardware-Virtualität unterstützt, und ob alle Virtualitätsoptionen in den UEFI-Einstellungen (was früher BIOS war) aktiviert sind.
$ egrep -c '(vmx|svm)' /proc/cpuinfo
Die Ausgabe 0 bedeutet das der Prozessor keine Virtualität unterstützt, die Ausgabe 1 oder mehr, dass sie unterstützt wird.
$ kvm-ok
zeigt uns ob KVM-Beschleunigung eingesetzt werden kann.
Wir müssen unbedingt einen 64 Bit Kernel verwenden um mehr als 2GB Arbeitsspeicher pro VM ordnen zu können.
$ uname -m
zeigt ob wir einen 64-Bit-Kernel verwenden mit der Ausgabe x86_64.
Anzeigen ob der CPU, 64 Bit ist mit
$ egrep -c ‘lm‘ /proc/cpuinfo
Die Ausgabe 0 steht für 32 Bit CPU. Eine Ausgabe von 1 oder höher steht für 64 Bit.
Die Hauptpakete installieren.
$ sudo apt install qemu-kvm libvirt-daemon-system libvirt-clients bridge-utils
Der Normalbenutzer des Systems, muss Mitglied der Libvirt- und KVM-Gruppen werden.
$ sudo adduser `id -un` libvirt
Adding user '<username>' to group 'libvirt' ...
$ sudo adduser `id -un` kvm
Adding user '<username>' to group 'kvm' …
Es muss dann erneut angemeldet werden. Wenn
$ virsh list --all
keine Fehlermeldungen ausgibt, ist dann alles in Ordnung.
Um den Virtmanager zu installieren
$ sudo apt install virt-manager
Eine Pool enthält die virtuellen Festplatten der VMs. Standardmäßig wird diese Pool unter /var/lib/libvirt/images, in der BS-Root-Partition gespeichert, die dadurch schnell voll wird, so wir wollen diese Speicherstelle ändern. Mit
$ virsh pool-edit default
öffnet sich die Standardpool-Xml-Datei in einem Texteditor, in dem wir die Speicherstelle ändern können.
Von den Anweisungen an folgender Adresse
https://serverfault.com/questions/840519/how-to-change-the-default-storage-pool-from-libvirt
können wir die Standardpool auch löschen und eine neue erstellen.
Mit Virtmanager können neue VMs erstellt werden. Dazu brauchen wir nur ein Installations-ISO. Vom Virtmanager-GUI können auch direkt, entsprechende Teile der XML-Datei konfiguriert werden.
Bei einer bestehenden VM namens „ubvir2“, die XML-Datei kann mit
$ virsh edit ubvir2
bearbeitet werden.
Diese werden automatisch installiert zumindest bei Ubuntu-Gästen die im Projekt eingesetzt wurden.
Die Gasterweiterungen sind die Spice- und VirtIO-Paravirtualitätts-Treiber.
Highlights einschließen bessere Bildqualität, automatische Skalierung der Bildauflösung bei Änderungen des VM-Fensters und Zwischenablage-Unterstützung zwischen Host und Gast.
Die sind sehr wichtig als Paravirtualitätstreiber für die virtuellen Festplatten, die virtuelle Netzwerkschnittstelle und für andere Hardware.
VirtIO- und Spicetreiber sind auch für Windows-Gäste vorhanden.
Die VirtIO können von https://docs.fedoraproject.org/en-US/quick-docs/creating-windows-virtual-machines-using-virtio-drivers/index.html heruntergeladen werden, und die Spicetreiber von https://www.spice-space.org/download.html
Für ihre Installation können die als virtuelle Sata-Cdroms zum Gast präsentiert werden, oder mittels Samba-Share verfügbar werden. Der VirtIO-Datenträgertreiber muss während der Windows-Installation installiert werden.
Für die unteren Tests wurde die Hälfte der CPU, also zwei Kerne - vier Threads, an die VMs zugewiesen, was bedeutet dass die CPU am Host ungefähr bis 400% belastet werden kann.
Die Windows-VMs haben sehr hohe CPU-Zyklen aufgewiesen.
Wir können die XML-Datei auch in Virtmanager bearbeiten unter Anzahl der CPUs:/XML. Die unten angezeigten Konfigurationen in den Kästen, sind rechts von einer WVM und links von einer Ubuntu-VM.
Standardmäßig war die Konfiguration, die wir ändern wollen, wie folgend:
<timer name="rtc" tickpolicy="catchup"/>
<timer name="pit" tickpolicy="delay"/>
<timer name="hpet" present="no"/>
Durch die unteren Änderungen haben die CPU-Zyklen in der WVM sehr nachgelassen. In der UVM wurde keine Änderung festgestellt.
Unten
sehen wir dass die Windows-VM 11.3% und die Ubuntu-VM 5%
CPU-Zyklen
verwendet. Mit acht CPU-Threads im W530-Thinkpad, das Maximum ist
800% und Load-Average 8.
Außer dem Spice-Server,
wurde auch der Virgil3d - Virtio-GPU
Paravirtualitätstreiber aktiviert.
Die UVMs weisen dennoch hohe CPU-Zyklen bei
Videoausführungen an. Youtube-Videos laufen mit 210% CPU,
VLC-Videos
mit 300% CPU.
Eine andere Option wäre Intel-GVT-g, was aber nur ab der fünften CPU-Generation verfügbar ist, die W530-CPU des Projekt-Laptops ist nur dritte Generation - IvyBridge. Dazu müssen zwischen anderem einige Kernparameter geändert werden.
PCI-Durchleitung ist die beliebteste Option, muss aber eine GPU komplett an die VM durchgereicht werden, also der Ubuntu-host braucht eine andere GPU, deswegen ist so was nur möglich wenn die Hardware über zwei GPUs verfügt.
Es muss außerdem unterstrichen werden, dass die Portabilität der VMs im Fall einer GPU-Durchreichung aufwendig ist.
Unter https://wiki.archlinux.org/index.php/QEMU/Guest_graphics_acceleration werden einige dementsprechende Möglichkeiten zusammengefasst.
Das Vorgabe-Nat-Netzwerk wurde über WLAN verwendet, da unter KVM was anders läuft zwar über Ethernet problemlos, aber über WLAN wird sehr kompliziert. Das Gerätemodell ist Virtio.
In manchen Forenthreads wird berichtet, dass mit
NAT, der Host kann sich zwar mit dem Gast verbinden, aber nicht
umgekehrt.
Mit SSH kann von
beiden Seiten eine Verbindung problemlos hergestellt werden.
Wie unter der Rubrik Netzwerken/SSH erwähnt wurde, eine private IP-Adresse kann mit
$ ifconfig | grep -E 'inet.*192'
ermittelt werden.
Unten, ist der Host bi@green rechts mit dem lilanen Hintergrund, und der Gast pf@thunvir links mit dem blauen Hintergrund. Im Gast wurde die IP-Adresse durch ifconfig ermittelt, und bi@green hat sich bei pf@thunvir angeschlossen, wobei der Prompt von bi@green in pf@thunvir geändert hat.
Die gleiche Vorgehensweise wurde ebenfalls ohne Probleme, zwischen zwei Ubuntu-Gästen unternommen.
Das Netzwerken mit einer Windows-VM (WVM), wurde anders gedacht. Wenn es unerlässlich sei, bestimmte Programme in einer WVM zu betreiben, dann aber im Sandkasten, so dass die WVM keine Sicherheitsgefahr darstellen kann.
Folgend ist eine WVM mit der TinyWall-Firewall installiert, die mit den Vorgabe-Einstellungen alles blockiert, also kein Internet. Es wurde aber die Option „Unblock LAN traffic“ getickt, damit die WVM sich mit dem Host verbinden kann.
Aus Sicherheitsgründen wurden die
Windows-Linuxtools auch nicht aktiviert.
Im WVM
einen Ordner namens wguest-data teilen.
Unter dem Ubuntu-Host einen Ordner /mnt/smbs erstellen wo wguest-data eingehängt wird.
Die IP-Adresse im WVM ermitteln mit
>ipconfig /all
Im Ubuntu-Host den geteilten Ordner mit
$ sudo mount.cifs //192.168.122.11/wguest-data /mnt/smbs -o username=<benutzername>,password=<passwd>
einhängen.
Weil aber das Passwort jetzt im Terminal gedruckt wurde, sollten wir lieber die Befehlszeile-Geschichte auch gleich löschen mit
$ cat /dev/null > ~/.bash_history ; history -c
Einzelne virtuelle Datenträger (VDs) wurden ausschließlich für Daten verwendet, die von mehreren Ubuntu-VMs eingesetzt werden. Wenn aber eine VM kopiert wird, ist es unmöglich den Daten-VD mit zu klonen. Das ist auch nicht gewollt. Also den Daten-VD erst mittels Virtmanager von der VM die wir kopieren wollen entfernen, und die VM dann klonen.
$ virt-clone -o <vm-name> -n <klone-name> -f <neu-virt-datenträger-pfad>
Das kopiert den Qcow2 Datenträger und die Konf-Dateien: die Datei vm_name.xml, wo die Konfiguration der VM geschrieben ist, und die Datei vm_name_VARS.fd, das ist die Nvram-Datei. Zusätzlich wird eine Log-Datei kopiert.
Der oben erwähnte Daten-VD, kann zwar gleichzeitig an vielen VMs zugefügt werden, aber Vorsicht! Es dürfen nie zwei VMs gleichzeitig den gleichen Qcow2-VD anhängen und die Daten zugreifen, weil sie dadurch korrupt werden.
$ virsh undefine <vm-name> --nvram --storage <vd-pfad>
Ein VM-Klon wird aktualisiert mit
rsync -aAHXsh --inplace --delete --info=progress2,stats2 <quelle> <ziel>
Hier wird also die Qcow2-Datei aktualisiert, und anders als bei der Rsync-Verwendung um ein BS zu kopieren/aktualisieren, für Qcow2-Dateien brauchen wir die Option --inplace, wir können aber die Option --preallocate die bei der BS-Aktualisierung verwendet haben, hier nicht einsetzen, da Rsync damit zu lange braucht, oder sogar hängt.
Wir dürfen nie zwei Klone gleichzeitig im gleichen Netzwerk betreiben, oder wir müssen zuerst einem Klon eine neue Identität geben, was bedeutet: Benutzer- und Hostname sollen geändert werden.
Des weiteren damit wir die VMs besser unterscheiden können, sollte der VM-Name auch geändert werden, falls bei der Klonerstellung kein triftiger Name zugeteilt wurde.
Das Konzept wurde von https://www.linuxuprising.com/2019/04/how-to-change-username-on-ubuntu-debian.html entnommen.
Angenommen wir wollen altname durch neuname ersetzen.
Zuerst erstellen wir einen temporären Benutzer namens tempuser, und geben ihm Sudo-Berechtigung.
$ sudo adduser tempuser
$ sudo usermod -aG sudo tempuser
Abmelden und als tempuser anmelden, um den Benutzernamen, das Heimverzeichnis und die Gruppe zu ändern.
$ sudo usermod -l neuname -d /home/neuname -m altname
-l, --login
-d, --home - Das neue Heimverzeichnis des Benutzers
-m, --move-home - Verschiebt den Inhalt des alten Heimverzeichnisses des Benutzers ans neue Ziel.
Den Gruppennamen ändern mit
$ sudo groupmod -n neuname altname
Einen symbolischen Link vom neuen zum alten Home-Verzeichnis erstellen.
$ sudo ln -s /home/neuename /home/altname
Der letzte Schritt ist sehr wichtig, weil viele Anwendungskonfigurationen an das alte Home-Verzeichnis zeigen, das jetzt nur ein Link zum neuen Heimverzeichnis ist, sonst funktionieren auf einmal einige Programme nicht mehr.
Verschiedene Programme werden nach den obigen Änderungen melden, dass ein anderer Benutzer eingeloggt ist oder ähnliches, aber nach der ersten Abweisung der Meldung läuft alles normal und erscheint die Meldung beim nächsten Mal nicht mehr.
Die Vorgehensweise wurde von https://itsfoss.com/change-hostname-ubuntu/ entnommen.
$ sudo hostnamectl set-hostname <neuer-hostname>
Es kann sein dass der Hostname auch manuell geändert werden muss im Inhalt zweier Dateien wie folgt:
$ sudo nano /etc/hostname
$ sudo nano /etc/hosts
Ein Teil des Konzepts wurde von https://kifarunix.com/how-to-rename-kvm-virtual-machine-with-virsh-command/ entnommen.
Angenommen wir wollen eine VM namens alt in neu umbenennen.
Zuerst ändern wir den Namen des VD mit
$ sudo mv alt.qcow2 neu.qcow2
Die Xml-Datei editieren mit
$ virsh dumpxml alt > neu.xml
$ nano neu.xml
Überalll wo alt steht, muss jetzt neu geschrieben werden.
$ virsh undefine --nvram alt
Wenn unsere VM eine Nvram-Datei hat, der Befehl wird ohne die Fahne --nvram scheitern.
$ virsh define neu.xml
Wenn wir eine VM migrieren wollen, oder auch für den Fall eines Hardware-Ausfalles, wir benötigen die Qcow2- und die Xml-Datei zu sichern.
Die XML-Dateien können wir mit
$ rsync -aAHXsh -delete --info=stats2 /etc/libvirt/qemu/ /backup-ziel/
sichern.
Die folgenden Migrations-Anweisungen sind zwar ergänzend, wurden im Projekt aber nicht getestet.
Wenn beide Hosts laufen und über die gleichen BSs und KVM-Libvirt-Qemu verfügen, wir können die VM mit
$ virsh migrate <vm-name> <ziel>
migrieren.
Wir sollten sonst, und vor allem im Fall eines Hardware-Ausfalles, wie unter dem Überschrift „VM-Name ändern“ vorgehen.
Die Xml-Datei editieren mit
$ virsh edit <vm-name>
Hier ist es wichtig das neue VD-Pfad anzugeben, und gegebenenfalls die Netzwerk-Konfiguration zu ändern. Anschließend
$ virsh define <vm-name>.xml
Die VMs können durch den Virtmanager-GUI verwaltet werden, aber auch mit vielen Kommandozeile-Programmen, wie weiter oben erwähnt.
Alternativ und ergänzend zum Virtmanager ist das Befehlszeile-Programm Virsh. Damit können wir die VMs unter vielen anderem: starten, pausieren, wiederaufnehmen usw.
Unten ist ein Ubuntu-Host mit zwei Gästen, einmal
Ubuntu und einmal Windows. Im Terminal-Fenster, wurden ein paar
Virsh-Befehle ausgeführt.
Oben sehen wir, dass beide VMs pausiert sind, und deswegen sie keine CPU-Zyklen in Anspruch nehmen. Speicher wird aber weiterhin verwendet.
Wenn wir Pools löschen und andere erstellen, VMs umbenennen und verschieben, die Ubuntu-Gäste booten weiterhin ohne Probleme. Nicht so mit den WVMs, in einem solchen Fall, die booten nicht mehr.
Voran genau das liegt, wurde nicht mehr recherchiert.
Anfänglich wurde angenommen dass WVMs für spezifische Programme nötig seien. Im Laufe des Projekts ist aber klar geworden dass dieser Ansatz sehr wenig zutrifft, wie z.B. unter der Rubrik: Pdf-Fazit, weiter oben dargestellt wurde.
Die WVMs offenbaren ein sehr hohes Umständlichkeit-Leistungs-Verhältnis zumal unter Linux eine Vielzahl von Lösungen für jede Aufgabe verfügbar ist.
Um bequem VMs einzusetzen, sollte ein Minimum von 32GB Speicher im Rechner verbaut sein.
Das W530-Thinkpad hat ursprünglich nur 8GB Speicher gehabt, das auf 32GB aufgerüstet wurde.
Die Wahl fiel auf Crucial
CT102464BF160B - 8GB DDR3L-1600 SODIMM x 4 = 32GB aufgrund
guten
Preis-Leistungs-Verhältnisses die sich auch bewiesen hat.
Ubuntu-Installationen sind nicht portabel oder nur in Spezialfällen wie es unter dem Überschrift: Portabilitätsbeschränkungen von Ubuntu-Systemen weiter oben, erläutert wurde.
Es wurde auf die Frage eingegangen welche ist ein leichter und praktischer Weg eine bestehende Installation überall, als Spiegelbild einzusetzen. Gedanken über eine mögliche Lösung sind über zwei allgemeine Überschriften geordnet, mit Virtualitäteinsetzung und ohne, oder mit einem Mix von beiden.
Eine Einsetzung der Ansätze unter den zwei folgenden Rubriken sind für ein künftiges Projekt geplant.
Wenn das BS installiert wird, werden hardwarespezifische Treiber installiert und entstehen dazugehörige Konf-Dateien. Im Rahmen des Projekts wurde recherchiert ob und wie wäre es möglich eine bestehende Installation auf anderer Hardware einzusetzen.
Eine leicht einsetzbare Funktion die nach neuen Geräten aller Art sucht, und dann die alten Treiber durch neue ersetzt, existiert nicht.
Manche Distros wie MX und Manjaro, verkünden dass die Möglichkeit gibt, das BS anzupassen und danach eine eigene Distro daraus zu erzeugen. Bei den meisten von diesen Lösungen, was erreicht wird, ist neue Pakete in die Vorgabeinstallations-ISO hinzufügen, alias Remastering, aber kein Spiegelbild einer bestehenden Installation samt aller Konfigurationen die der Benutzer unternommen hat.
Das kann aber erreicht werden durch einen mehrstufigen Prozess bekannt als „Live CD Customization From Scratch“ der unter https://help.ubuntu.com/community/LiveCDCustomizationFromScratch ausführlich dokumentiert ist.
Wir können eine physische Installation in eine KVM-VM umwandeln, mit Virt-p2v, was zusammen mit den anderen Virt-Paketen installiert wird, muss aber als Live-USB eingesetzt werden.
Das kann entweder mit virt-p2v-make-disk oder mit virt-p2v-make-kickstart erreicht werden.
Die erstellte VM wird dann auf anderer Hardware mittels KVM oder Xen eingesetzt.
Die VMs können durch das Netzwerk mit
# rsync -aAHXsh --inplace --delete --info=progress2,stats2 \
e- ssh <quelle> \
benutzer@ip-adresse:<ziel>
synchronisiert werden.
VMs brauchen immer mehr CPU-Zyklen im Vergleich mit einer physische Installation für die gleiche Aufgabe. Dieser Unterschied fällt nicht gleich auf mit Befehlszeile-Programmen oder LibreOffice-Anwendungen.
Wie es unter der Rubrik „Videobezügliche CPU-Zyklen“ erläutert wurde, Verbesserungsmöglichkeiten benötigen Kernkonfigurationen, neuste Hardware und/oder GPU-Durchreichung. Wenn die VMs portabel werden sollen, die GPU-Durchreichung wird sehr aufwendig.
Eine angepasste Distro zu erstellen ist die andere Option, die auch kompatibel mit älterer Hardware ist.
Ein VM-Masseneinsatz ist einfach wenn die VMs als Server oder als Test-BSs verwendet werden, aber ihre Verwendung für normale Büroarbeit, die z.B. Videokonferenzen einschließt, wird mit anderer Hardware in einem künftiges Projekt recherchiert werden.
Rsync wurde im Projekt mehrmals eingesetzt. Hier folgt eine Zusammenfassung einiger wichtigen Fälle.
rsync -aAHXsh --delete --preallocate --info=progress2,stats2 <quelle> <ziel>
rsync -aAXsh --delete --preallocate --info=progress2,stats2 <quelle> <ziel>
In diesem Fall, fällt nur die Fahne -H für harte Links, die aber eingesetzt werden muss falls welche vorhanden sind.
rsync -aAXsh --preallocate --info=progress2,stats2 -e ssh <quelle> benutzer@<ip-adresse>:/<ziel>
rsync -aAHXsh --inplace --delete --info=progress2,stats2 <quelle> <ziel>
rsync -rtsh --modify-window=1 --delete --info=progress2,stats2 <quelle> <ziel>
NTFS und EXT weisen Unterschiede an den Zeitstempeln auf. Die Option --modify-window=1 sorgt dass wenn eine Datei entweder neuer oder älter um eine Sekunde ist, der Zeitstempel als gleich angesehen wird.
Zudem, von der Fanne -a=rlptgoD, bleibt nur -rt übrig, weil alles andere unter NTFS nicht unterstützt wird, wie auch -AHX.
Eine externe Festplatte anschließen, die
betreffende Sicherungspartition einhängen, Quell- und
Zielpartition
drucken, und das No-upload-Verzeichnis synchronisieren.
Anschließend, die Zielpartition aushängen und,
mittels udisksctl das externe Laufwerk
ausschalten.
Mit einem Crypto-Wallet können wir Münzen an andere Wallets überweisen, und falls das Wallet am Netzwerk durch einen Proxy verbunden wird, können die Überweisungen einigermaßen privat sein.
Die Verwendung von Proxys wurde im Projekt nicht
getestet.
Electrum wurde für das Projekt ausgewählt, weil so gut wie das älteste und sicherste Open-Source Bitcoin-Wallet ist.
Wir laden die Programmdateien von https://electrum.org/#download herunter und die ASC-Datei, die wir brauchen um die Schlüsselunterschriften zu überprüfen.
Zuerst
$ gpg --verify Electrum-4.0.9.tar.gz.asc
gpg:
assuming signed data in 'Electrum-4.0.4.tar.gz'
gpg: Signature made Do 15 Okt 2020 21:21:40 EEST
gpg: using RSA key 6694D8DE7BE8EE5631BED9502BD5824B7F9470E6
gpg: Can't check signature: No public key
Wir werden jetzt den oberen RSA-Schlüssel
verwenden um den öffentlichen Schlüssel zu importieren.
$ gpg --keyserver pool.sks-keyservers.net --receive-keys 6694D8DE7BE8EE5631BED9502BD5824B7F9470E6
gpg: key 2BD5824B7F9470E6: public key "Thomas Voegtlin (https://electrum.org) <thomasv@electrum.org>" imported
gpg: Total number processed: 1
gpg: imported: 1
Jetzt die ASC-Datei verfizieren, die die Signaturdatei ist.
$ gpg --verify Electrum-4.0.4.tar.gz.asc
gpg: assuming signed data in 'Electrum-4.0.4.tar.gz'
gpg: Signature made Do 15 Okt 2020 21:21:40 EEST
gpg: using RSA key 6694D8DE7BE8EE5631BED9502BD5824B7F9470E6
gpg: Good signature from "Thomas Voegtlin (https://electrum.org) <thomasv@electrum.org>" [unknown]
gpg: aka "ThomasV <thomasv1@gmx.de>" [unknown]
gpg: aka "Thomas Voegtlin <thomasv1@gmx.de>" [unknown]
gpg: WARNING: This key is not certified with a trusted signature!
gpg: There is no indication that the signature belongs to the owner.
Primary key fingerprint: 6694 D8DE 7BE8 EE56 31BE D950 2BD5 824B 7F94 70E6
Wir berücksichtigen „Good signature“ an der Ausgabezeile vier, also alles trotzt Warnungen in Ordnung.
Das Programm wird mit PIP „Perl Installation Program“ installiert.
$ python3 -m pip install --user Electrum-4.0.9.tar.gz
Electrum vom Terminal ausführen mit
$ electrum
Es kann sein dass wir die Warnung bekommen:
W | crypto | found module 'Cryptodome' but it is too old: 3.6.1<3.7
Lösung umgeschrieben von https://bitcointalk.org/index.php?topic=5310339.msg56127626#msg56127626
Es geht um eine optionale Abhängigkeit, Cryptodomex, und die wird installiert mit
$ python3 -m pip install -U pycryptodomex
Collecting pycryptodomex
Downloading pycryptodomex-3.9.9-cp38-cp38-manylinux1_x86_64.whl (13.7 MB)
|████████████████████████████████| 13.7 MB 5.2 MB/s
Installing collected packages: pycryptodomex
Successfully installed pycryptodomex-3.9.9
Die Meldung
failed to load zbar. exceptions:
bedeutet es fehlt uns die Möglichkeit einen QR-Kode zu scannen. Wir müssen nur
$ sudo apt install zbar-tools
Das sind zwölf Wörter, mit denen wir unser Wallet in einem anderen Rechner wiederherstellen können.
Der Seed ist vom MPK erzeugt worden, und letzterer kann alle unseren privaten Schlüssel generieren.
Der MPK wird extrahiert mit
$ electrum getmasterprivate --offline -w <wallet-pfad>
Ältere (legacy) BTC-Adressen fangen mit „1“, der Skript-Typ ist P2PKH, die sind überall kompatibel, aber die Überweisungskosten sind hoch. Zudem unterstützen sie nicht das neue Lightning-Transaktionsystem.
Bei Native-Segwit, von „Segregated Witness“, die BTC-Adressen fangen mit „bc1“ an und Skript-Typ ist P2WPKH. Die sind auch als BECH32 bekannt. Hier sind die Transaktionsgebühren niedriger, Lightning wird unterstützt, die sind aber noch nicht überall eingesetzt.
Eingenommen wir wollen aus Sicherheitsgründen unsere BTCs in ein neus Wallet überweisen, weil wir einen neuen Startwert haben wollen. Wir können den Starwert im bestehnden Wallet nicht ändern, das würde die Adressen ändern.
Da die Blockchain von Transaktionen oft sehr belastet ist, müssen wir mehr an Transaktionsgebühren zahlen, oder länger warten. Die Gebühren können insofern dynamisch gestaltet werden, kurzum Replace-By-Fee (RBF). Nach der Absendung der Überweisung und falls die Transaktionsbestätigung länger dauert als wir wollen, können die Gebühren manuell gesteigert werden.
Mit der Auswahl „Transaktion anzeigen“ sehen wir „Position im Mempool: XX MB von oben“. Wenn die MBs steigen es bedeutet dass wir mehr Zeit bis zur Bestätigung brauchen und vice versa.
Es ist auch möglich dass der Empfänger eine ergänzende Gebühr zahlt, alias Parent-Pays-For-Child (PPFC).
Im folgenden Link https://bitcointalk.org/index.php?topic=5324164.msg56576204#msg56576204 wird erläutert dass die privaten Schlüssel nie in eine andere Wallet-Software importiert werden sollten, weil dadurch die Gefahr steigt die Münzen von möglichen Bugs oder anderen Problemen zu verlieren. (Umgeschrieben und übersetzt.)
Die Münzen sollten stattdessen immer überwiesen werden, aber im Fall einer gesamten Überweisung, können die Transaktionskosten nicht mehr gestiegen werden, wenn keine Münzen im Wallet übrig bleiben.
Diesbezüglich am besten zuerst recherchieren oder eine Testüberweisung durchführen um die Equilibrium-Kosten für eine Überweisung die nicht länger als 48 Stunden dauert herauszufinden. Derzeitig (März 2021) liegen die entspechenden Gebühren bei 20Sat/Byte.
Bezüglich Segwit- und Legacy-Adressen, müssen wir merken dass es noch Börsenplätze gibt die nicht mit SegWit kompatibel sind.
Ein guter Börsenplatz für die europäische Union, wäre Kraken, dass mit der Fidor Bank mit Sitz in München zusammen arbeitet, als Vorgabe-Bank in der EU.
Kraken ist auch der einzige Crypto-Börsenplatz dass jemals in Reddit als bester Bitcoin-Börsenplatz des Jahres, 2014 gewählt wurde.
Des weiteren die Wartezeit für einen live Kundenservice nach Erfahrungen des Verfassers, war höchstens 15 Minuten und die KYC (Know Your Customer) Verifizierung hat nur einen Tag gedauert. Bei Binance hat die gleiche KYC-Verifizierung zwei Wochen gedauert.
Die Tradingspreads sind nicht so niedrig wie die von Binance, aber dort müssen wir nach Forenberichten auch stundenlang auf Hilfe warten.
Rclone ist eine sehr gute Wahl um unsere Daten in der Cloud zu speichern und synchronisieren. Das Programm ist ausgereift, kompatibel mit den meisten Cloud-Backends, bietet unzählige Optionen und wahlweise Verschlüsselung. Die folgenden Beispiele wurden mit dem Google-Drive-Backend durchgeführt.
Zuerst müssen Remotes erstellt werden. Wenn verschiedene Google-Konten vorhanden sind, kann ein einzelner Remote für jedes Konto erstellt werden. Für die Verschlüsselung erstellen wir einen Crypt-Remote innerhalb eines normalen Remotes.
Das soll ein Ordner im Google-Drive sein. Alles was mit diesem Ordner synchronisiert wird, ist verschlüsselt. Darüber hinaus die Remotes können lokal, mit dem Fuse-Dateisystem unverschlüsselt einhängt werden.
Rclone verwendet eine eigene Client-ID für den Google-Drive, die ist aber langsam, weil sie viel eingesetzt und auch deswegen gedrosselt wird. Als erstes müssen wir deshalb, eine eigene erstellen mittels Anweisungen von https://rclone.org/drive/#making-your-own-client-id.
Folgend im Google-Drive nachdem wir eine Client-ID erstellt haben.
Unter der Rubrik Credentials, oben links, haben wir schon unsere Client-ID und das Client-Geheimnis.
Mit dem Befehl
$ rclone config
können Remotes verwaltet werden: konfiguriert, erstellt, gelöscht usw., durch die Auswahl von Dialog-Optionen, die meistens selbsterklärend sind.
Bei der Erstellung eines neuen Remotes, kann es zwischen vielen Backends ausgewählt werden. Google-Drive ist die Nummer 13. Unten wird die Konfiguration von Bkp-gdrive als Beispiel angezeigt.
Wenn ein neues Remote erstellt wird, soll
die Option Refresh ausgewählt werden, so
dass wir unsere App (Client-ID), von einem Google-Konto
genehmigen:
Daraufhin öffnet sich der Browser, dann Konto auswählen und
genehmigen. Weil die App die wir erstellt haben, (noch) nicht
verifiziert ist, kommt eine Sicherheitswarnung, die wir abweisen
müssen.
Die Konfiguration von Crypt ist anders. Der Wert vom Crypt-Remote ist, wie unten angezeigt, der Pfad bkp-gdrive:/gdata, also Crypt ist ein verschlüsseltes Verzeichnis innerhalb des Remotes Bkp-gdrive. Was in diesem Ordner kopiert wird, ist verschlüsselt, was außerhalb von Gdata befindet, aber unter Bkp-gdrive, ist unverschlüsselt.
Folgend ein lokales Verzeichnis wird mit
Crypt synchronisiert. Crypt bezieht sich auf den Ordner Gdata.
--fast-list - Es
kann damit schneller gehen, verbrauchen wir aber mehr Speicher.
--user-agent - Damit das Cloud-Backend unser Programm richtig versteht.
--modify-window=1s - Zwischen unterschiedlichen BSs können die Zeitmarken leicht abweichen. Durch diese Option geben wir eine Toleranz von einer Sekunde.
--checkers - Wie viele Checkers parallel laufen sollten.
--transfers - Wie viele parallele Transfers.
--tpslimit - Ein Limit in der Transaktionen pro Sekunde setzen, damit uns das Cloud-Backend, die Geschwindigkeit nicht drosselt.
--tpslimit-burst - Einen Stoß geben für die Zeit die Transaktionen unter dem Limit oder inaktiv waren, aber den langfristigen Durchschnitt nicht über den Wert des --tpslimit erhöhen.
--contimeout - Verbindungs-Timeout setzen.
--drive-chunk - Diese Option kann leicht den verwendet Speicher multiplizieren bis zum BS-Einfrierung. 128M ist eine sicherere Konfiguration.
-P - Damit wir den Fortschritt sehen.
Je nachdem wie viele Dateien synchronisiert werden und wie groß sie sind, kann die Geschwindigkeit sehr variieren. Am Anfang steigt die Geschwindigkeit sehr, wird sie aber allmählich viel niedriger.
Um Teiluploads nicht wieder von Anfang uploaden zu müssen, können wir mit Strg+Z pausieren, statt mit Strg+C abzubrechen, und dann mit $ jobs und $ fg <job-nummer> wiederaufnehmen genau so wie mit Rsync. Es kann aber sein, dass nachher die Geschwindigkeit sehr gering ist, dann müssen wir das Programm zwangsläufig beenden und neu anfangen.
Manchmal könnte es vorübergehende Fertigstellungen von Upload-Fehlern geben, wobei der Upload erfolgreich war, aber aufgrund von Fehlern eine Datei erneut synchronisiert wird, was Duplikate erzeugen könnte. (Übersetztes Zitat vom Benutzer eharris https://github.com/rclone/rclone/issues/4429.)
Wenn es Duplikatmeldungen gibt, der Sync-Unterbefehl kann sie nicht mehr synchronisieren. Dazu muss der Unterbefehl Dedupe mit der Fahne --dedupe-mode=first z.B., womit die erste Datei erhalten wird und alle anderen Duplikate gelöscht werden.
Hier sehen wir dass ein Duplikat gefunden wurde.
Daher, statt dem Unterbefehl Sync,
verwenden wir hier Dedupe wie es oben
erwähnt wurde. Außerdem, in diesem Fall existiert keine Quelle,
nur
der Zielordner.
Gocryptfs https://nuetzlich.net/gocryptfs/ ist ein gestapeltes kryptographisches Dateisystem. Gestapelt weil es über das normale Dateisystem funktioniert https://wiki.archlinux.org/index.php/Data-at-rest_encryption#Stacked_filesystem_encryption, und damit können wir einzelne Ordner verschlüsseln.
Gestapelte Dateisysteme geben uns die Möglichkeit im laufendem BS empfindliche Daten verschlüsselt zu bewahren im Gegensatz zur Gesamt-Datenträger-Verschlüsselung, die außerdem das System verlangsamt, die Abnutzung des Datenträgers erhöht, wie auch das Risiko eines unbehebbaren BS-Ausfalls.
Das Verzeichnis wo die verschlüsselten Daten gespeichert sind, das Unterverzeichnis, wird mittels des Fuse-Dateisystems auf dem Oberverzeichnis eingehängt wo die Daten lesbar werden, bis das Oberverzeichnis wieder ausgehängt wird. (Umgeschrieben von den zwei oberen Links).
Das Programm soll Verbesserungen an den Sicherheitslücken vom alten Encfs bringen, und ist schnell und einfach. Gut um bestimmte Verzeichnisse im Laptop zu verschlüsseln https://defuse.ca/audits/gocryptfs.htm, aber für die Cloud lieber Rclone verwenden, das über eine eigene Synchronisierungs-Subroutine verfügt.
Zuerst ein verschlüsseltes Verzeichnis erstellen, initiieren und die Conf-Datei woanders speichern wie folgt.
Wir nehmen ein Beispiel-Verzeichnis mit Dateien und Unterordnern dass „Corolla Servicing“ heißt, und das wollen wir rekursiv verschlüsseln.
Das Oberverzeichnis erstellen
$ mkdir mountfs
Dann mit der Option -config kann die Conf-Datei von einem benutzerdefinierten Speicherort verwendet werden, um das Verzeichnis encrypted auf mountfs einzuhängen.
„Corolla
servicing“ in das Mountfs-Verzeichnis kopieren wo die Dateien
verarbeitet werden können, aber gleichzeitig erscheinen sie
verschlüsselt im Ordner Encrypted.
Es ist interessant dass Gocryptfs eine Fsck-Option um nach Korruption zu suchen bietet, was die meisten Programme der Kategorie nicht tun. Allerdings bei einigen GBs dauert es sehr lang mit der Fsck-Subroutine.
Wir listen jetzt
den Inhalt vom Mountfs der die verschlüsselten Daten
unverschlüsselt
enthält, und mittels Fusermount, Mountfs
anschließend aushängen. Der Inhalt von Encrypted ist immer
verschlüsselt, und enthält auch eine Datei die Gocryptfs.diriv
heißt.
Die Gocryptfs.diriv-Datei sorgt für die
Verschlüsselung der Ordner- und Dateinamen. Jedes Verzeichnis und
Unterverzeichnis enthält eine solche Datei. Wenn eine Diriv-Datei
gelöscht wird, alles in dem Ordner und unterhalb verschwindet.
Es sind Anweisungen vorhanden um die Daten zurück zu holen, und ihnen neue Namen zu zuweisen, die kurzen Tests die im Projekt unternommen wurden, waren entsprechend aber nicht gelungen.
Es heißt also zumindest von der Diriv-Datei des Root-Verzeichnisses auch eine Sicherungskopie zu erstellen. Falls wir dort einen Namen ändern sollten, müssen wir die alte Sicherungskopie durch eine neue ersetzen.
Bei verschlüsselten Daten ist es noch wichtiger ständig Sicherungskopien zu erstellen.
Deswegen die Diriv-Datei sollte auch in das Verzeichnis Backup-conf kopiert werden, und noch dazu eine Kopie des verschlüsselten Verzeichnisses Encrypted erstellen mit dem Namen Encrypted1, und daraufhin encrypted1 auf Mountfs einhängen um zu testen ob alles funktioniert.
Schließlich „Corolla servicing“ löschen,
wobei der Ordner jetzt nur verschlüsselt in zwei Kopien existiert,
Encrypted und Encrypted1. Die Ordner Encrypted1 und Backup-conf1
auf
zwei externe Festplatten kopieren oder verschieben und jegliche
Änderungen mit Rsync synchronisieren wie unter der Rubrik
EXT-Daten
synchronisieren erläutert wird, weiter oben.
Es sind vielerorts Meldungen vorhanden, dass mit verschiedenen Verschlüsselungs-Programmen, Daten-Korruption während der Synchronisierung vorkommen kann.
Ein Programm wie Rclone unterliegt keiner solchen Gefahr weil Synchronisierung und Verschlüsselung, Teile der gleichen Anwendung sind.
Wenn aber ein kryptographisches Dateisystem mit einer Anwendung synchronisiert wird, dass von den Programmentwicklern nicht ausführlich getestet wurde, Korruption könnte entstehen.
Der Gocryptfs-Entwickler, rfjakob, empfiehlt Rsync, aber wenn die Daten nur mit externen Festplatten synchronisiert werden, ist es gegen Korruption besser zwischen Oberverzeichnissen zu synchronisieren, oder die verschlüsselten Verzeichnisse ausgehängt mittels Rsync zu updaten.
Wichtige Daten sollten durch einen zweiten Weg auch verschlüsselt und gesichert werden. Vom Oberverzeichnis des Gocryptfs können wir die Dateien kopieren und Gpg einsetzen.
Gpg ist ein gutes Verschlüsselungs-Programm, kann aber nur einzelne Dateien verschlüsseln. Deswegen, archivieren wir unsere Daten zuerst mit Tar, und die Ausgabe ins Gpg pfeifen.
Umgekehrt, mit Gpg entschlüsseln und die Ausgabe ins Tar pfeifen.
Falls es nötig wird, verschlüsselte Dateien in einem Windows-System zu entschlüsseln, kann dementsprechend 7z eingesetzt werden.
Verschlüsseln wir mit
7z <archiv-name> <dateien> -p
Entschlüsseln mit
7z x <archiv-name>
Wenn wir Daten klonen und synchronisieren, wollen wir unter Umständen auch mehrere Dateien gleichzeitig umbenennen.
Das folgende Beispiel verwendet einen einfachen
zusammengesetzten Befehl von Bash, im ersten Fall um Buchstaben zu
ersetzen, und im zweiten, Buchstaben zu löschen.
Open-Source-Software verleiht uns das Motiv neues zum Lernen, kreativ zu werden, und unsere Systeme leichter an unsere Bedürfnisse anzupassen.
Wir lernen schnell dass für Aufgaben wo wir früher nach speziellen GUI-Programmen suchen mussten, reicht jetzt eine halbe Befehlszeile, daher Zeit muss am Befehlszeilelernen investiert werden.
Der Inhalt von Closed-Source-BS ist nur zum eigenen Entwickler bekannt und sollte möglichst vermieden werden. Ein solches Konzept wird dann unerlässlich wenn Missionskritischedaten verwalten werden.
Täglich getestet für länger als ein Jahr. Pakete wurden auch durch PPAs, DEB-Dateien und Snaps installiert und KVMs laufen ständig.
Kurz nach der Ubuntu-Installation werden manchmal Fehlermeldungen angezeigt, deren Fenster, Infos zu der Quelle des Problems enthält. Es wurde immer hinsichtlich nachgegangen, wobei die Lösungs-Vorgehensweisen waren entweder selbsterklärend oder musste zuerst gegoogelt werden.
Alle solchen Probleme wurden dank der großen Ubuntu-Gemeinde leicht gelöscht und kam seit einem Jahr keine weitere Fehlermeldung.
Die Paketverwaltung hat nie Fehler und Instabilität hervorgerufen und bietet mehrfache Optionen. Die Repos sind so gut organisiert, dass es selten woanders nach Programmen gesucht werden musste.
Das Look-and-Feel wurde durch Erweiterungen sehr angepasst und die Vielfalt von verfügbaren Programmen ist viel größer als anfangs gedacht.
Durch eine ergänzende Einsetzung von Programmen und Tools können Pdf-Dokumente hinreichend editiert werden. Das Pdf2odt-Skript von Gutschke beweist was durch Kreativität anhand eines kurzen Skripts erreicht werden kann.
Für einen professionelleren Gebrauch sollte das Qoppa-Pdf-Studio gekauft werden.
Vor allem Writer und Calc wurden im Projekt ein ganzes Jahr weitgehend verwendet. Am seltenen Fall dass eine Funktion nicht vorhanden ist, kann eine Umgehungslösung angewendet werden, wie die Verwendung einer Symlink-Datei um die fehlende geteilte Ansicht unter Writer zu ersetzen.
Des Weiteren, es ist viel effektiver wenn die native ODF-Formatierung eingesetzt wird. Es ist vorgekommen dass am Anfang manche DOC- und XLSX-Dateien nicht richtig funktionierten wenn sie als ODT- und ODS-Dateien gespeichert wurden.
In einem solchen Fall, erst alles aktualisieren und dann mit dem Befehl apt search nach fehlenden und zusätzlichen Paketen suchen und nachinstallieren.
SSH (-X) und NoMachine-RD haben überall einwandfrei funktioniert.
Der Klon-Ansatz wurde ausgiebig getestet, weil drei mal im Monat ein aktualisierter Klon als Vorgabe-BS ohne jegliche Probleme verwendet wird.
Es sollten immer mechanische externe Festplatten aber keine USB-Sticks oder SSD-Datenträger.
Klone sind aber nicht portabel. Nur Installationen auf externen Festplatten können mit einigen Problemen, von einer anderen Maschine gebootet werden.
Die Portabilitätsbeschränkungen der physischen BS-Installationen können vermindert werden durch eine „Live CD Customization From Scratch“, also eine Distro-Erstellung aus einem jeweiligen Zustand des BS, was für ein künftiges Projekt geplant ist.
KVM Virtuelle Maschinen (VMs) werden am Besten mit Qcow2 virtuellen Datenträgern eingesetzt, können anhand von SSH (-X) vernetzt werden und CPU-Zyklen für Befehlszeile- und LibreOffice-Programme sind niedrig. Einige Klone können gleichzeitig betrieben werden gemäß dem verfügbaren RAM. VMs beanspruchen keine CPU wenn die pausiert sind und können auf diese Weise im Host parat stehen.
Klon-Erstellung und -Updaten werden anhand von Virt-clone und Rsync jeweils unternommen. Rsync wird hierbei mit der Fahne --inplace verwendet, die die einzige betreffende Möglichkeit für Qcow2-Dateien ist, die aber leider eher kopiert als updatet.
Umständlichkeits- und Boot-Probleme der WVMs wurden weiter oben erwähnt.
Andererseits Linux erweist sich kompetent für alle Aufgaben, solange wir etwas Zeit nehmen um die Aufgabe zu recherchieren. Ergänzend können auch Linux-Closed-Source-Anwendungen eingesetzt werden.
WVMs haben nicht nur ein hohes Umständlichkeit-Leistungs-Verhältnis, weil wenn die weitgehend und mit Internet-Zugang eingesetzt werden, ist das Sicherheits- und Virenrisiko so hoch dass die Anwendung von z.B. Crypto-Hot-Wallets praktisch unbrauchbar gemacht wird.
Ubuntu-Vms können alltäglich verwendet werden solange keine Video-Anwendungen eingesetzt werden, infolge erhöhter CPU-Zyklen. Außer der üblichen Konfiguration mit QXL-Treiber und Spice-Client, der Virgil3d Paravirtualitätstreiber wurde auch eingesetzt, aber ohne betreffende Verbesserung.
Andererseits, eine GPU-Durchreichungslösung ist aufwendig und beschränkt die Portabilität der VM.
Ein künftiger Versuch soll durch die Intel-GVT-g-Erweiterung erfolgen. Dazu wird aber neuere Hardware benötigt. Wenn die Video-CPU-Zyklen sich erniedrigen lassen dann macht auch mehr Sinn die Möglichkeit der Virtualisierung einer physischen Installation mithilfe des Virt-p2v.
Durch die Einbehaltung der Vorgabe-Regeln für die Verwendung des BSs, nach vielseitigem täglichen Gebrauch von Ubuntu für länger als ein Jahr, sind Viren und Co. ein fremdes Konzept.
Eine perfekt Umgebung für die Verwendung von Crypto-Wallets. Electrum, ein der ältesten und sichersten Wallets, wurde problemlos eingesetzt.
Daten werden in der Cloud mit Rclone synchronisiert und verschlüsselt. Rclone ist kompatibel mit sehr vielen Cloud-Backends und bietet unzählige Optionen um die Verbindung mit dem jeweiligen Backend zu optimieren.
Um die bestmögliche Geschwindigkeit zu erreichen muss zuerst eine eigene Client-ID für das entsprechende Cloud-Backend erstellt werden.
Das gestalte kryptographische Gocryptfs-Dateisystem wird seit einiger Zeit eingesetzt ohne Daten-Korruption oder andere Probleme.
Eine Gesamt-Datenträger-Verschlüsselung birgt vielmehr das Risiko eines totalen Datenverlustes und eines Versagens des BS.
Gocryptfs ist einfach, stabil, und verfügt über eine Integritäts-Subroutine. Eine Zusammenführung von Tar und Gpg wird ergänzend angewendet.
alphr.com
appuals.com
ark.intel.com
ask.fedoraproject.org
ask.libreoffice.org
askubuntu.com
astroa.physics.metu.edu.tr
bhphotovideo.com
bitcoin.stackexchange.com
bitcoinops.org
bitcointalk.org
bugs.launchpad.net
bugzilla.redhat.com
buybitcoinworldwide.com
bytesized-hosting.com
centos.org
citrix.com
coderwall.com
coindesk.com
community.kde.org
community.spiceworks.com
computingforgeeks.com
console.cloud.google.com
creativecommons.org
crucial.com
cyberciti.biz
debian.org
deepin.org
defuse.ca
deonsworld.co.za
distrowatch.com
docs.fedoraproject.org
docs.gimp.org
documentation.libreoffice.org
documentation.suse.com
elearn.ellak.gr
electrum.org
electrum.readthedocs.io
en.bitcoin.it
extensions.gnome.org
extensions.libreoffice.org
forums.thinkbroadband.com
fosslinux.com
freecodecamp.org
geeksforgeeks.org
gemini.com
github.com
gnu.org
groups.google.com
help.crypto.com
help.libreoffice.org
help.ubuntu.com
howtoforge.com
howtogeek.com
hpc.uni.lu
http://ftp.riken.jp/Linux
http://linuxcommand.org
ibm.com
imagemagick.org
itsfoss.com
kde.org
kifarunix.com
kraken.com
kraxel.org
kubuntu.org
libguestfs.org
libreoffice.org
libreofficehelp.com
libvirt.org
Linux Handbuchseiten
linux-community.de
linux-kvm.org
linux-magazine.com
linux.com
linux.die.net
linuxconfig.org
linuxhint.com
linuxinsider.com
linuxize.com
linuxjournal.com
linuxprograms.wordpress.com
linuxuprising.com
manjaro.org
medium.com
mondorescue.org
mxlinux.org
namecheap.com
networkinterview.com
nuetzlich.net/gocryptfs
onapp.com
openoffice.blogs.com
opensource.com
openstack.org
opensuse.org
ostechnix.com
pediaa.com
peteris.rocks
phoenixnap.com
phoronix.com
praxistipps.chip.de
proxmox.com
putorius.net
rclone.org
reddit.com
redhat.com
researchgate.net
rodsbooks.com
searchservervirtualization.techtarget.com
section.io
security.stackexchange.com
serverfault.com
snapcraft.io
sourcedigit.com
spice-space.org
ss64.com
stackoverflow.com
superuser.com
systutorials.com
techmint.com
techrepublic.com
thetinhat.com
ubuntu.com
ubuntuforums.org
ufsexplorer.com
unix.stackexchange.com
userbase.kde.org
virgil3d.github.io
vitux.com
wiki.alpinelinux.org
wiki.archlinux.org
wiki.documentfoundation.org
wiki.ubuntu.com
wiki.xenproject.org
wikipedia.org
windowcentral.com
xenproject.org
youtube.com