在Ubuntu 14.04 LTS安装后分配交换


25

大约一个月前,我已经安装了Ubuntu 14.04 LTS,同时启动了Ubuntu 14.04 LTS和Windows 8.1。

安装时我没有创建任何交换空间,但是现在我确实需要为Ubunutu添加此空间。我尝试通过使用检查任何分配的交换空间,sudo swapon -s并且得到了空标题,如下所示:

ahsan@ahsan-Inspiron-N5110:~$ sudo swapon -s
Filename                Type        Size    Used    Priority

然后,我尝试使用分配一些交换空间dd of=output.dat bs=1 seek=390143672 count=0,输出为:

0+0 records in
0+0 records out
0 bytes (0 B) copied, 0.000170607 s, 0.0 kB/s

我还尝试了命令sudo dd if=/dev/zero of=/swapfile bs=1G count=4,输出为:

dd: memory exhausted by input buffer of size 1073741824 bytes (1.0 GiB)

然后我尝试了,sudo fallocate -l 4G /swapfile但是输出是:

fallocate: /swapfile: fallocate failed: Operation not supported

我也检查了我的硬盘,以下是我的硬盘结构:

ahsan@ahsan-Inspiron-N5110:~$ df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda2        99G   18G   77G  19% /
none            4.0K     0  4.0K   0% /sys/fs/cgroup
udev            1.4G  4.0K  1.4G   1% /dev
tmpfs           286M  1.2M  284M   1% /run
none            5.0M     0  5.0M   0% /run/lock
none            1.4G   24M  1.4G   2% /run/shm
none            100M   56K  100M   1% /run/user

的输出free -m是:

ahsan@ahsan-Inspiron-N5110:~$ free -m
             total       used       free     shared    buffers     cached
Mem:          2850       2665        184        421         25        846
-/+ buffers/cache:       1794       1055
Swap:            0          0          0

请告诉我如何在不影响我的任何数据的情况下添加交换。我已经安装了64位Ubuntu LTS,并具有3GB RAM和500GB硬盘。

我去过这个 Ask Ubuntu问题,我尝试了命令,输出为:

ahsan@ahsan-Inspiron-N5110:~$ sudo dd if=/dev/zero of=/swapspace bs=1G count=4
4+0 records in
4+0 records out
4294967296 bytes (4.3 GB) copied, 47.1951 s, 91.0 MB/s
ahsan@ahsan-Inspiron-N5110:~$ sudo dd if=/dev/zero of=/swapspace bs=1G count=4sudo mkswap /swapspace
dd: invalid number ‘4sudo’
ahsan@ahsan-Inspiron-N5110:~$ 

您到底要修复什么?“输入缓冲区耗尽的内存”,请解释一下?
Braiam 2014年

1
提示出在错误消息中dd: invalid number '4sudo',对吗?我猜您有一个复制/粘贴问题。很高兴您解决了问题!将来,请仔细阅读这些错误消息,并尝试弄清楚为什么收到该消息!;-)祝您好运。
剥壳机

Answers:


49

首先,创建4,000 MB的交换空间:

$ sudo dd if=/dev/zero of=/swapspace bs=1M count=4000
4000+0 records in
4000+0 records out
4194304000 bytes (4.2 GB) copied, 5.92647 s, 708 MB/s

要么

$ sudo fallocate -l 4000M /swapspace 

接下来将其转换为可用的交换文件:

$ sudo mkswap /swapspace
Setting up swapspace version 1, size = 4095996 KiB
no label, UUID=7d1895e4-7ccf-42c6-979a-51ebddb49e91

激活它:

$ sudo swapon /swapspace 

确认活动交换空间:

$ cat /proc/swaps
Filename                Type        Size    Used    Priority
/swapspace              file        4095996 0       -1

接下来,将以下行添加到/ etc / fstab以在引导时激活新的交换:

/swapspace none swap defaults 0 0

另请参阅以下Wiki页面:https : //help.ubuntu.com/community/SwapFaq


编辑了问题,您可以看看吗
Ahsan Hussain 2014年

抱歉,我错误地尝试了两次运行命令,我认为它对我有用:)现在也显示了系统监视器中的交换信息。非常感谢
Ahsan Hussain 2014年

我重新启动了计算机,交换消失了,它再次不可用
Ahsan Hussain 2014年

1
应将“内存不足”部分添加到答案中。注释只是暂时的,可以删除。
nyuszika7h 2014年

1
sudo apt-get install swapspace 是最好的选择,而不是像这样分配?
LOG_TAG

6

要间接回答您的问题,您不需要自己管理交换文件。有一个名为swapspace的软件包,它将根据需要动态添加交换文件。

  1. sudo apt-get安装swapspace

这样就完成了。您的系统将根据需要增加和缩小交换空间。


5

跟着这些步骤:

  1. sudo dd if=/dev/zero of=/mnt/{filename}.swap bs=1M count={swap_size}
  2. sudo mkswap /mnt/{filename}.swap
  3. sudo swapon /mnt/{filename}.swap
  4. sudo gedit /etc/fstab
  5. 在文件末尾添加以下文本, /mnt/{filename}.swap none swap sw 0 0

注意:将{filename}替换为您要为文件设置的任何名称,并将{swap_size}替换为要分配给交换文件的大小。确保文件的大小必须是内存大小的两倍。


2
“确保文件的大小必须是内存大小的两倍。” 除非您的内存不足(例如1 GB或更少),否则该建议如今已不再成立。如果要使用休眠模式,则至少需要物理内存量作为交换空间,但是如果您有4 GB RAM,则没有理由进行8 GB交换空间。
nyuszika7h 2014年

考虑您的建议。
金刚狼2014年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.