Arch-Linux

我應該如何在 Arch/Manjaro 中為 LUKS 啟用丟棄和無工作隊列

  • July 19, 2021

所以我已經閱讀了 wiki這個答案,但我還是有點不知所措。在 wiki 中,感覺其中很多都是可選的。

這就是我所做的。我使用 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是我唯一的問題,但我不確定它應該是什麼。Google沒有找到我很多(沒有閱讀)關於如何使用blkidor的輸出執行此操作的範例lsblk

我終於想通了,為了修復我的靴子,並獲得我想要的功能,我必須這樣做。

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"

TLDR - 如果可能,不要加密整個磁碟,如果可能,最後給它一些完全未分區的喘息空間,並在 fstab 中保留大部分預設值。

這是我不確定的使用者選擇權衡之一,因此我寧願謹慎行事並與維護者一起去。

話雖如此,TRIM 命令有可能延長 SSD 的壽命,但它們也有可能增加該 LUKS 分區的脆弱性。

安裝它們實際上會減少多少驅動器的壽命?你覺得舒服到什麼程度?

實際上必須加密多少驅動器?使用 TRIM 加密的數據有多脆弱?

它也可以手動、在 cron 上或作為服務完成

我在多台機器上堅持使用預設設置,我總是加密根目錄,但通常只有 100GB LUKS 分區,其中至少有根目錄和首頁,在我的桌面上,我通常也安裝了一些沒有加密的驅動器任何分區。總的來說,與沒有加密分區的驅動器相比,我認為我沒有看到任何個人驅動器因此而過早死亡。除了筆記型電腦過熱的一個行為不端的 msata 之外,我不記得曾經擁有過一個壞的 SSD(當機器變熱時,它會在某些時候沒有數據)。但是我聽說某些 RAID 5 硬體控制器由於某些類似情況而殺死了 SSD。編輯:我收回沒有任何死 SSD 的東西,我有一盒 SSD 驅動器一開始就不好,一些零碎的東西是壞的,

並且有可能,就 SSD 磨損而言,noatime更為重要,尤其是在讀取密集型驅動器/分區上:

為了緩解其中的一些問題,我通常什至不會對驅動器的最後 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

引用自:https://unix.stackexchange.com/questions/657663