栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Manjaro系统安装整盘加密不可用带休眠swap区?

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Manjaro系统安装整盘加密不可用带休眠swap区?

出现问题

不知道是否用了minimal版的原因。
在安装系统时,选了重建分区,包含了swap(with hibernate)分区,并选了加密磁盘。系统装好后,不能实现休眠(Hibernate)功能,每次休眠即是关机。启动时,报错提示 Disk doesn’t exist or access denied。

分析问题

1、manjaro安装时加密磁盘分区的后台操作是

#(本例中,磁盘是hd1,ESP分区为sda1,系统区为sda2,swap分区为sda3)
#对磁盘分区进行LUKS加密
cryptsetup luksFormat /dev/sda2

#打开加密的磁盘分区同时映射磁盘别名(加密的磁盘必须打开并映射才能格式化,挂载等)
#用 cat /dev/mapper 可以看到系统生成的别名luks1234-2234-3234-423456789
cryptsetup luksOpen /dev/sda2 luks1234-2234-3234-423456789

#格式化刚映射的别名到需要的格式(系统区为ext4,swap区为swap)
 mkfs.ext4 /dev/mapper/luks1234-2234-3234-423456789

#因为这是系统盘,必须在启动前挂载,所以在 grub指定了该cryptdevice,并用了cryptomount挂载,
#再用了root=指向。也用resume=指向了swap盘的映射别名。

2、启动后观察cat /etc/fstab,cat /etc/default/grub,sudo swapon -s,sudo free -m可以看出,swap盘已经成功使用并挂载,resume设置系统都设好了,但为什么总是不能休眠并报磁盘不存在错误呢?(此处需要手工处理一条:sudo vi /etc/systemd/logind.conf,设置HandleLidSwitch=hibernate)

3、回顾启动时,需要输入系统盘的加密密码来打开它并挂载,从输密码的提示(hd1,gpt2)也可以看出就是解密了系统分区,swap分区(hd1,gpt3)并没解密,这就造成访问拒绝,无法用swap区进行hibernate。

4、如果要同时实现磁盘加密和swap with hibernate,琢磨了几个解决方案:

    进入系统后,不动加密系统盘分区,完全解密swap区,不加密使用。修改swap区的加密密码,把密码文件保存到文件中,再修改grub在启动前自动挂载。重新安装系统重新分区不设swap区,那么全盘就是加密了系统区,等进入系统后,建立swap文件并设置hibernate功能。
调试过程

调试采取一号方案。二三号方案还没试就阵亡了。

#关闭加密swap区的使用
swapoff -a
#关闭加密swap分区(luks**********************是swap区的映射别名)
cryptsetup luksClose luks**********************
#重新无加密格式化swap区
mkswap /etc/sda3
#重新挂载未加密的swap区
swapon /etc/sda3
#sudo vi /etc/default/grub,把swap分区指向给resume
GRUB_CMDLINE_LINUX_DEFAULT="quiet resume=/dev/sda3"
#或者用 sudo blkid 查到 /dev/sda3 的UUID,指给resume
GRUB_CMDLINE_LINUX_DEFAULT="quiet resume=UUID=xxxxxxxxxxxxx"

然后……,就没然后了,对swap加密分区的解密及改动,或许是/etc/default/grub的处理有误,重启后系统竟然找不到加密的系统盘了,进入了rootfs界面,没那个本事重建启动,干脆重新安装manjaro,再改下设置,咚,又找不到启动盘了,试了三次,太酸爽,放弃调试了。

最终方案

因为每次进系统都调调主题,试试小功能啥的,然后又重启重装,折腾了四五个小时,系统还是新的,放弃自虐了,用了磁盘不加密,带了分区swap with hibernate,只需要手工处理一条:sudo vi /etc/systemd/logind.conf,设置HandleLidSwitch=hibernate,就可成功休眠。

经验教训

改了/etc/default/grub后,用 grub-mkconfig -o /boot/grub/grub.cfg 重建 /boot/grub/grub,cfg,多分析下这个cfg,没有语法错误再重启吧。

估计没有谁无聊地调试这个功能,只是做过了不要白做,聊记一笔。

ps:源用清华最快,华为有情结有速度亦可,北科大速度极坑,可能是我没教育网吧。fcitx直接sudo pacman -Sy fcitx就挺稳定好用,不要去锻炼yay,但不要sudo要 vi ~/.xprofile三句话不可少。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/755786.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号