Festplatten und festplattenähnliche Geräte sind "dumm". Wenn Sie nach einem LBA fragen, erhalten Sie die darin enthaltenen 512, 2048 oder 4096 Bytes zurück. umgekehrt zum Schreiben.
Auf einer Dateisystemschicht können Sie "Ich möchte c: \ Benutzer \ public \ Dokumente \ Whatever.doc" sagen und Streaming-Vorgänge ausführen (Öffnen, Lesen, Schreiben, Suchen, Schließen) - dies wird von namenadressierbaren Orten in eine Reihe übersetzt von Anforderungen zum Lesen / Schreiben von LBAs.
Die Dateisystemschicht hat also zwei Seiten, die eine Seite, die mit dem festplattenähnlichen (oder blockartigen) Gerät kommuniziert, und die andere Seite, die mit dem Betriebssystem kommuniziert. Hier kommt die Spezifität des Betriebssystems ins Spiel. Normalerweise ist die Blockgeräteseite des Dateisystems ein Gerätetreiber, und die Betriebssystemseite ist eine API, die von Anwendungen verwendet werden kann. Dies sind jedoch nur Schnittstellen, die den zugrunde liegenden Betrieb der Dateisystemschicht nicht wirklich beeinflussen müssen.
Alle Dateisysteme bewirken, dass zusätzliche Daten außerhalb von Dateidaten geschrieben und gelesen werden, um Informationen über Dateien zu verfolgen, dh um Berechtigungen, Attribute usw. aufzuzeichnen.
Beim Booten gibt es ein Henne-Ei-Problem - da Betriebssystemdateien im Dateisystem gespeichert sind, aber wie werden sie geladen, wenn die Dateisystemschicht noch nicht aktiv ist? Linux löst dieses Problem entweder mit einer anfänglichen RAM-Festplatte oder indem es den Dateisystemcode als Teil des Kernels einbaut. Windows löst dieses Problem, indem es dem Windows-Bootloader die Möglichkeit gibt, FAT- und NTFS-Partitionen zu lesen. Bootloader können dumm sein, wie die meisten klassischen BIOS-Bootloader, die nur LBA 0 laden und ausführen und erwarten, dass der Code danach aufgenommen wird, oder ziemlich intelligent und mit eigenen kleinen Dateisystemschichten wie UEFI, U-Boot usw.
LVM ist kein Dateisystem. Es nimmt ein oder mehrere Blockgeräte und abstrahiert es in ein anderes "virtuelles" Blockgerät (in /dev/mapper
- alles in /dev/mapper
ist ein virtuelles Blockgerät). Sie platzieren ein Dateisystem "über" einem LVM, genauso wie Sie ein Dateisystem "über" einer Partition platzieren würden. LVM ist eine weitere Schicht zwischen einem oder mehreren Gerätetreibern und dem Dateisystem, die Lese- und Schreibvorgänge in LBAs auf dem virtuellen Blockgerät in ein oder mehrere andere Blockgeräte konvertiert. Ja, ein LVM kann ein virtuelles Blockgerät sein, und Sie können eine Kaskade davon haben.