Wie kann man mehr Platz zum Tauschen und Erhöhen der Größe als Ram zuweisen?

8

Situation: Erhöhen Sie die Swap-Größe ( /dev/sda3) um mehr als Ram (8 GB), wenn HD 128 GB
Motivation: 8 GB RAM sind zu wenig; 30 GB freier Speicherplatz in meiner SSD; Ich möchte 20 GB auf SSD-Swap-
Eigenschaften des Systems umstellen

  • Swap nicht unveränderlich / veränderbar. Ich kann keine Beweise dafür finden, warum /mnt/.swapfileunveränderlich sein sollte, sodass Sie die Dateiattribute der Auslagerungsdatei nicht ändern müssen

    sudo lsattr /mnt/.swapfile 
    -------------e-- /mnt/.swapfile
    
  • Befehl sudo fdisk -lu /dev/sdagibt

    Disk /dev/sda: 113 GiB, 121332826112 bytes, 236978176 sectors 
    Units: sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 4096 bytes
    I/O size (minimum/optimal): 4096 bytes / 4096 bytes
    Disklabel type: gpt
    Disk identifier: 082F85CA-EE3E-479C-8244-858B196FA5BA
    
    Device         Start       End   Sectors   Size Type
    /dev/sda1       2048      4095      2048     1M BIOS boot
    /dev/sda2       4096 220323839 220319744 105.1G Linux filesystem
    /dev/sda3  220323840 236976127  16652288     8G Linux swap
    
  • Befehl df -hgibt

    Filesystem      Size  Used Avail Use% Mounted on
    udev            3.9G     0  3.9G   0% /dev
    tmpfs           793M  9.4M  784M   2% /run
    /dev/sda2       104G   74G   25G  75% /
    tmpfs           3.9G   54M  3.9G   2% /dev/shm
    tmpfs           5.0M  4.0K  5.0M   1% /run/lock
    tmpfs           3.9G     0  3.9G   0% /sys/fs/cgroup
    tmpfs           793M   64K  793M   1% /run/user/1000
    
  • Weisen Sie mehr Speicherplatz für Swap in zu /dev/sda3.

Mein erfolgloser Workflow für die Aufgabe, wenn HD und Swap auf derselben Partition ausgeführt werden. /dev/sda3

masi@masi:~$ sudo -i

root@masi:~# swapoff /dev/sda3

root@masi:~# swapon
[blank]    

root@masi:~# dd if=/dev/zero of=/dev/sda3 bs=20480 count=1M
dd: error writing '/dev/sda3': No space left on device
416308+0 records in
416307+0 records out
8525971456 bytes (8.5 GB, 7.9 GiB) copied, 18.7633 s, 454 MB/s

root@masi:~# mkswap /dev/sda3
Setting up swapspace version 1, size = 8 GiB (8525967360 bytes)
no label, UUID=245cb42c-1d4e-4e21-b544-16b64af962d6

root@masi:~# swapon -p 99 /dev/sda3

root@masi:~# swapon
NAME       TYPE      SIZE USED PRIO
/dev/sda3  partition   8G   0B   99

root@masi:~# vi /etc/fstab 
...

HD und Swap auf derselben Partition - Aktueller Workflow [Ijaz, cas, FarazX]

Zusammenführen. Verwenden Sie fallocatestattdessen am Anfang, ddda keine Nullen gesetzt werden müssen

masi@masi:~$ sudo fallocate -l 20G /mnt/.swapfile

masi@masi:~$ sudo mkswap /mnt/.swapfile 
Setting up swapspace version 1, size = 20 GiB (21474832384 bytes)
no label, UUID=45df9e48-1760-47e8-84d7-7a14f56bbd72

masi@masi:~$ sudo swapon /mnt/.swapfile
swapon: /mnt/.swapfile: insecure permissions 0644, 0600 suggested.

masi@masi:~$ sudo chmod 600 /mnt/.swapfile

masi@masi:~$ free -m
              total        used        free      shared  buff/cache   available
Mem:           7925        1494         175         196        6255        5892
Swap:         28610           0       28610

Fügen Sie die folgende Zeile in Ihre ein, /etc/fstabdie besser ist, als das Ding zu Ihren runlevels ( /etc/rc.local) hinzuzufügen , in der ich die Auslagerungsdatei in die Zeile einfüge, /mnt/.swapfileum die Linux / Unix-Philosophie beizubehalten und die Integrität meiner Systemsicherungsskripte aufrechtzuerhalten. Verwenden Sie beim Wechseln zu einer SSD die discardOption, damit die Blöcke bei jedem Neustart abgeschnitten werden, also nichtsw

# http://unix.stackexchange.com/a/298212/16920
# http://unix.stackexchange.com/a/298543/16920

# If swap is on SSD, trim blocks each time at startup.
/mnt/.swapfile  none    swap    defaults,discard      0        0

# If swap on External HDD, just use sw.
#/media/masi/SamiWeek/.swapfile  none    swap    sw      0        0

Quellen

  1. Wie kann der Swap Space vergrößert werden? https://askubuntu.com/a/178726/25388 Allgemeine Diskussion über die Vergrößerung des Swap Space für Anfänger.
  2. Linux Partition HOWTO für Festplatten, nicht SSDs: 4. Partitionierungsanforderungen. http://www.tldp.org/HOWTO/Partition/requirements.htmldefaults,discard Setzen Sie Ihren Swap also nicht auf äußere Spuren auf SSDs, sondern verwenden Sie Optionen, um Ihre Blöcke wie von @cas vorgeschlagen zu trimmen.

System: Linux Ubuntu 16.04 64-Bit-
Linux-Kernel: 4.6
Linux-Module: wl
Hardware: Macbook Air 2013-Mid
Ram: 8 GB
SSD: 128 GB

Léo Léopold Hertz 준영
quelle
Ausgabe von fdisk -lu /dev/sda?
Stéphane Chazelas
Die Optionen verkleinern fs auf / dev / sda2 und die Neupartitionierung (dies kann jedoch nicht vom Live-System aus erfolgen, da Sie / dev / sda2 nicht aushängen können, da dies das Root-Dateisystem ist: Das Booten auf einer Live-CD ist am einfachsten) oder verwenden eine Swap-Datei im Gegensatz zum Blockieren des Geräts oder verwenden Sie komprimierten Swap oder komprimierten RAM
Stéphane Chazelas
1
Nur wenige dieser Überlegungen zur Platzierung gelten für SSDs: s, da sie keine Köpfe oder Spuren wie sich drehende Festplatten haben. Wenn Sie eine große E / A-Last haben, kann das Striping über mehrere Laufwerke erfolgen.
Ilkkachu
1
@Masi Hey Kumpel, ich habe mit meinem FreeBSD-System gearbeitet und mir ist etwas in den Sinn gekommen. Wir haben einen Befehl chflagsunter BSD und OS X und einen Befehl unter Linux. chattrSie können Ihre Dateien und Verzeichnisse immer sicherer machen und unveränderlich durch das Setzen einiger Attribute, hier ist eine Anleitung auf tecmint.com , ich hoffe, dies kann helfen.
FarazX

Antworten:

3

Sie möchten nur die Swap-Größe auf Ihrem System mithilfe des Speicherplatzes von erhöhen sda2. Ihresda2

/dev/sda2       104G   74G   25G  75%  / 

Sie können Ihrem System zusätzlichen Swap-Speicherplatz hinzufügen, indem Sie eine darauf erstellte Swap-Datei verwenden /, die Ihre verwendet sda2. Mach einfach:

dd if=/dev/zero of=/swapfile bs=20480 count=1M

und dann mache:

sudo mkswap /swapfile  
sudo swapon /swapfile 

und überprüfen Sie, ob Sie den Speicherplatz um diesen Betrag erhöhen free -m

und ja, um es beim Booten zu aktivieren, fügen Sie den Eintrag in hinzu /etc/fstab

 /swapfile     none     swap     sw     0     0
Ijaz Ahmad Khan
quelle
3
Ja, Sie sollten in der Lage sein zu berechnen. Swapper sollte einen großen virtuellen Speicher sehen.
Lmwangi
3
@masi Wenn Sie einen Eintrag in hinzufügen /etc/fstab, können Sie die Einträge in vermeiden rc.local. /mnt/.swap
Platzieren
4
  1. Speicherverwaltung

    • So zeigen Sie die Zusammenfassung der Swap-Nutzung durch Ihr Gerät an:

      $ swapon -s
      
    • So zeigen Sie die Menge Ihres freien und verwendeten physischen Speichers und Swap-Speichers an:

      $ free -h
      
    • Um / swapfile vorab Speicherplatz zuzuweisen, können Sie die folgende Zeile verwenden:

      $ fallocate -l 20G /swapfile
      % OR
      $ dd if=/dev/zero of=/swapfile bs=20480 count=1M
      
  2. Berechtigung ändern und Swap erstellen / aktivieren

    $ chmod 600 /swapfile
    
    $ mkswap /swapfile
    
    $ swapon /swapfile
    

    Sie können auch Ihre Datei Sicherheit , indem Sie Ihre Datei verbessern Attribute verwenden chattr. Ich empfehle Ihnen, die Handbuchseite zu lesen oder diese Anleitung auf der Tecmint-Website zu lesen .

  3. Stellen Sie sicher, dass es aktiviert ist, indem Sie die Ausgabe des Befehls anzeigen, den Befehl cat /proc/swapsverwenden freeoder

    $ swapon -s
    
  4. Um sie zu aktivieren beim Booten , zu bearbeiten /etc/fstab(statische Informationen über das Dateisystem) auf die folgenden Angaben enthalten , wo die Felder sind fs_spec, fs_file, fs_vfstype, fs_mntops, fs_freqund fs_passno, über die Sie gelesen von man 5 fstab:

    $ vi /etc/fstab
    
    /swapfile     none     swap     defaults,discard     0     0
    
    • In dem fourt Parameter fs_mntops , nicht nur verwenden , swwenn sie eine SSD tauschen , aber defaults,discardso , dass die Speicherblocks jedes Mal beim Start getrimmt werden, finden Sie die Antwort hier etwa Wie Fehler-Trapping zu tun und swapoff wenn Fehler / Warnung? Die discardOption funktioniert definitiv auf Partitionen.
FarazX
quelle
2
@Masi nein, fallocate ist einfach, es ist nicht nötig, Nullen zu setzen und die Anzahl über zu setzen, ddda Sie es möglicherweise falsch machen, wenn Sie nicht wissen, was Sie tun. Dies ist ein überaus ddmächtiger Befehl. Und AFAIK Swap Space unter Linux wird verwendet, wenn der physische Speicher (RAM) voll ist, und beachten Sie, dass es keinen Mount-Punkt gibt. Also ich denke es ist egal wo es ist, chmod es einfach auf 600.
FarazX
1
@Masi mein Vergnügen. Übrigens können Sie über Felder lesen, fstabindem Sie ausführen man 5 fstab. Viel Glück, Junge.
FarazX
@Masi ja natürlich. Sie können Dateiattribute nach auflisten lsattrund, wie bereits erwähnt, nach festlegen chattr. Wenn Sie es beispielsweise unveränderlich machen möchten, können Sie es verwenden chattr +i /mnt/.swapfileoder in BSD oder OS X verwenden chflags uchg yourFile. Sie haben viele Attributoptionen. Wenn beispielsweise eine Datei mit sAttributsatz gelöscht wird, werden ihre Blöcke auf Null gesetzt und auf die Festplatte zurückgeschrieben. Aber ich empfehle Ihnen, die Handbuchseite zu lesen und im Internet zu surfen. Es ist nicht so einfach, wie es scheint chattr, und Sie sollten sich bewusst sein, was Sie wirklich tun werden!
FarazX
1
Das @ Masi AFAIK-Einstellungsattribut entspricht Ihren Anforderungen, daher lautet die Antwort für die meisten Systeme "Nein". Sie können jedoch einige Unix-ähnliche Betriebssysteme finden, bei denen einige Dateien oder Verzeichnisse mit unveränderlichen oder eingeschränkten Attributen standardmäßig für Instanz MacOS X festgelegt sind.
FarazX
1
@Masi in der Tat gibt es keine Notwendigkeit, dies standardmäßig zu tun, daher denke ich, dass die Antwort nein ist, da Swapfiles höchstwahrscheinlich vorübergehend nicht dauerhaft verwendet werden. Wenn Sie LVM-Partitionen verwenden, ist es besser, die Swap-Partition zu erhöhen, als eine Swap-Datei zu erstellen. Wenn Sie dies jedoch nicht tun können und Swap-Dateien die einzige Option sind, gibt es kein Problem, aber es wirkt sich auf Ihr System aus und verlangsamt dessen Leistung. Es gibt kein Regelwerk, alles hängt von Ihren Anforderungen ab und davon, was Sie dafür tun können und wie sicher Ihr System sein soll.
FarazX
2

Ihre Frage " Wie Sie mehr Speicherplatz zum Tauschen und Erhöhen der Größe als Ram zuweisen? " Sagt nichts über die Änderung der Art und Weise, wie Ihr System eingerichtet ist.

Ihre fdisk und kostenlose Ausgabe sagt uns:

  • Sie haben eine Partition (/ dev / sda3) für den Austausch. Wenn Sie nur die Größe dieser Partition ändern, sollten Sie nichts in Ihrem System ändern müssen, um den zusätzlichen Speicherplatz zu nutzen. (/ etc / fstab).
  • Sie haben eine Partition (/ dev / sda2), auf der das Betriebssystem installiert ist. Diese Partition verfügt über 26G freien Speicherplatz. Wenn Sie diese Partition um 20 G verkleinern, stehen dem Betriebssystem noch 5 G zum Wachsen und Verwenden zur Verfügung.

Die Swap-Partition ist keine erweiterte Partition, daher ist es etwas einfacher, die Größe zu erhöhen.

Werkzeuge benötigt:

  • Bootfähiges Betriebssystem mit gparted

Suchen Sie hier nach einem Speicherort der letzten kostenlosen Version von Parted Magic

Anleitung zum Ändern der Größe von Partitionen mit gparted

  1. Booten Sie ein anderes Betriebssystem, das über ein gparted-Tool verfügt
  2. In gparted; Ändern Sie die Größe der Betriebssystempartition (/ dev / sda2). Schrumpfen Sie um den Betrag, um für den Platzwechsel zu spenden. Dies kann viel Zeit in Anspruch nehmen, da alle Daten, die sich in dem freigegebenen Speicherplatz befinden, von gparted verschoben werden müssen.
  3. In gparted; Ändern Sie die Größe der Swap-Partition (/ dev / sda3). Verschieben und erweitern, um den gesamten freien Speicherplatz einzuschließen.
  4. Starten Sie das sda2-Betriebssystem neu.
  5. Überprüfen Sie, ob die Swap-Partition (/ dev / sda3) verwendet wird.

Denken Sie daran, dass Sie Ihre Festplatte und Partitionen auf einer niedrigen Ebene ändern und dass Fehler oder Abstürze Ihre Daten beschädigen können.

Sichern Sie zuerst Ihre Daten.

jc__
quelle
Ich denke, Sie brauchen gpartedhier nicht , weil Sie Tupfer in die gleiche Festplatte legen können, auf der sich Ihr Betriebssystem befindet.
Léo Léopold Hertz 28
Stimmt, aber dann hätten Sie 2 Swap. Datei auf / sda2 und Partition auf / sda3. Dies beantwortet den Teil der Frage, der lautete: "Weisen Sie Swap in / dev / sda3 mehr Speicherplatz zu. Wie wird er aus / dev / sda2 übernommen?".
jc__
In Bezug auf die Aussage: "Ich bin mir jedoch nicht sicher, da ich denke, dass / dev / sda2 und / dev / sad3 auf derselben Festplattenpartition liegen". /dev/sda2 und /dev/sda3 sind separate Partitionen.
jc__
Sie fügen also ein anderes Gerät hinzu, auf dem Speicherplatz vorhanden ist, den Sie für den Tausch verwenden möchten? Falls ja. Sie können eine neue Partition vom Typ Swap darauf erstellen und, wenn sie angeschlossen und einsatzbereit ist, eine swaponoder eine ähnliche Partition ausführen . Führen Sie beim Entfernen des Geräts eine swapoffoder ähnliche Schritte aus. Der Gerätetauschstatus wird beim Neustart des Betriebssystems nicht gespeichert.
jc__
1
mkfs formatiert eine Partition mit einem Dateisystem. (vfat, ext2, ext4, ntfs). chattr ändert die Dateiattribute einer Datei in einem ext-Dateisystem.
jc__