Ich habe ein Skript, das ich ausführe, um den Speicherplatz vor dem Sichern eines virtuellen Gasts zu optimieren (es spielt wirklich keine Rolle, welcher Hypervisor verwendet wird).
Moderne Ubuntu-Versionen (z. B. 18.04) scheinen standardmäßig /swapfile
eher eine als eine Partition für diesen Zweck zu verwenden. Das ist auch gut so.
Ich möchte jedoch die Auslagerungsdatei zusammen mit der Stammpartition, die sie enthält, auf Null setzen.
Bei Swap- Partitionen war dies relativ schmerzlos, da es immer eine Möglichkeit gab, das vorhandene $UUID
aus der Swap-Partition zu extrahieren und - nach dem Nullen der Partition - auszuführen mkswap -U $UUID
, um die Swap-Partition neu zu erstellen.
Allerdings /swapfile
sehe ich mit dem nicht, wie das geht. Obwohl mir klar ist, dass Sie eine /swapfile
UUID nicht einbinden können /etc/fstab
, möchte ich die UUID trotzdem beibehalten.
Ich denke, ich brauche eine der folgenden Möglichkeiten, um fortzufahren:
- Ich benötige eine Methode, mit der die Auslagerungsdatei auf Null gesetzt werden kann, ohne auch die Strukturen zu löschen, die sie zu einer Auslagerungspartition machen (dh vermeiden, dass sie ausgeführt werden muss
mkswap -U $UUID
). - Ich brauche eine Methode , um die bestehenden UUID aus einem Swap abzurufen Datei (im Gegensatz zu einer Partition Gegensatz , wo ich etwas von verwenden kann ,
blkid
zu betrachten/dev/disk/by-uuid/$UUID
...)
blkid
mit einem Parameter verwendet. Ich denke, ich sollte das tun, anstatt zum Beispieldd
mit einem Offset zu arbeiten.blkid
. Abhängig von der Version können Sie möglicherweiseblkid swap -o value -s uuid
nur die UUID extrahieren.blkid -o export <file>
ichsed
es durchpfeife,local
um jeder Zeile voran zu stellen und danneval
Bash zu verwenden. Auf diese Weise habe ich die Werte sofort als lokale Umgebungsvariablen in meiner Funktion.