首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用登录密码+ hibernate加密的分区(LUKS)

使用登录密码+ hibernate加密的分区(LUKS)
EN

Ask Ubuntu用户
提问于 2022-11-17 12:01:26
回答 1查看 1.1K关注 0票数 2

在我的公司笔记本电脑上,我有Windows 11,它有加密的磁盘,工作的hibernate,在登录时我只需要提供一次密码。我想和Ubuntu一起在我的个人笔记本上有同样的东西。我有Ubuntu 20.04。有一些混乱,所以我想做干净的Ubuntu22.04安装。并且想知道什么是加密分区的最好和最简单的方法(LUKS,或者其他什么?)这将允许我跳过GRUB,并在登录密码登录时解锁磁盘/分区。同时,我需要/需要一个正常工作的hibernate。注意,我不是使用交换文件,而是使用分区。

RN我使用这个配置来进行休眠:https://gist.github.com/Mlocik97/5936fa55d4971f05c6a1c0fb10c4c9bb,也就是我用内容设置了sudo gedit /etc/polkit-1/localauthority/50-local.d/com.ubuntu.enable-hibernate.pkla文件:

代码语言:javascript
运行
复制
[Enable hibernate in upower]
Identity=unix-user:*
Action=org.freedesktop.upower.hibernate
ResultActive=yes

[Enable hibernate in logind]
Identity=unix-user:*
Action=org.freedesktop.login1.hibernate;org.freedesktop.login1.handle-hibernate-key;org.freedesktop.login1;org.freedesktop.login1.hibernate-multiple-sessions;org.freedesktop.login1.hibernate-ignore-inhibit
ResultActive=yes

但有效是因为我没有加密的交换密码。我在GRUB_CMDLINE_LINUX_DEFAULT="quiet splash resume=/dev/nvme0n1p3"文件中设置了像/etc/default/grub文件中的简历参数,但是现在当我打开计算机时,GRUB菜单显示,即使是Ubuntu也只是我个人笔记本上的系统,我想跳过这一步。

我尝试在KVM (QEMU/KVM)中安装Ubuntu22.04。对于加密的虚拟磁盘(LUKS),安装程序在LVM分区上为我提供了选项,但当我这样做时,我需要给它两次密码,一次用于解锁磁盘/分区,第二次是在登录时,我认为这很烦人,并且希望我只给它一次密码。

因此,我正在解决两个问题,使hibernate与加密交换工作,并解锁分区使用登录密码。有人能帮帮我吗?

EN

回答 1

Ask Ubuntu用户

回答已采纳

发布于 2022-11-17 15:50:49

这个答案是为了使用加密的交换分区启用hibernate。此答案不涉及使用TPM或其他绕过LUKS密码提示的方法。

Hibernate与LUKs加密交换分区

大纲和参考文献

首先增加交换分区:

在加密的LVM上更改交换大小?(kubuntu 20.04安装)

第二,启用hibernate

增加加密交换的大小 https://gist.github.com/tjvr/f82004565139a5b13031af1ce5a50a02

1.减少根并增加交换分区(

)

Introduction

使用默认安装过程在笔记本中安装Ubuntu。在高级选项下选择LUKS (和LVM)。测试系统以确保一切正常。

我的笔记本电脑有4GB RAM和一个1GB加密的交换分区,来自安装过程。我用的公式是:

<#>New交换分区大小= RAM的大小+内存的大小(内存的大小)

所以我需要一个6GB的交换。也就是说,我需要向现有的交换分区添加5GB。

实际过程

Note:分区号、逻辑卷名等来自没有其他操作系统的笔记本电脑上Ubuntu22.04的干净默认安装(加密)。

从Ubuntu安装USB启动并使用“试试Ubuntu”选项。

打开终端并以超级用户的身份运行后续命令

代码语言:javascript
运行
复制
sudo su

加密设备不应被解锁。以下列方式核实:

代码语言:javascript
运行
复制
lsblk 

输出不应该有任何cryptlvm

解锁加密装置

代码语言:javascript
运行
复制
cryptsetup open /dev/sda4 crypt 

在出现提示时输入LUKS密码。

获取逻辑卷标识符

代码语言:javascript
运行
复制
lsblk

# └─sda4                  8:6    0 464,6G  0 part
#   └─sda4_crypt        253:0    0 464,5G  0 crypt
#     ├─vgubuntu-root   253:1    0 463,6G  0 lvm   /
#     └─vgubuntu-swap_1 253:2    0   980M  0 lvm   [SWAP]

缩小逻辑根卷和文件系统。

代码语言:javascript
运行
复制
lvresize --verbose --resizefs -L -5G /dev/mapper/vgubuntu-root

# `lvresize`  => resize a logical volume
#   --verbose  => Give more info.
#   --resizefs => Resize filesystem AND LV with fsadm(8).
#   -L         => Specifies the new size of the LV, 
#                 +/- add/subtracts to/from current size, g|G is GiB.

检查逻辑根卷的文件系统是否有错误

代码语言:javascript
运行
复制
e2fsck -f /dev/mapper/vgubuntu-root

# `e2fsck` => Check a Linux ext2/ext3/ext4 file system
#   -f => Force checking even if the file system seems clean.

增加空位

代码语言:javascript
运行
复制
lvresize --verbose -L +5G /dev/mapper/vgubuntu-swap_1

关闭终端并重新启动到内部LUKS加密驱动器。

The命令 free shows旧交换大小。

来源:增加加密交换的大小

终端中的以下命令应修复此问题:

代码语言:javascript
运行
复制
sudo swapoff -a  
sudo cryptsetup resize vgubuntu-swap_1
sudo mkswap /dev/mapper/vgubuntu-swap_1 
sudo swapon -a 

再次使用free命令来验证是否有所需的交换大小。

2.启用Hibernate交换

Note:我不需要对问题中提到的 /etc/polkit-1/localauthority/50-local.d/com.ubuntu.enable-hibernate.pkla as文件进行任何更改(或创建)。

编辑文件/etc/initramfs-tools/conf.d/resume并添加:

代码语言:javascript
运行
复制
RESUME=/dev/mapper/vgubuntu-swap_1

编辑文件/etc/default/grub,使以GRUB_CMDLINE_LINUX_DEFAULT开头的行看起来如下所示:

代码语言:javascript
运行
复制
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash resume=/dev/mapper/vgubuntu-swap_1"

接下来的两个命令将分别更新intramfs和grub:

代码语言:javascript
运行
复制
sudo update-initramfs -u -k all
sudo update-grub
sudo reboot

要测试运行:

代码语言:javascript
运行
复制
sudo systemctl hibernate

如果一切顺利,你的笔记本电脑应该冬眠。

希望这能有所帮助

票数 3
EN
页面原文内容由Ask Ubuntu提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://askubuntu.com/questions/1441208

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档