我在笔记本电脑上安装了以下程序:
/dev/sda1 (ext4) /
/dev/sda2 (ext4) /home
/dev/sda3 swap partition
/dev/sda4 (ntfs) /media/windows
在厌倦了 Windows 之后,我删除了最后一个分区。由于交换分区位于中间,所以我也删除了 sda3,并使用该空间来扩展 /home,因此我不得不在最后重建交换分区。现在的设置如下:
/dev/sda1 (ext4) /
/dev/sda2 (ext4) /home
/dev/sda3 swap partition
交换分区工作正常,可以在启动时挂载,也可以使用 swapon 手动挂载,使用 swapoff 卸载。顺便说一句,我已经将其从 /etc/fstab 中删除,因为笔记本电脑有 4GB 的 RAM,而且我在系统运行时从不使用交换分区。我编写了一个小脚本,在休眠前挂载该分区,并在系统从休眠状态恢复时卸载它。现在的问题是,当我休眠并启动系统时,启动过程不会查找该分区上的数据。经过一些测试后,我猜测系统不“信任”这个新分区,也不会检查该分区上的数据。我猜 UUID 已经改变了?
奇怪的是,如果我使用“sudo swapon /dev/sda3”手动挂载分区,然后休眠系统,数据就会被保存。我知道这一点,因为当我回到桌面并手动重新挂载分区时,swapon 实用程序会抱怨“此文件系统上有数据,正在清理”(不是这个确切的消息,我现在没有带笔记本电脑)。
有没有办法强制重新检测该分区作为启动时查看的默认休眠文件?
编辑:我刚刚意识到我在重新排列文件系统时犯了一个错误:我只给了它 2 GB 而不是 4 GB... 因此,该分区对于系统中的 4 个 RAM 来说不够大。如果使用的内存只有 500 MB,它是否仍然可以休眠?还是我需要调整它的大小?如果是这样,我可以调整 sda3 分区的大小以使其缩小 2GB 吗?扩大过程非常简单,但我不确定缩小分区是否更危险,因为涉及移动一些物理数据。
答案1
是的,它必须大于或等于 RAM 大小(严格大于)。
分区缩小需要移动一些数据块。备份还是冒险取决于你。但是,如果从分区末尾(即
sda2
)取出 2GB,则被视为短时间操作。如果从大分区(例如:sda4)的开头取出,我的建议是放弃它。修复休眠问题
获取新的 UUID
sudo blkid
resume
使用正确的 UUID更新配置文件gksu gedit /etc/initramfs-tools/conf.d/resume
更新 RAMDisk
sudo update-initramfs -u
重启
参考: 社区 Wiki:交换常见问题解答
答案2
对此不太确定,但我看到交换分区被映射到/etc/fstab
# <file system> <mount point> <type> <options> <dump> <pass>
.... OTHER PARTITIONS
# swap was on /dev/sda3 during installation
UUID=89540d88-4c23-4975-8000-XXXXXXXXXX none swap sw 0 0
.... OTHER PARTITIONS
您可以使用以下方式获取分区的 UUID
ls -l /dev/disk/by-uuid