我应该如何在 Arch/Manjaro 中为 LUKS 启用丢弃和无工作队列

我应该如何在 Arch/Manjaro 中为 LUKS 启用丢弃和无工作队列

所以我读过维基百科这个答案,我还是有点不知所措。在维基百科中,感觉很多都是可选的。

这就是我所做的。我使用 Manjaro 安装到单个分区,我可能会后悔,并且我启用了全盘加密。我在启动 Windows 或 Linux 时观察到,系统会提示我输入密码,然后我会看到实际的 grub 菜单。

我不确定哪些选项会起作用。我认为 LVM 已启用,但不是 100%,并且我确定我选择了 ext4。我考虑过修改 grub.conf 生成脚本,但我不确定在哪里,也不确定这是否是正确的地方。

在 Manjaro 上添加discardno_read_workqueue、 和 的正确答案是什么?no_write_workqueue

更新:

这是我最新的配置,但我总是陷入救援外壳。我正在尝试使用 systemd cryptsetup 来完成所有操作,这似乎表明我使用luks.*参数。

笔记:这个名字root来自于我在救援外壳中的手动安装。

NAME        MAJ:MIN RM   SIZE RO TYPE  MOUNTPOINTS                                MOUNTPOINT                                 UUID
loop0         7:0    0 450.2M  1 loop  /var/lib/snapd/snap/wickrme/543            /var/lib/snapd/snap/wickrme/543            
loop1         7:1    0  55.4M  1 loop  /var/lib/snapd/snap/core18/2074            /var/lib/snapd/snap/core18/2074            
loop2         7:2    0  65.1M  1 loop  /var/lib/snapd/snap/gtk-common-themes/1515 /var/lib/snapd/snap/gtk-common-themes/1515 
loop3         7:3    0  32.3M  1 loop  /var/lib/snapd/snap/snapd/12398            /var/lib/snapd/snap/snapd/12398            
zram0       253:0    0   1.5G  0 disk  [SWAP]                                     [SWAP]                                     
nvme0n1     259:0    0 953.9G  0 disk                                                                                        
├─nvme0n1p1 259:1    0   100M  0 part  /boot/efi                                  /boot/efi                                  6CEB-F417
├─nvme0n1p2 259:2    0    16M  0 part                                                                                        
├─nvme0n1p3 259:3    0 780.6G  0 part                                                                                        
├─nvme0n1p4 259:4    0   508M  0 part                                                                                        CA343C30343C223D
├─nvme0n1p5 259:5    0 146.5G  0 part                                                                                        74c51543-eb14-4f61-afeb-b5de6c10a32a
│ └─root    254:0    0 146.5G  0 crypt /                                          /                                          e0a93c98-88a8-4fc9-9948-acdb423d05fd
└─nvme0n1p6 259:6    0  18.6G  0 part  [SWAP]                                     [SWAP]                                     72db96da-87e4-4b17-a622-6a4d56b314c6
4 ❯ cryptsetup luksDump /dev/nvme0n1p5                                                                                                                                                                         # ~
LUKS header information for /dev/nvme0n1p5

Version:        1
Cipher name:    aes
Cipher mode:    xts-plain64
Hash spec:      sha256
Payload offset: 4096
MK bits:        512
UUID:           74c51543-eb14-4f61-afeb-b5de6c10a32a
❯ cat /etc/default/grub | grep -v -e '^[[:space:]]*$' -e '^#'                                                                                                                                                  # ~
GRUB_DEFAULT=saved
GRUB_TIMEOUT=5
GRUB_TIMEOUT_STYLE=hidden
GRUB_DISTRIBUTOR="Manjaro"
GRUB_CMDLINE_LINUX_DEFAULT="quiet luks.uuid=74c51543-eb14-4f61-afeb-b5de6c10a32a luks.options=discard,no_read_workqueue,no_write_workqueue root=/dev/mapper/luks-e0a93c98-88a8-4fc9-9948-acdb423d05fd splash apparmor=1 security=apparmor udev.log_priority=3"
GRUB_CMDLINE_LINUX=""
GRUB_SAVEDEFAULT=true
GRUB_PRELOAD_MODULES="part_gpt part_msdos"
GRUB_TERMINAL_INPUT=console
GRUB_GFXMODE=1280x768x32,auto
GRUB_DISABLE_RECOVERY=false
GRUB_DISABLE_OS_PROBER=false
GRUB_COLOR_NORMAL="light-gray/black"
GRUB_COLOR_HIGHLIGHT="green/black"
GRUB_THEME="/usr/share/grub/themes/manjaro/theme.txt"
GRUB_ROOT_FS_RO=true
GRUB_ENABLE_CRYPTODISK=y

据我了解systemd-cryptsetup-generator不应该需要更多选项,我确实有一个,/etc/crypttab但所有内容都被注释掉了。

我相当有信心这GRUB_CMDLINE_LINUX_DEFAULT是我唯一的问题,但我不确定它应该是什么。谷歌没有找到我很多(没有)关于如何使用blkidor的输出执行此操作的示例lsblk

答案1

我终于想通了,为了修复我的靴子,并获得我想要的功能,我必须这样做。

GRUB_CMDLINE_LINUX_DEFAULT="cryptdevice=UUID=74c51543-eb14-4f61-afeb-b5de6c10a32a:root:allow-discards,no-read-workqueue,no-write-workqueue quiet udev.log_priority=3"

答案2

TLDR - 如果可能的话,不要加密整个磁盘,如果可能的话,在最后给它一些完全未分区的喘息空间,并在 fstab 中保留大部分默认值。

这是我不确定的用户选择权衡之一,所以我宁可谨慎,也选择与维护者合作。

话虽如此,TRIM 命令有可能延长 SSD 的使用寿命,但它们也有可能增加 LUKS 分区的脆弱性。

安装它们实际上会缩短驱动器的使用寿命多少?你觉得舒服多少?
实际上必须对驱动器的多少部分进行加密?使用 TRIM 加密的数据有多脆弱?

它也可以在 cron 上手动完成,或者作为服务

我在多台机器上坚持使用默认设置,并且总是加密根,但通常只有 100GB LUKS 分区,至少有根和主目录,在我的桌面上,我通常也安装了一些没有加密的驱动器任何分区。总的来说,与没有加密分区的驱动器相比,我认为我没有看到任何个人驱动器因此而提前死亡。我不记得曾经拥有过一块死掉的SSD,除了一台过热笔记本电脑上的一个行为不当的msata(当机器变热时,它会在某些时候没有数据)。但我听说某些 RAID 5 硬件控制器由于某些类似的情况而杀死了 SSD。编辑:我收回不拥有任何死SSD的说法,我有一盒SSD驱动器,这些驱动器一开始就不好,一些零碎的东西很糟糕,但特别是一堆来自知名品牌的廉价SSD信电脑公司由一家办公零售公司在街区附近出售,众所周知,这些公司在使用几个小时后就崩溃了。

就 SSD 磨损而言,这是可能的,诺阿泰姆更重要的是,特别是在读取密集型驱动器/分区上:

为了缓解这种情况,我通常甚至不会对驱动器的最后 10% 进行分区,即使我填满了磁盘,磨损旋转器也会大量磨损(这不包括文件系统的典型保留块)。我已经有十多年没有在个人计算机上使用过交换分区了。我不加密整个磁盘,我在 LUKS 上的 LVM 内加密 root、home usr 和 var,然后在我尝试放置无关紧要的内容的地方创建其他数据分区,例如 /mnt/steam SteamLibrary 的分区,因为它可以轻松删除并重新下载。 100GB LUKS 分区通常对于 arch root usr var home 分区来说绰绰有余,而大多数现代机器我都有大量 RAM,所以我使用 tmpfs 作为 /tmp。我安装了大量软件,所以 /usr 是:

du -sh /usr
26G     /usr

要查看是否有 lvm,请使用命令 pvscan lvscan vgscan 示例:

[root@examplenode1 ~]# lvscan
  ACTIVE            '/dev/examplemachineVG/examplemachineRoot' [40.00 GiB] inherit
  ACTIVE            '/dev/examplemachineVG/examplemachineHome' [70.98 GiB] inherit
[root@examplenode1 ~]# vgscan
  Found volume group "examplemachineVG" using metadata type lvm2
[root@examplenode1 ~]# pvscan
  PV /dev/mapper/examplemachinecrypt   VG examplemachineVG          lvm2 [110.98 GiB / 0    free]
  Total: 1 [110.98 GiB] / in use: 1 [110.98 GiB] / in no VG: 0 [0   ]

还要检查内容

/dev/mapper/

/etc/fstab
/etc/mtab

相关内容