Ich habe gelesen, dass Sie die Swap-Partition auf Festplatte anstatt SSD setzen müssen.
Meine Fragen sind folgende:
- Wann und wie "überprüft" die Distribution (oder etwas anderes) ihre Swap-Partition?
- Kommt es beim Booten vor?
- Es prüft nur alle verfügbaren Festplatten und sucht nach einer Partition mit dem 'Swap'-Flag.
- Was passiert, wenn es mehrere solche Partitionen gibt?
- Wie viele Swap-Partitionen muss ich auch haben, wenn ich zum Beispiel zwei verschiedene Distributionen auf derselben Festplatte laufen lasse, sagen wir Fedora und Ubuntu?
Antworten:
Statisch konfigurierter Swap Space (der Typ, den so ziemlich jede Distribution verwendet) wird
/etc/fstab
genau wie Dateisysteme konfiguriert .Ein typischer Eintrag sieht ungefähr so aus:
Möglicherweise wird auch eines der Felder
discard
oder dienofail
Angabe im Feld flags (viertes Feld) angezeigt . Jede solche Linie entspricht einen Swap - Bereich (es nicht haben , um eine Partition zu sein, können Sie Swap - Dateien, oder sogar gesamte Swap - Festplatten).In einigen wirklich spezifischen Fällen haben Sie möglicherweise stattdessen dynamisch konfigurierten Auslagerungsspeicher, obwohl dies eher selten ist, da dies zu einem problematischen Verhalten in Bezug auf die Speicherverwaltung führen kann. In diesem Fall wird die Konfiguration vollständig von einer Userspace-Komponente verwaltet, die bei Bedarf zur Laufzeit Auslagerungsdateien erstellt und aktiviert.
Was die Anzahl der benötigten Distributionen betrifft, ist dies eine komplizierte Frage. Die Anzahl der verschiedenen Linux-Distributionen, die Sie ausführen möchten, hat jedoch keine Auswirkung darauf, es sei denn, Sie möchten in der Lage sein, eine Distribution auszuführen, während sich eine andere im Ruhezustand befindet (und Sie wahrscheinlich möchten Sie dies nicht tun, da dies eine sehr einfache Möglichkeit ist, Ihr System zu vermasseln).
Wenn Sie das Installationsprogramm für fast alle wichtigen Distributionen (einschließlich Fedora, OpenSUSE, Linux Mint, Debian und Ubuntu) ausführen, erkennt es vorhandene Swap-Partitionen auf dem System und fügt diese der Konfiguration für die von Ihnen verwendete Distribution hinzu In den meisten Fällen führt dies dazu, dass das System auf vernünftige Weise konfiguriert wird.
Abgesehen davon würde ich persönlich empfehlen, die Verwendung mehrerer Swap-Partitionen zu vermeiden, es sei denn, es handelt sich um ein Serversystem mit vielen Festplatten, und selbst dann müssen Sie wirklich wissen, was Sie tun, um das System einzurichten, damit es eine gute Leistung erbringt .
quelle
/tmp
Partitionen / Verzeichnisse benötigen .) Wahrscheinlich ist es in diesem Fall besser, virtuelle Maschinen zu haben ...systemctl --all | grep swap
erhalte ich zwei Ergebnisse zurück.dev-disk-by\x2duuid-1c692cc4\x2df942\x2d4478\x2dad0f\x2d266b7484273a.swap
undswap.target
beide sind ACTIVE = inactive und SUB = dead . Wie bringe ich mein System dazu, den Swap-Bereich zu nutzen?… Beides sind heutzutage system- und betriebssysteme.
Was passiert in systemd Betriebssystemen?
der native Mechanismus
Systemd verwendet verschiedene Arten von Einheiten.
.mount
Unit-Dateien weisen es an, Volumes zu mounten..swap
Unit-Dateien weisen ihn an, den Kernel über Swap-Partitionen zu informieren. (.service
Unit-Dateien weisen es an, wie Dienste ausgeführt werden. Und so weiter.) Dies sind die systemeigenen systemd-Mechanismen. Um sie zu aktivieren, leitet systemd selbst untergeordnete Prozesse ab, die die entsprechenden Systemaufrufe ausführen.Wenn Sie den
systemctl
Befehl (mit--all
) auf einem solchen Betriebssystem verwenden, werden Sie über die geladenen.swap
Einheiten informiert . Beispielsweise:Außerdem erfahren Sie mehr über die
.mount
Einheiten.Ein Systemadministrator kann schreiben tatsächlich solche
.swap
Unit - Dateien von Hand, wie xe schreiben kann.service
,.socket
und andere Unit - Dateien von Hand. systemd selbst sucht nur nach Unit-Dateien im Dateisystem. Sie sind sein ursprünglicher Mechanismus.Man kann sich sogar von systemd anzeigen lassen, was sich in diesen Unit-Dateien befindet und wo sie im Dateisystem zu finden sind:
automatisch generierte Unit-Dateien
Man kann sie von Hand schreiben. Normalerweise werden solche
.mount
und.swap
Unit-Dateien jedoch automatisch von Programmen generiert, die als Generatoren bezeichnet werden . Zwei solche Generatoren sindsystemd-fstab-generator
undsystemd-gpt-auto-generator
. Sie werden beide früh im Bootstrap-Prozess und als Antwort auf einensystemctl daemon-reload
Befehl ausgeführt und (wie Sie oben sehen können) generieren eine ganze Reihe von Unit-Dateien in einem undokumentierten Unterverzeichnis in/run/systemd/
. systemd selbst verwendet nur diese generierten Unit-Dateien .Der frühere Generator liest
/etc/fstab
und erkennt mehrere Systemerweiterungen für dieses Dateiformat. Wie ich bereits in einer Antwort Kommentar darauf hingewiesen, haben traditionell Swap - Partitionen den montiert vonsw
und das ist , wie man , dass andere Betriebssysteme erkennen Swap - Datensätze in dieser Tabelle finden. Aber Linux-Software hat die Alternative gewählt, stattdessen den VFS-Typ zu erkennen und nach dem VFS-Typ zu suchenswap
.systemd-fstab-generator
ist hier keine Ausnahme, und so interpretiert es,/etc/fstab
wenn es in die nativen Mechanismen konvertiert wird.Der letztere Generator verarbeitet die EFI-Partitionstabelle, die sich auf demselben Datenträger befindet, auf dem sich die EFI-Systempartition befindet, und sucht nach EFI-Partitionstabelleneinträgen mit verschiedenen bekannten GUIDs für Partitionstypen . Eine dieser GUIDs ist die herkömmliche GUID, die Linux-Swap-Partitionen zugewiesen wird. und wenn
systemd-gpt-auto-generator
eine Partition mit dieser GUID gefunden wird (die die im systemd doco angegebenen Kriterien erfüllt), wird eine.swap
Einheit dafür erstellt; überhaupt nicht/etc/fstab
beteiligt .Natürlich hat dieser Prozess viele Nebenwirkungen. Da beispielsweise
/etc/fstab
kein Primärschlüssel für die Tabelle vorhanden ist, können Datensätze doppelte Felder "spec" und "file" (dh "what" und "where") enthalten. Im systemeigenen Mechanismus ist das Feld "file" (dh "where") ein eindeutiger Schlüssel für.mount
Einheiten, der in die Einheitennamen eingebettet ist. Keine zwei.mount
Einheiten können es teilen. Für.swap
Einheiten ist das Feld "spec" (dh "what") der eindeutige Schlüssel für Einheiten. Keine zwei.swap
Einheiten können das teilen. Daher sind nicht alle Datensätze in/etc/fstab
den systemeigenen Mechanismen konvertierbar und funktionieren auch, insbesondere wenn Benutzer beispielsweise denselben Mountpunkt für zwei verschiedene Zwecke auflisten oder dieselbe Swap-Partition auf zwei verschiedene Arten auflisten.In ähnlicher Weise unterscheidet sich das Verhalten geringfügig von dem von Nicht-System-Betriebssystemen , da es
/etc/fstab
in den systemeigenen Mechanismus übersetzt wurde und der systemeigene Mechanismus andere Möglichkeiten zum Aktivieren von Einheiten bietet..mount
Standardmäßig wird eine Einheit auch nach dem Bootstrap automatisch aktiviertsystemd-udevd
, wenn das eingebaute Speichergerät angezeigt wird. Oder es kann alsWants=
oderRequires=
von einigen.service
oder.socket
Einheiten aufgeführt werden, was bedeutet, dass es (wieder) aktiviert wird, wenn sie es sind. Es gibt sogarRequiresMountsFor=
.Installer-Programme und die systemd Weise
Üblicherweise haben Betriebssystem-Installationsprogramme und der Systemadministrator, der das System anschließend neu konfiguriert,
sw
Einträge in geschrieben/etc/fstab
. Auf diese Weise werden die Native.mount
und die.swap
Units automatisch generiert. Das Installations- / Konfigurationsdienstprogramm "weiß", wo die Auslagerungsdatei abgelegt wurde, da der Systemadministrator in seiner Benutzeroberfläche eine Auswahl getroffen und eine/etc/fstab
passende Datei geschrieben hat . Manchmal müssen Sie mich im Rahmen der Installation zu einer Swap-Partition machen. ; manchmal ist es nur die Swap-Partition, die Sie bereits auf der CD gefunden haben. (Installer, die sich auch die Partitionstypen ansehen).Aber die Systemleute haben diese Idee von Betriebssystemen, die sich automatisch aus einem weitgehend leeren
/etc
Baum heraus konfigurieren , sogenannten zustandslosen Systemen , und genau darum geht es bei Mechanismen wie dem Generator, der die EFI-Partitionstabelle liest. Im Plan der systemd people gibt es überhaupt keine/etc/fstab
und keine persistenten Konfigurationsdaten/etc
, und all diese Informationen werden aus dem Inhalt der Partitionstabelle auf der Festplatte , bei jedem Bootstrap und bei jedem abgeleitetsystemctl daemon-reload
. Sie fördern heutzutage Betriebssystem-Installationsprogramme, als nicht schreiben/etc/fstab
.Im herkömmlichen Schema kann natürlich jedes Betriebssystem über eine eigene private Swap-Partition verfügen, ohne dass sich die Swap-Partitionen gegenseitig berühren. Und in der Tat, wenn Sie den Ruhezustand verwenden, um über eine Swap-Partition eine Festplatte zu starten, und erwarten, dass Sie im Ruhezustand auf ein anderes Betriebssystem mehrfach booten können ( was eine sehr schlechte Idee ist, da es sehr leicht ist, auf diese Weise eine Beschädigung des Dateisystems zu verursachen ) notwendig.
Im systemd-Schema laufen die oben genannten Generatoren, auch wenn das Betriebssystem noch nicht so ist, wie die systemd-Leute es sich vorstellen, und "zustandslos" ist. und somit werden alle Swap-Partitionen (auf der ESP / Root-Platte) mit dem erforderlichen Partitionstyp automatisch von allen Betriebssystemen des Systems verwendet. Da alle automatisch erkannten Swap-Partitionen gemeinsam genutzt werden, muss nicht wirklich eine Swap-Partition pro installiertem Betriebssystem erstellt werden.
Weitere Lektüre
systemd.swap
. systemd manpages . freedesktop.org.systemd-fstab-generator
. systemd manpages . freedesktop.org.systemd-gpt-auto-generator
. systemd manpages . freedesktop.org.quelle
In der Vergangenheit wurde die Swap-Partition
/etc/fstab
mit einem Eintrag vom Typ angegebenswap
. Beim Booten werden die Startprozesse diese Datei lesen und diese Konfiguration in den Kernel übertragen.Ein Beispiel für den Eintrag in
/etc/fstab
ist:Ich
systemd
weiß nicht, wie Swap verwaltet wird, aber ich glaube, dass das Endergebnis dasselbe ist: Ein Userspace-Prozess weiß, welcher Speicherplatz für Swap zugewiesen ist, und der Userspace-Prozess informiert den Kernel.quelle
/etc/fstab
an ihremsw
Mount-Typ als an ihremswap
VFS-Typ.systemd-gpt-auto-generator
.Alle anderen Antworten geben an, wie beim Booten auf ein Swap-Dateisystem verwiesen wird.
Es gibt jedoch einige Punkte, die zu den anderen Antworten hinzugefügt werden müssen:
mkswap
.swapon
;swapoff
.quelle