Warum finde ich sie nicht in usr/local/etc?
du benutzt Knoppix und Knoppix ist ein Live-System.
Wenn du wirklich ein GNU/Linux benutzen möchtest, solltest du über kurz oder lang eines installieren. Das geht auch auf externen Medien.
Damit Knoppix als Live-System funktionieren kann, braucht es einige komplizierte Mechanismen, um die einzelnen Teile zusammen zu führen. das kann man ein wenig erahnen, wenn man sich die Ausgabe von mount vornimmt und gewissenhaft betrachtet. Erahnen, aber nicht wirklich verstehen. Ich gebe sie trotzdem mal auszugsweise aus einem Live-System vom ISO wieder:
|
Quellcode
|
1
2
3
4
5
6
7
8
|
rootfs on / type rootfs (rw,size=4075992k,nr_inodes=1018998)
/dev/sr0 on /mnt-system type iso9660 (ro,relatime,nojoliet,check=s,map=n,blocksize=2048)
/dev/cloop0 on /KNOPPIX type iso9660 (ro,relatime,nojoliet,check=s,map=n,blocksize=2048)
/dev/cloop1 on /KNOPPIX1 type iso9660 (ro,relatime,nojoliet,check=s,map=n,blocksize=2048)
/dev/cloop2 on /KNOPPIX2 type iso9660 (ro,relatime,nojoliet,check=s,map=n,blocksize=2048)
unionfs on /UNIONFS type aufs (rw,relatime,si=38f355b915b1a643,noplink)
unionfs on /usr type aufs (rw,relatime,si=38f355b915b1a643,noplink)
unionfs on /home type aufs (rw,relatime,si=38f355b915b1a643,noplink)
|
Nur kurz und oberflächlich und hoffentlich trotzdem halbwegs verständlich ohne zu verfälschen, vom Einfachen angefangen, ist
- /dev/sr0 die DVD/CD oder in meinem Falle das ISO, das ich in einer virtuellen Maschine gestartet habe.
- /dev/cloopn das jeweilige Image der derzeit drei Teile, aus denen Knoppix besteht und die sind gepackt und unveränderlich und enthalten jeweils einen Teil des gesamten Knoppix. Alle Teile werden mit einem Mechanismus vereint, der ein AUFS benutzt, ein spezielles Dateisystem.
- unionfs das Resultat aus der Auflösung der AUFS-Abhängigkeiten. Das ist schlampig erklärt, aber ich möchte das kurz halten.
- rootfs ist, wohin alles das sichtbar gemacht wird und worüber man auch alles einsehen kann, also alle Mountpoints.
Was hier hier fehlt, ist KNOPPIX-DATA, die Overlay-Partition, die ja erst durch ein Flash-Install auf einem beschreibbaren Medium entstehen kann. Sie ist indessen trotzdem ein wichtiger Teil der Betrachtung, doch ich möchte zunächst kurz diesen Mechanismus erläutern, der die verschiedenen Teile von Knoppix beim Booten zusammen führt.
Dazu greife ich zur manpage von hier, was die Dateisystem Hierarchie eines Systems beschreibt und zitier nur den Anfang:
|
Quellcode
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
HIER(7) Linux Programmer's Manual HIER(7)
NAME
hier - description of the filesystem hierarchy
DESCRIPTION
A typical Linux system has, among others, the following directories:
/ This is the root directory. This is where the whole tree starts.
/bin This directory contains executable programs which are needed in single user mode and to bring the system up or
repair it.
/boot Contains static files for the boot loader. This directory holds only the files which are needed during the boot
process. The map installer and configuration files should go to /sbin and /etc. The operating system kernel
(initrd for example) must be located in either / or /boot.
/dev Special or device files, which refer to physical devices. See mknod(1).
/etc Contains configuration files which are local to the machine. Some larger software packages, like X11, can have
their own subdirectories below /etc. Site-wide configuration files may be placed here or in /usr/etc. Neverthe‐
less, programs should always look for these files in /etc and you may have links for these files to /usr/etc.
|
und so weiter.
Hier ist also geregelt, wo ein bestimmtest System was finden möchte.
OK, nun kommt ein großer Schritt, den Windows-Nutzer nicht verstehen können. Was ist denn so etwas wie /boot? oder /etc?
Man neigt vorschnell dazu, das als Ordner zu bezeichnen und so ist das ja eigentlich auch. Nur, Windows-User sind gewohnt so zu denken, dass Ordner Bestandteil einer Festplatte sind oder so ähnlich. Also sie sehen die Dateisystem Hierarchy immer innerhalb eines Speichermediums. In einem Unix-System ist das anders. Jeder Eintrag in einem Dateisystem ist zunächst mal nur eine Datei, kann Daten enthalten und diese Daten können verarbeitet werden. Es kann aber auch sein, dass solch ein Eintrag (als Datei) einen Ordner innerhalb des Dateisystems angibt oder sogar nur, einen Einhängepunkt für ein entferntes oder externes Speichermedium. Wenn ich also /etc öffne und darin Dateien sehe, weiß ich nicht, wo die wirklich liegen. Die müssen nicht auf der Festplatte liegen, von der das System gestartet wurde, sie können von einem externen Medium kommen.
Die Zuordnung von Dateisystemen auf Einhängepunkte nennt man mounten und es gibt eine Spezialität, die man als "übermounten" bezeichnet. So kann in einem ersten Schritt ein Ordner der lokalen Platte für /etc stehen, aber in einem weiteren Schritt kann dann auf den gleichen Eintrag, also /etc, ein externes Dateisystem eingebunden werden und es überdeckt dann vollkommen den ursprünglichen Inhalt.
Das ist etwas, das Windows Nutzer nicht kennen und ich behaupte mal, viele Anfänger in Unix-Systemen auch nicht. Drum lasst es mich mal kurz zeigen:
|
Quellcode
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
pit@Celsius ~:- > mkdir test
pit@Celsius ~:- > ll test
total 0
pit@Celsius ~:- > ll test
total 5
-rw-r--r-- 1 pit wheel 3582 14 Dez. 2019 12-Uhr-Mittags.text
pit@Celsius ~:- > mount -t msdosfs /dev/da1s1 test
pit@Celsius ~:- > ll test
total 128
-rwxr-xr-x 1 pit wheel 4096 20 Apr. 2013 ._.Trashes
drwxr-xr-x 1 pit wheel 32768 15 Aug. 2014 .fseventsd
drwxr-xr-x 1 pit wheel 32768 20 Apr. 2013 .Spotlight-V100
drwxr-xr-x 1 pit wheel 32768 21 Apr. 2013 .Trashes
pit@Celsius ~:- > umount test
pit@Celsius ~:- > ll test
total 5
-rw-r--r-- 1 pit wheel 3582 14 Dez. 2019 12-Uhr-Mittags.text
|
Zeigen ist immer gut, man sieht eigentlich alles. Erkennt man auch, was ich zeigen will?
Zuerst lege ich einen Ordner "test" an. Wie es sich gehört, ist der leer. Dann kopiere ich da irgendeine beliebige Datei hin, in meinem Beispiel eine *txt-Datei und zeige, dass die nun im Ordner liegt.
Anschließend mounte ich einen Stick, den ich gerade greifen konnte und von dem ich nicht wusste, was der enthält und ich binde den in den Ordner test ein. Nach dem erfolgreichen mounten liegt nun der Inhalt des Sticks hier und innerhalb des Systems kann man nicht mehr erkennen, dass zuvor eine einfache *.txt Datei hier lag. Für mein System ist nun der Inhalt des Sticks (oder richtiger, des Dateisystems) hier vorhanden und kann mit entsprechenden Rechten benutzt werden.
Danach entferne ich den Stick, ich umounte ihn und siehe da, in test ist wieder der alte *.txt vorhanden.
Das ist sehr simpel und doch sehr grundlegend und ich wiederhole, oft unbekannt und unverstanden.
Hat man das erst mal verinnerlicht, ist das Verständnis des sehr viel komplexeren AUFS deutlich einfacher.
Innerhalb eines AUFS können Bestandteile aufgeteilt werden, in verschiedene Images gepackt und dann wieder richtig zusammengeführt werden. Richtig meint hier den zuletzt gültigen Stand.
Dabei werden die einzelnen Teile jeweils in die Dateisystem Hierarchie integriert.
Wer sich die Teile von Knoppix mal ansieht, kann das vielleicht ahnen:
|
Quellcode
|
1
2
3
4
5
6
|
knoppix@Microknoppix:~$ ls /KNOPPIX
bin boot dev etc home lib lib64 libx32 media mnt opt proc root run sbin sys tftpboot tmp usr var
knoppix@Microknoppix:~$ ls /KNOPPIX1
etc usr var
knoppix@Microknoppix:~$ ls /KNOPPIX2
opt usr
|
also etwa "usr" gibt es in allen Teilen und jeder enthält etwas und trägt das zum Gesamtsystem bei.
Nun ganz wichtig, RICHTIG WICHTIG!
Alle Änderungen an einem Knoppix passieren nur und ausschließlich in der Overlay!
Aus einem anderen Knoppix zeige ich das mal:
|
Quellcode
|
1
2
|
knoppix@Microknoppix:~$ ls /KNOPPIX-DATA
etc home lib opt root sbin usr var
|
Also, hier gibt es genau solche Einträge, die mit dem sturen und unveränderlichen Knoppix verheiratet werden und sich in die Dateisystem Hierarchie einfügen, wie in den einzelnen Teilen des zuvor gezeigten und unbeugsamen Knoppix. Nur, diese Einträge können Änderungen aufnehmen, zusätzliche Programme, gelöschte Programme, Konfigurationen und so weiter.
Alles, ALLES was man in Knoppix verändern möchte (also beinahe jedenfalls) findet hier statt.
Hier gibt es auch einen Eintrag "home"
|
Quellcode
|
1
2
|
knoppix@Microknoppix:~$ ls /KNOPPIX-DATA/home/
knoppix
|
mit dem Heimatverzeichnis des Knoppix-Users knoppix. Dort landen alle Einstellungen des Users knoppix, etwa für den Drucker und so weiter.
Mit dem hier nachgefragten Programm kann ich nichts anfangen und wieso es das nicht direkt aus den Repositries gibt, weiß ich auch nicht.
Der Weg, ein Programm aus anderen Quellen zu installieren, sollte nur Fachmännern vorbehalten sein. Es gibt da wirklich viel zu bedenken und geringe Abweichungen zwischen unterschiedlichen Versionen können viel Ärger bereitet. Ich meine, man hat schon ausreichend Ärger innerhalb eines Repositries.
Zudem ist Knoppix keine Distribution! Alles, was man damit macht, dient nur der Übung und Anschauung.
Wenn es aber richtig gelaufen ist, dann sollte es eben die config in der Overlay geben und die sollte dann am richtigen Ort liegen und die Bearbeitung einfach mittels direktem Aufruf, etwa in der Form:
nano /usr/local/etc/die.conf gelingen.
Gibt es die entsprechende Datei dort nicht, stimmt die Dokumentation nicht zu den tatsächlichen Verhältnissen und das bedeutet, dass hier Fachwissen gefragt ist. Ich rate dringend davon ab, damit als Anfänger zu experimentieren. Immer, in jedem Fall.
In einem fest installierten System, das man kennt und weiß, wie es funktioniert, kann man besser experimentieren, wenn man zuvor eine Datensicherung gemacht hat.
In einem Live-System kann man natürlich auch spielen udn probieren, dafür ist es ja da, hat aber eben eigene Gesetze.
Wer sich aber nicht auskennt, sollte die Finger grundsätzlich von solchen Experimenten lassen. Oder mit Frust rechnen und bereit sein, viel zu lernen.