Linux

如何分配更多的空間來交換和增加它的大小比 Ram 更大?

  • September 11, 2016

情況:當 HD 128 GB 時,將交換大小 ( /dev/sda3) 增加到大於 Ram (8 GB)

動機:8 GB RAM 太少;我的 SSD 中有 30 GB 可用空間;我想將 20 GB 轉為 SSD 交換

系統的特點

  • 交換非不變/可變。我找不到任何證據為什麼/mnt/.swapfile應該是不可變的,所以你不需要更改交換文件的文件屬性
sudo lsattr /mnt/.swapfile 
-------------e-- /mnt/.swapfile
  • 命令sudo fdisk -lu /dev/sda給出
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
  • 命令df -h給出
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
  • 為 Swap in 分配更多磁碟空間/dev/sda3

當 HD 和 Swap 在同一個分區上時,我的任務工作流程不成功,/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 和交換 - 目前工作流程$$ Ijaz, cas, FarazX $$

合併。fallocate在開頭使用,dd因為不需要輸入零

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

添加以下行/etc/fstab比將內容添加到執行級別(/etc/rc.local)更好,我將交換文件放入其中/mnt/.swapfile以維護 Linux/Unix 理念並維護我的系統備份腳本的完整性;如果交換到 SSD,請使用該discard選項,以便在每次重新啟動時修剪塊,因此不sw

# 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

來源

  1. 如何增加交換空間?https://askubuntu.com/a/178726/25388關於為初學者增加交換空間的一般性討論。
  2. 適用於 HDD 而非 SSD 的 Linux 分區 HOWTO:4. 分區要求。http://www.tldp.org/HOWTO/Partition/requirements.html所以不要把你的交換放在 SSD 的外部軌道上,而是使用defaults,discard@cas 建議的選項來修剪你的塊。

系統:Linux Ubuntu 16.04 64 位

Linux 核心:4.6

Linux 模組:wl

硬體:Macbook Air 2013-mid

Ram:8 GB

SSD:128 GB

您只想使用sda2. 您的sda2

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

您可以使用創建的交換文件向系統添加額外的交換空間,/該文件將利用您的sda2. 做就是了:

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

然後做:

sudo mkswap /swapfile  
sudo swapon /swapfile 

並檢查,您的交換空間將使用該數量增加free -m

是的,要在啟動時啟用它,請添加條目/etc/fstab

/swapfile     none     swap     sw     0     0

引用自:https://unix.stackexchange.com/questions/297767