Titel: Ein Ausflug zum Thema sysfs
Beitrag von: Sebastian am 07. Mai 2022, 15:52:32
Wie in dem Post (https://www.suletuxe.de/forum/index.php?board=12;action=display;threadid=656) schon erwähnt, wurde mein Intresse für das sysfs Dateisystem geweckt.
Ich werde hier einfach mal notieren wie meine Erkundungs Tour im Internet ausschaut und werde ein paar (für mich) intressante Dinge dabei herausschreiben. Ich werde die Seiten wo ich die Informationen gefunden habe hier mit verlinken so das jeder denn das auch interessiert diese durchlesen kann.
Das sorgt dafür das wir auf dem gleichen Wissenstand sind (zumindest das was auf den Seiten steht) und man bei Fragen weiß worauf man sich bezieht. Denn falls ihr fragen zu denn ein oder anderen Artikel habt, versuche ich diese best möglich zu beantworten. Da auch ich in dem Thema kein Experte bin werde ich nur das beitragen können wie ich die Dinge verstanden habe. Aber dafür soll ja dieser austausch hier sein, damit wir zusammen als Interessen Gruppe davon profitieren können.
Also meine Suche beginnt mit den Suchbegriffen
Code:
Damit bin ich auf folgende Seite gestoßen:
Understanding The sysfs File System (/sys) in Linux (https://www.thegeekdiary.com/understanding-the-sysfs-file-system-in-linux/)
für mich klang die Überschrift /sys/block sehr intressant (scheint wohl was mit Block Geräten zutun zu haben)
This directory contains entries for each block device in the system. Symbolic links point to the physical device that the device maps to in the physical device tree. For example, attributes for the sda disks reside in the following directory:
|
|
damit scheinte ich wohl auch Recht gehabt zu haben. Es folgte eine Beispiel Konsolen Ausgabe auf der Seite. Dort hatte die Datei /sys/block/sda/holders mein Interesse geweckt.
Da ich öfter mal das Problem habe das ich ein Dateisystem nicht unmounten kann weil es angeblich noch in Benutzung ist, dachte ich das die Datei vielleicht Informationen enthält welches Programm bzw. Dienst das Dateisystem belegt hält (Englisch hold).
Da dies nicht mehr Thema des eigentlichen Artikels war, habe ich eine zweite Suche abgesetzt:
Code:
Die einfache Angabe des Pfades zu dieser Datei, führte mich auf die folgende Seite:
How to find out easily whether a block device (or a part of it) is mounted somehow (https://unix.stackexchange.com/questions/111779/how-to-find-out-easily-whether-a-block-device-or-a-part-of-it-is-mounted-someh)
Also genau die Fragestellung die ich eigentlich hatte, ich muss also auf der richtigen Spur sein. In der dort Angegebenen Antwort:
This is essentially a matter of checking a whole bag of corner cases.
A drive can appear in /proc/mounts A drive can be used as swap (use /proc/swaps) A drive can be part of an active LVM pv (use pvdisplay) A drive can be part of a dm-mapper RAID group (use /proc/mdstat) A drive can be directly accessed by an application (e.g. Oracle supports writing directly to a drive or partition instead of a filesystem) (use fuser) A drive can be directly accessed by a virtual machine (use fuser) A drive can be referenced by a loopback device (e.g: mount /dev/sda -o offset=1M /foo) (use losetup -a) These are just the examples I came up with given a minute and a half to think about it. I'm sure there's a dozen others.
This last example I think is the most interesting and few people know about it. It allows you to mount a filesystem without using partitions. Just specify the starting offset and Linux will transparently create a loopback device. The example above yields the following:
# cat /proc/mounts ... /dev/loop0 /foo ext4 relatime,data=ordered 0 0
# losetup -a /dev/loop0 [0005]:2048 (/dev/sda), offset 1048576 Why would you do that? Typically it involves situations where things have previously gone horribly wrong.
Also bear in mind that with the namespacing feature now in mainline (see unshare), different processes can have different views about what's mounted and what isn't. Here things start to get a little bit red-pill.
|
|
wurde einen mitgeteilt das es wohl keine einfache Lösung gibt, da eine Partition an mehren stellen aktiv gehalten werden kann, aber ich erhielt ganz viele hinweise woran es liegen kann. Damit habe ich die suche erst einmal abgebrochen da ich nun beim nächsten mal weitere ansetzte habe die ich abklappern kann wenn ein Dateisystem mal wieder in Benutzung ist und sich nicht un mounten lässt.
Dabei bin ich in der Antwort aber auch auf etwas neues Interessantes gestoßen:
This last example I think is the most interesting and few people know about it. It allows you to mount a filesystem without using partitions. Just specify the starting offset and Linux will transparently create a loopback device. The example above yields the following:
# cat /proc/mounts ... /dev/loop0 /foo ext4 relatime,data=ordered 0 0
# losetup -a /dev/loop0 [0005]:2048 (/dev/sda), offset 1048576
|
|
Anscheint ist es auch möglich ein Dateisystem als loopback Device zu mounten, ohne die Partitions Nummer zu kennen indem man beim mount einfach den Anfang der Partition als offset angibt. Diese Info ist für mich später vielleicht mal relewand, falls meine Partitionstabelle mal beschädigt wird.
Was habe ich für mich aus den beiden Seiten mitgenommen:
- Im /sys/ Verzeichnis liegen Interessante Verzeichnisse, wie /sys/block, /sys/power mit intressanten Dateien worüber man System Werte auslesen und teilweise auch verändern kann.
- Es gibt um das /sys/ Verzeichnis besser auszulesen und bearbeiten zu können, ein Tool names sysctl (Englische Eselsbrücke System Control)
- Veränderungen die ich mit sysctl vornehme, sind nur bis zum nächsten neustart aktiv. Um sie dauerhaft zu ändern muss ich ein Eintrag in die /etc/sysctl.conf machen. (Ach daher kommt der name der komischen Datei weg)
- Dateisysteme kann man auch mit Hilfe des Startsektors mounten (offset). Vielleicht für Datenrettung ganz interessant. Oder wenn man ein Image mit Partitionen hat
- Es gibt zum /sys noch denn /proc Pfad, die Historisch als auch noch aktuell zusammenhängen, und ein weiterer Ausflug wert ist.
Diese Erkundungsreise hatte mich ca. 15 Minuten gekostet, und hat mir dabei geholfen mich wieder ein stücken mit Linux vertrauter zu machen, damit ich bei Problemen nächstes mal wieder ein Stückchen schneller zu einer Lösung finde. Man muss nämlich nicht erst darauf warten wenn der Druck hoch und eventuell die Zeit knapp ist sich auf die Suche nach einer Lösung zu machen. Wenn man an den Basics Arbeitet, findet man später schneller die Lösung.
|
Diskussions- und Newsboard der Linux Interessen Gruppe Suletuxe | Powered by YaBB SE
© 2001-2003, YaBB SE Dev Team. All Rights Reserved.
|