要创建第五个分区,您必须删除现有的四个主分区之一,创建一个扩展分区(它是逻辑分区的容器,因此您可以在具有 MS-DOS 类型的系统上有效地拥有四个以上的分区分区表),然后将您删除的分区重新创建为扩展分区内的逻辑分区。您必须在某个地方备份您删除的分区(或至少是其内容)。这是一个很大的麻烦,在某些情况下是令人望而却步的。
因此,除非您需要 Ubuntu 系统支持休眠(需要交换分区),否则您应该将其设置为使用交换文件。这也能正常运行(前提是您的交换文件存储在 ext2、ext3 或 ext4 分区上)。
以下说明取自Ubuntu 社区文档中的Swap FAQ。这不是一个确切的引用,因为我已经更改了内部一致性和与 AskUbuntu 兼容性的格式;为了清楚起见,我还做了一些微小的编辑。本文档根据CC-BY-SA获得许可,允许将(有修改或无修改)包含在这样的文章中(作为 AskUbuntu.com 的内容,也可根据该许可证获得)。为了清楚起见(或其他目的),进一步编辑它可能是有意义的,但如果进行了重大的进一步修改,最好明确提供它们以供“上游”考虑(以便也改进原始来源)。
信息:目前这不适用于 btrfs 文件系统。见man swapon
。
创建一个 512 MiB 大小的文件(或者用你想要的任何大小替换它):
我们将创建一个/mnt/512MiB.swap
交换文件并设置权限,以便用户无法直接读取它。
sudo fallocate -l 512m /mnt/512MiB.swap
sudo chmod 600 /mnt/512MiB.swap
Run Code Online (Sandbox Code Playgroud)
fallocate
长度后缀为:k、m、g、t、p、e(参见man fallocate
.)
默认情况下,您的交换文件可能会被创建为世界可读的。我们设置了 600 模式权限,以防止用户从交换文件中读取潜在的敏感信息。
如果 fallocatefallocate failed: Operation not supported
像目前在我的 Maverick 机器上那样失败,你可以用旧的方式来做,同样是 512 MiB:
sudo dd if=/dev/zero of=/mnt/512MiB.swap bs=1024 count=524288
sudo chmod 600 /mnt/512MiB.swap
Run Code Online (Sandbox Code Playgroud)格式化该文件以创建交换设备:
sudo mkswap /mnt/512MiB.swap
Run Code Online (Sandbox Code Playgroud)将交换添加到正在运行的系统:
sudo swapon /mnt/512MiB.swap
Run Code Online (Sandbox Code Playgroud)
额外的交换现在可用,可以通过 看到cat /proc/meminfo
。
使更改永久化:
编辑/etc/fstab
:
gksudo gedit /etc/fstab
Run Code Online (Sandbox Code Playgroud)
在文件末尾添加这一行:
/mnt/512MiB.swap none swap sw 0 0
Run Code Online (Sandbox Code Playgroud)
节省。下次重新启动后,将自动使用交换。
这是在没有交换分区的计算机上制作和使用交换文件的示例。
user@computer:~$ sudo fallocate -l 512m /mnt/512MiB.swap
Password:
user@computer:~$ sudo mkswap /mnt/512MiB.swap
Setting up swapspace version 1, size = 536866 kB
no label, UUID=dd6a01c8-93f0-41e0-9b7a-306956d8821b
user@computer:~$ sudo swapon /mnt/512MiB.swap
user@computer:~$ cat /proc/meminfo
MemTotal: 499496 kB
MemFree: 9156 kB
Buffers: 4748 kB
Cached: 233140 kB
SwapCached: 724 kB
Active: 254432 kB
Inactive: 157920 kB
HighTotal: 0 kB
HighFree: 0 kB
LowTotal: 499496 kB
LowFree: 9156 kB
SwapTotal: 524280 kB
SwapFree: 523556 kB
Dirty: 128 kB
Writeback: 0 kB
Mapped: 243420 kB
Slab: 20672 kB
CommitLimit: 774028 kB
Committed_AS: 648680 kB
PageTables: 2224 kB
VmallocTotal: 524280 kB
VmallocUsed: 5708 kB
VmallocChunk: 518176 kB
user@computer:~$ gksudo gedit /etc/fstab
user@computer:~$ free
total used free shared buffers cached
Mem: 499496 479488 20008 0 8256 215892
-/+ buffers/cache: 255340 244156
Swap: 524280 3856 520424
#####Then, after running a few more programs...
user@computer:~$ free
total used free shared buffers cached
Mem: 499496 492768 6728 0 1240 142336
-/+ buffers/cache: 349192 150304
Swap: 524280 53384 470896
#####Next, reboot to make sure it will work consistently.
user@computer:~$ free
total used free shared buffers cached
Mem: 499496 493136 6360 0 7528 174700
-/+ buffers/cache: 310908 188588
Swap: 524280 17148 507132
Run Code Online (Sandbox Code Playgroud)
撤消基本上遵循相同的相反过程。
gksudo gedit /etc/fstab
Run Code Online (Sandbox Code Playgroud)
删除该行:
/mnt/512MiB.swap none swap sw 0 0
Run Code Online (Sandbox Code Playgroud)
从正在运行的系统中删除交换并删除交换文件:
sudo swapoff /mnt/512MiB.swap && sudo rm /mnt/512MiB.swap
Run Code Online (Sandbox Code Playgroud)
无需重新启动。
来源:如上所述,这是Ubuntu社区创作文档中SwapFaq的衍生作品。该页面由Contributors to the Ubuntu documentation wiki
. (此AskUbuntu 答案的维护者应在编辑或删除此引文之前仔细阅读此法律信息,以确保继续满足对原作者给予荣誉的要求。)
归档时间: |
|
查看次数: |
10179 次 |
最近记录: |