如何设置Ubuntu的swap区

本文介绍如何通过创建swap文件来增加Linux系统的swap空间。共分为四步:创建预设大小的文件、将其格式化为swap、添加到现有系统及进行永久性变更。
如何添加swap?


swap 一般都在一个专有的swap区里,这可能是因为在安装的时候系统会提示你创建一个swap区。但实际上任何文件都可以被用作swap(交换设备),无论是一个分区或是一个简单的文件。尽管如此,为了更好的体验效果和感应速度,还是建议使用大容量的内存,而不是依赖swap。可以通过添加一个swap文件来增加swap。


共分四步



  1. 创建一个你预设好大小的文件。

  2. 将该文件格式化成swap(交换设备)。

  3. 将swap添加到现有系统中。

  4. 在系统里作一个永久性变更。


要添加一个512M的swap



  • 创建一个512M的文件:


我们会在 /mnt/512Mb.swap 上创建一个swap文件。


sudo dd if=/dev/zero of=/mnt/512Mb.swap bs=1M count=512



代码中的? count=512 的意思是我们要创建文件,其中包含了512个? bs=1M (bs = block size 区块大小; 1M=1mebibyte 一兆 =1048576 bytes 字节)?的区块。 请注意 *不要* 使用? dd of=/mnt/512Mb.swap bs=1M seek=512 count=0 这条命令。虽然文件会马上增长到512Mb,但是这是有漏洞的,可能会造成无法使用。



  • 格式化文件,使之成为swap(交换设备):


sudo mkswap /mnt/512Mb.swap




  • 将swap加入到现有系统中:


sudo swapon /mnt/512Mb.swap



现在新增的swap可以通过” cat /proc/meminfo “命令看到。



  • 做永久性变更:


编辑 /etc/fstab 文件:


gksudo gedit /etc/fstab



在文件末尾加上如下一行:


/mnt/512Mb.swap  none  swap  sw  0 0



保存并重启。


一个swap文件的示例


如下的例子展现了在一台没有swap分区的电脑上创建和使用swap。


user@computer:~$ sudo dd if=/dev/zero of=/mnt/512Mb.swap bs=1M count=512
Password:
512+0 records in
512+0 records out
536870912 bytes (537 MB) copied, 35.3802 seconds, 15.2 MB/s
user@computer:~$ sudo mkswap /mnt/512Mb.swap
Setting up swapspace version 1, size = 536866 kB
no label, UUID=dd6a01c8-93f0-41e0-9b7a-306956d8821b
user@computer:~$ sudo swapon /mnt/512Mb.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

撤销你的变更 :


基本上只要将刚才所做的再反过来做一遍就好了。


gksudo gedit /etc/fstab



删除刚才添加的最末一行


/mnt/512Mb.swap  none  swap  sw  0 0



在现有系统中删除swap并删除创建的swap文件。


sudo swapoff /mnt/512Mb.swap && sudo rm /mnt/512Mb.swap



无需重启。



当然,所有例子都不能生搬硬套。 如果安装双系统,我们就可以把swap区设置在扩展分区里,就是我们说的ubuntu和windows共用的storage区, 相应的目录也应该从刚才提到的/mnt/512Mb.swap 改成 /media/xxx/512Mb.swap,xxx每个人都不一样,这取决于你是如何给自己的扩展分区命名的。

### 在 Ubuntu 系统中配置和使用 Swap 分区 #### 添加 Swap 分区 为了在 Ubuntu 上添加一个新的 Swap 文件,可以按照以下方式操作: 1. **创建 Swap 文件** 使用 `fallocate` 命令快速分配磁盘空间来创建一个指定大小的 Swap 文件。例如,创建一个 4GB 的 Swap 文件: ```bash sudo fallocate -l 4G /swapfile ``` 2. **设置文件权限** 修改新创建的 Swap 文件权限,使其仅允许 root 用户访问: ```bash sudo chmod 600 /swapfile ``` 3. **格式化为 Swap 类型** 将该文件标记为 Swap 类型以便系统识别其用途: ```bash sudo mkswap /swapfile ``` 4. **启用 Swap 文件** 启动新的 Swap 文件并将其用于当前会话: ```bash sudo swapon /swapfile ``` 5. **使更改永久生效** 编辑 `/etc/fstab` 文件以确保每次启动时都加载此 Swap 文件: ```plaintext /swapfile none swap defaults 0 0 ``` 这样可以在重启后继续保留 Swap 配置[^2]。 #### 查看 Swap 状态 要验证 Swap 是否已成功激活以及它的状态,可以运行以下命令之一: ```bash swapon --show ``` 或者, ```bash free -h ``` 这两个工具都可以提供关于现有交换域的信息,包括它们的位置、总容量及剩余可用量等细节[^4]。 #### 清空或临时禁用 Swap 当需要清理 Swap 数据或将数据移回物理内存时,先停止所有正在使用的 Swap 设备再重新开启即可完成这一过程。具体做法如下: 1. 关闭所有的 Swap 域: ```bash sudo swapoff -a ``` 2. 再次打开所需的 Swap 域(如果有特定需求保持某些部分处于活动状态的话): ```bash sudo swapon -a ``` 注意,在执行上述步骤前需确认有足够的 RAM 容量可供转移来自 Swap 的内容;否则可能导致性能下降甚至系统崩溃的风险。 #### 移除现有的 Swap 分区 如果决定不再需要某个 Swap 文件,则按顺序执行下列指令: 1. 停止目标 Swap 文件的服务: ```bash sudo swapoff /path/to/your-swap-file ``` 2. 更新 `/etc/fstab` 文件中的条目,删除对应于不需要的那个 Swap 文件记录项。 3. 最终彻底清除硬盘上的实际文件本身: ```bash rm -rf /path/to/your-swap-file ``` 以上即完成了整个从定义到管理再到最终销毁的过程描述[^5]。 #### 自动挂载与服务控制 对于现代基于 systemd 的发行版,默认情况下它会在引导期间自动查找并装载任何发现的 Swap 分区。因此即使未显式编辑 fstab ,只要存在合适的标签也可能被正常处理。然而这并不影响手动设定优先级或其他高级选项的能力[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值