Arch-Linux

將 Arch 從 encrypt 遷移到 sd-encrypt

  • April 25, 2019

我最近安裝了 Antergos(基本上是 Arch)並將其設置為使用全盤加密。現在,我想從 to 遷移encryptsd-encrypt因為我希望能夠休眠並且我不能將交換分區放在同一個 LUKS 卷中。

背景

在設置期間:

  • 我使用 LUKS 進行/分區和交換分區,
  • 因為我的主 SSD 很小,我希望能夠休眠並且我有 32GB 的 RAM 我在第二個驅動器上創建了加密交換分區,
  • 我使用/etc/crypttab.

我測試了安裝是否有效,grub 讓我啟動到 linux 和雙啟動 Windows,在 Linux 啟動時它解密並安裝兩個加密驅動器。

但是,我收到關於找不到帶有交換驅動器 UUID 的磁碟的錯誤,並且 Arch 手冊確認encrypt我從安裝程序中獲得的在引導期間只能處理一個加密分區。如果我想處理更多的問題,我應該搬到sd-encrypt. 但是,即使在閱讀了文件之後,我也不確定要遷移到sd-encrypt.

細節

  • HOOKS="base udev autodetect modconf block keyboard keymap encrypt resume filesystems fsck"
  • GRUB_CMDLINE_LINUX_DEFAULT="quiet resume=UUID=[encrypted swap UUID]"
  • GRUB_CMDLINE_LINUX=cryptdevice=/dev/disk/by-uuid/[/ UUID]:Arch_crypt
  • GRUB_ENABLE_CRYPTODISK=y
  • /etc/crypttab
 swap_crypt /dev/disk/by-uuid/[/ UUID] password_file luks
 data_crypt /dev/disk/by-uuid/[/ UUID] password_file luks

換成in後還需encrypt要做什麼?我必須創建一個並移動到那裡嗎?我必須更改為嗎?交換分區和 / 分區都使用相同的密碼,所以根據文件,我輸入一次密碼後,兩者都應該在啟動時掛載,對嗎?文件提及和參數和類似的 - 我必須使用它們嗎?如果是,我應該把它們放在哪裡?sd-encrypt``HOOKS``/etc/crypttab.initramfs``swap_crypt``luks``rd.luks``luks.*``rd.luks.*

我自己不使用 Grub(但 Arch 和 sd-encrypt),但從我的核心選項來看,我猜你必須將你的配置轉換為看起來像(不要忘記在切換之前備份你的舊配置)。

HOOKS="base systemd autodetect modconf block keyboard sd-vconsole sd-encrypt resume filesystems fsck"

GRUB_CMDLINE_LINUX_DEFAULT="quiet resume=UUID=[decrypted swap UUID]" 
# I use resume=/dev/mapper/name-of-decrypted-device

GRUB_CMDLINE_LINUX=luks.uuid=[/ encrypted UUID] luks.uuid=[swap encrypted UUID]
GRUB_ENABLE_CRYPTODISK=y

/etc/crypttab

 swap_crypt /dev/disk/by-uuid/[/ UUID] password_file luks
 data_crypt /dev/disk/by-uuid/[/ UUID] password_file luks

mkinitcpio -p linux完成 HOOKS 的修改後,不要忘記執行或等效以重新生成您的 initramfs。和 grub.cfg 文件grub-mkconfig -o /boot/grub/grub.cfg或類似的東西。

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