Wie ändere ich die Swap-Partition unter Linux?


12

Wie ändere ich die Swap-Partition unter Linux? Wenn ich derzeit / dev / hda3 für Swap verwende und lieber / dev / hda4 verwenden möchte, welche Schritte sollte ich ausführen?


1
Es lohnt sich wahrscheinlich, eine logische Partition / dev / hda5 in der primären Partition / dev / hda4 zu erstellen und für den Austausch zu verwenden. Auf diese Weise müssen Sie nicht die gesamte Datei / dev / hda4 für den Austausch ausgeben und können andere logische Partitionen erstellen
dmityugov

Antworten:


25

Mach es als root:

swapoff /dev/hda3
mkswap /dev/hda4
swapon /dev/hda4

und bearbeiten Sie den Swap-Eintrag in / etc / fstab


13

Wenn Sie über ausreichend RAM verfügen und Ihre Anwendungen nicht speicherintensiv sind, können Sie eine separate Datei als Auslagerungsdatei anstelle der gesamten Partition verwenden. Auf diese Weise können Sie ganz einfach die Menge des von Ihnen verwendeten Auslagerungsspeichers auswählen, indem Sie weitere Auslagerungsdateien hinzufügen oder die Größe bestehender Dateien ändern.

Angenommen, Ihre Auslagerungsdatei befindet sich im Stammverzeichnis als /swapfile und hat eine Größe von 512 MB. Um es zu erstellen, geben Sie die folgenden Befehle als root ein:

$ dd if=/dev/zero of=/swapfile bs=1M count=512
$ mkswap /swapfile
$ swapon /swapfile

Um es nach dem Neustart automatisch zu verwenden, fügen Sie in ein /etc/fstab :

/swapfile    none    swap    defaults    0 0

Das Hinzufügen weiterer Auslagerungsdateien ist so einfach wie das Erstellen weiterer Dateien ( /swapfile1, /swapfileX) und das Formatieren mitmkswap und Aktivierung swapon. Wenn Sie eine Auslagerungsdatei deaktivieren möchten, können Sie den Befehl verwenden swapoff /swapfile.

Was die Leistung zwischen Datenträger- und Dateiversion betrifft, so ist das nicht so schlimm. Sie können swapfile sogar als Ruhezustand in Laptops verwenden (obwohl ich dafür sowieso immer eine separate Partition verwende).


swapfile ist keine gute Idee, da ext4 für häufige Schreibvorgänge super SLOW und SSD ist. Aus diesem Grund hat Linux Swap standardmäßig ein anderes Dateisystem. Der richtige Weg wäre, die Größe der Partitionstabelle zu ändern, um eine größere Swap-Partition zu erhalten.
Evalds Urtans

9

On the fly:

sudo swapoff /dev/hda3
sudo mkswap /dev/hda4
sudo swapon /dev/hda4

Wenn Sie den mkswap gestartet haben, bearbeiten Sie die Datei / etc / fstab und ändern Sie die Zeile / dev / hda3 entsprechend.


4

Sie müssen / dev / hda4 als Swap formatieren, was meiner Meinung nach nur die Dateisystemtabellen löscht, dann einfach / etc / fstab editieren und auf / dev / hda4 zeigen. Dann neu starten und Sie sollten gut sein. Es versteht sich von selbst, dass Sie alle Daten auf / dev / hda4 verlieren werden. Sie können gparted als GUI für die Formatierung verwenden.


1
Sie müssen Linux 2.6.x nach dem Formatieren einer Partition nicht neu starten, auch nicht nach dem Ändern der Partitionstabelle der Festplatte.
Drybjed

Guter Punkt, aber ich habe mich an die KISS-Philosophie gehalten.
skitzot33

@skitzot33 Ist das Booten nicht einfacher als das Booten ?
Glglgl

2

Die Lösung von mateusza ist in Ordnung, aber der Status kann möglicherweise nicht zurückgerufen werden, wenn der Ruhezustand wiederhergestellt wird. Einige zusätzliche Operationen sind erforderlich:

# prepare your partitions
swapoff /dev/sda2
mkswap /dev/sda3
swapon /dev/sda3

# find swap uuid
sudo blkid | grep swap
# OR
sudo echo ls -l /dev/disk/by-uuid | grep sda3 |  cut -d' '  -f8 >> /etc/fstab

# edit swap entry in /etc/fstab
gksu gedit /etc/fstab

# edit the uuid line in /etc/initramfs-tools/conf.d/resume
gksu gedit /etc/initramfs-tools/conf.d/resume

# In terminal, execute this command
sudo update-initramfs -u

Sie können Ihren Winterschlaf hier testen, wenn es nicht funktioniert:

# check your /etc/default/grub file
gksu gedit /etc/default/grub

# Depending on your version : if a line looks like
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash resume=UUID=<old_swap_partition_uuid>"
# then modify it accordingly; otherwise that's all, you're done

# execute in terminal
sudo update-grub

genommen von askubuntu

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.