小编And*_* L.的帖子

“cryptsetup:错误:无法解析设备”与“cryptsetup:警告:在 /etc/crypttab 中找不到目标‘sda3_crypt’”相结合

ubuntu 20.04 上设置休眠并将其修改为适用于加密交换分区后,我遇到了几个问题:

首先,从休眠状态重新启动后,我收到“放弃等待挂起/恢复设备”以及“未找到卷组 luks”。幸运的是,我之后可以正常启动系统。

尽管如此,当再次执行上述网站的步骤时,我在执行时收到以下错误和警告sudo update-initramfs -c -k all

update-initramfs: Generating /boot/initrd.img-5.4.0-56-generic
cryptsetup: ERROR: Couldn't resolve device 
    /dev/disk/by-uuid/5834cf70-0919-4c53-98a6-355d69bbd6a4
cryptsetup: ERROR: Couldn't resolve device 
    UUID=5834cf70-0919-4c53-98a6-355d69bbd6a4
cryptsetup: WARNING: target 'sda3_crypt' not found in /etc/crypttab
update-initramfs: Generating /boot/initrd.img-5.4.0-58-generic
cryptsetup: ERROR: Couldn't resolve device 
    /dev/disk/by-uuid/5834cf70-0919-4c53-98a6-355d69bbd6a4
cryptsetup: ERROR: Couldn't resolve device 
    UUID=5834cf70-0919-4c53-98a6-355d69bbd6a4
cryptsetup: WARNING: target 'sda3_crypt' not found in /etc/crypttab
Run Code Online (Sandbox Code Playgroud)

请注意,UUID=5834cf70-0919-4c53-98a6-355d69bbd6a4属于以前未加密的交换分区sda3。我用我知道的每个配置文件(见下文)UUID中的加密分区之一替换了它sda3_crypt

我希望通过以下打印输出可以解决问题。涉及的配置文件内容(关于swap分区)是:

1. /etc/fstab

/dev/mapper/sda3_crypt none swap sw …
Run Code Online (Sandbox Code Playgroud)

encryption swap initramfs cryptsetup disk-encryption

6
推荐指数
1
解决办法
4154
查看次数

cryptsetup luksFormat 错误“设备 /dev/nvme0n1p3 正在使用中。无法继续格式化操作。”

我遵循此准则来加密目标分区:

cryptsetup -h sha256 -c aes-xts-plain64 -s 512 luksFormat /dev/nvme0n1p3
Run Code Online (Sandbox Code Playgroud)

然后,即使我之前卸载了主分区,也会出现错误: umount -l /home

使用-l -标志的原因是没有它它就无法工作。此外,为了到目前为止,我必须启动系统直到到达用户登录屏幕,然后按CTRL+ALT+F2进入tty2,通过“登录”和“密码”登录我的用户,然后卸载“/home” - 强力分区。

尽管我之前通过 gparted 检查过它是与 /home 相关的硬盘驱动器上的安装点,但它指出

“设备 /dev/nvme0n1p3 正在使用。无法继续格式化操作。”

尽管之前已经卸载了“/home”。

如何使用 LUKS (cryptsetup) 完成对“/home”分区的加密?由于与 Windows 10 并行安装,我无法加密整个 ubuntu 20.04 安装,我是否可以以相同的方式使用它来加密我的 swap、/temp 和 /var/temp?

encryption home luks cryptsetup disk-encryption

2
推荐指数
1
解决办法
7914
查看次数

使用 sed 用一行替换多个连续行

在我所有的 python 脚本中,我想替换连续的 2 行

import matplotlib as mpl
mpl.style.use(mpl_plt_default_template)
Run Code Online (Sandbox Code Playgroud)

只用那条线

plt.style.use(mpl_plt_default_template)
Run Code Online (Sandbox Code Playgroud)

到目前为止,我已经找到了一种方法来用应用于这些行中的每一行的表达式替换 2 个连续的行,但没有找到如何用一行完全替换 2 行。关于我不成功的方法,它应用了以下 sed 字符串:

sed '/import matplotlib as mpl$/N;//s/mpl.style.use(mpl_plt_default_template)/plt.style.use(mpl_plt_default_template)/g'
Run Code Online (Sandbox Code Playgroud)

请注意,第一行 ( import matplotlib as mpl) 也可以出现在文件中的其他位置,并且应该在那里保持不变,因此目标是仅当发现两行都按照给定的顺序紧随其后时才执行替换。

编辑其他范围涉及find

最终目标是find使用类似于以下方式的管道替换通过- 命令找到的几个文本文件中的这两行:

find /path/to/dir/ -type f -exec sed 'old-lines/s/single-new-line' {} \;
Run Code Online (Sandbox Code Playgroud)

系统特性:

操作系统:Lubuntu 20.04 LTS

sed text-processing regular-expression replace

1
推荐指数
1
解决办法
124
查看次数