我大约一个月前安装了 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
Run Code Online (Sandbox Code Playgroud)
然后我尝试使用分配一些交换空间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
Run Code Online (Sandbox Code Playgroud)
我也试过命令sudo dd if=/dev/zero of=/swapfile bs=1G count=4,输出是:
dd: memory exhausted by input buffer of size 1073741824 bytes (1.0 GiB)
Run Code Online (Sandbox Code Playgroud)
然后我尝试sudo fallocate -l 4G /swapfile但输出是:
fallocate: /swapfile: fallocate failed: Operation not supported
Run Code Online (Sandbox Code Playgroud)
我还检查了我的硬盘驱动器,以下是我的硬盘驱动器结构:
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
Run Code Online (Sandbox Code Playgroud)
的输出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
Run Code Online (Sandbox Code Playgroud)
请告诉我如何在不影响我的任何数据的情况下添加交换。我已经安装了 64 位 Ubuntu LTS 并且有 3GB 的内存和 500GB 的硬盘。
我去过这个Ask Ubuntu question,我尝试了命令,输出是:
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:~$
Run Code Online (Sandbox Code Playgroud)
Ben*_*imm 52
首先,要创建 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
Run Code Online (Sandbox Code Playgroud)
或者
$ sudo fallocate -l 4000M /swapspace
Run Code Online (Sandbox Code Playgroud)
接下来将其转换为可用的交换文件:
$ sudo mkswap /swapspace
Setting up swapspace version 1, size = 4095996 KiB
no label, UUID=7d1895e4-7ccf-42c6-979a-51ebddb49e91
Run Code Online (Sandbox Code Playgroud)
激活它:
$ sudo swapon /swapspace
Run Code Online (Sandbox Code Playgroud)
确认活动交换空间:
$ cat /proc/swaps
Filename Type Size Used Priority
/swapspace file 4095996 0 -1
Run Code Online (Sandbox Code Playgroud)
接下来,将以下行添加到 /etc/fstab 以在启动时激活新交换:
/swapspace none swap defaults 0 0
Run Code Online (Sandbox Code Playgroud)
另请参阅此 wiki 页面:https : //help.ubuntu.com/community/SwapFaq
要间接回答您的问题,您不需要自己管理交换文件。有一个名为 swapspace 的包,它会根据需要动态添加交换文件。
然后你就完成了。您的系统将根据需要扩大和缩小交换空间。
按着这些次序:
sudo dd if=/dev/zero of=/mnt/{filename}.swap bs=1M count={swap_size}sudo mkswap /mnt/{filename}.swapsudo swapon /mnt/{filename}.swapsudo gedit /etc/fstab/mnt/{filename}.swap none swap sw 0 0注意:将 {filename} 替换为您要为文件设置的任何名称,并将 {swap_size} 替换为您要分配给交换文件的大小。确保文件的大小必须是内存大小的两倍。
| 归档时间: |
|
| 查看次数: |
25476 次 |
| 最近记录: |