问题描述:
开机过程中显示Gave up waiting for suspend/resume device
可能原因:
swap的uuid变动导致和/etc/initramfs-tools/conf.g/resume文件中的uuid对应不上
尝试方法:
- blkid,查看所有分区uuid
- 编辑resume,修正uuid
- update-initramfs -u
- 重启提示消失
顺便一提内存替换swap的两种方式
第一种
分区的建立和修改就不说了,推荐用fdisk,其他的修改分区的工具都行,当分区建立好之后,需要做以下几件事:
- 把原来的swap关掉.
- 把/etc/fstab下的swap注释掉
- 查找新分区的UUID
- 修改/etc/fstab,把新swap加上
- 激活新swap(这里假定新分区为sda5)
- 修改
/etc/initramfs-tools/conf.d/resume上的UUID为新分区的UUID
- 重建initrd档
1
| $ sudo update-initramfs -u
|
第二种
- 创建Swap文件
1 2 3
| $ mkdir swap $ cd swap $ sudo dd if=/dev/zero of=swapfile bs=1024 count=100000
|
- 把生成的文件转换成Swap文件
1 2 3
| $ sudo mkswap swapfile Setting up swapspace version 1, size = 102395 kB no label, UUID=09fde987-5567-498a-a60b-477e302a988b
|
- 激活Swap文件。
- 如果需要一直保持这个swap,可以把它写入/etc/fstab文件。(查看UUID同上)
1
| swapfilepath swap swap defaults 0 0
|
优化swap
在debian系里面,swappiness的值的大小对如何使用swap分区是有着很大的联系的。
swappiness=0的时候表示最大限度使用物理内存,然后才是 swap空间,
swappiness=100的时候表示积极的使用swap分区,并且把内存上的数据及时的搬运到swap空间里面。
两个极端,对于ubuntu的默认设置,这个值等于60,建议修改为10。具体这样做:
- 查看你的系统里面的swappiness
1
| $ cat /proc/sys/vm/swappiness
|
不出意外的话,应该看到是 60
- 修改swappiness值为10
1
| $ sudo sysctl vm.swappiness=10
|
但是这只是临时性的修改,在重启系统后会恢复默认的60,所以,还要做一步:
在这个文档的最后加上这样一行:
然后保存,重启。
either I will find a way, or I will make one.