LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1013|回复: 4

使用img文件作为swap分区的方法

[复制链接]
发表于 2012-1-10 10:25:58 | 显示全部楼层 |阅读模式
原因:编译kvm的时候老是内存不足,我的硬盘又没有未分区的空间可以用了,所以就想在本地创建一个img作为交换分区,具体办法如下:
1、dd if=/dev/zero of=~/swap.img bs=1024 count=1024000
bs和count参数决定img文件的大小:文件大小=bs x count,这里我们创建一个1G的文件
2、losetup /dev/loop0 ~/swap.img
把swap.img映射到/dev/loop0设备,这样/dev/loop0就是这个img了。
3、mkswap /dev/loop0
把/dev/loop0设置为swap分区
4、sudo swapon /dev/loop0
启用loop0分区

至此就完成了所有的启用工作。如果用完想关掉它,也行:
1、sudo swapoff /dev/loop0
2、losetup -d /dev/loop0
3、rm -f ~/swap.img(建议不做这个,留着以后备用)

根据二楼的链接又学习并实验了一下,更简单的步骤如下:
1、1、dd if=/dev/zero of=~/swap.img bs=1024 count=1024000
bs和count参数决定img文件的大小:文件大小=bs x count,这里我们创建一个1G的文件
2、chmod 0600 swap.img
3、mkswap swap.img(但在btrfs环境下必须mount成loopback device。——借用二楼的,再次感谢RichardGv)
4、sudo swapon swap.img
发表于 2012-1-10 12:05:38 | 显示全部楼层
两点补充:

  • losetup那一步其实不必要。mkswap可以直接接受一个文件名作为swap。(但在btrfs环境下必须mount成loopback device。)
    "Four-step Process to Add Swap File": https://help.ubuntu.com/communit ... _I_add_more_swap.3F
  • swap.img要保证0600的权限,否则会是一个安全漏洞。
回复 支持 反对

使用道具 举报

发表于 2012-1-10 21:12:40 | 显示全部楼层
感谢分享,受教了
回复 支持 反对

使用道具 举报

发表于 2012-1-11 12:24:40 | 显示全部楼层
谢谢经验分享,收藏备用。
回复 支持 反对

使用道具 举报

发表于 2012-1-29 17:00:28 | 显示全部楼层
不知道和直接使用临时文件swap有啥区别?

^_^
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表