V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
sbmzhcn
V2EX  ›  问与答

centos 加密磁盘后 LUKS,怎么使用 U 盘自动解密

  •  
  •   sbmzhcn · 2021-06-24 15:12:16 +08:00 · 981 次点击
    这是一个创建于 1248 天前的主题,其中的信息可能已经有所发展或是发生改变。

    找到以下方法

    https://forums.centos.org/viewtopic.php?t=50535

    这是唯一靠谱的答案,仍然不行,不过提示信息变了,之前提示

    Please enter passphrase for disk STxxxxxx-xxxxxx (luks)! *

    后来提示成

    Password /dev/sda3

    lsblk -f
    
    NAME                                          FSTYPE      LABEL UUID                                   MOUNTPOINT
    sda
    ├─sda1                                        vfat              1D62-EBDE                              /boot/efi
    ├─sda2                                        xfs               f0418bd5-5e31-4623-95a1-eb01cb0eed45   /boot
    └─sda3                                        crypto_LUKS       61af80c4-4d0a-4312-aae1-b66abd729eb5
      └─luks-61af80c4-4d0a-4312-aae1-b66abd729eb5 LVM2_member       tSCNNP-dh40-wP5I-aGsm-Jfrw-aVc2-R0pmBw
        ├─centos-root                             xfs               9b6bef41-1545-4cae-8b64-5f7ddd793ed4   /
        ├─centos-swap                             swap              ef1918bb-90d9-4851-8aa5-3c0fdf96a807   [SWAP]
        └─centos-home                             xfs               88da7564-ccd2-4839-83f9-0250a13e2a7a   /home
    sdf
    └─sdf1                                        ext4        KEYS  1785c13d-9726-4547-a7cd-1cc2816e6c64
    

    设置流程:

    dd if=/dev/urandom of=keyfile bs=512 count=4
    cryptsetup -v luksAddKey /dev/sda3 keyfile
    
    mkfs -t ext4 /dev/sdf1
    e2label /dev/sdf1 KEYS
    
    mkdir KEYS
    mount /dev/sdb1 KEYS
    cp keyfile KEYS
    chown root KEYS/keyfile
    chmod 400 KEYS/keyfile
    
    

    vi /etc/crypttab

    luks-61af80c4-4d0a-4312-aae1-b66abd729eb5 UUID=61af80c4-4d0a-4312-aae1-b66abd729eb5 /keyfile
    

    Modify /etc/default/grub, adding:

    rd.luks.key=/keyfile:LABEL=KEYS
    

    To the GRUB_CMDLINE_LINUX variable.

    GRUB_CMDLINE_LINUX="crashkernel=auto rd.lvm.lv=centos/root rd.luks.uuid=luks-61af80c4-4d0a-4312-aae1-b66abd729eb5 rd.luks.key=/keyfile:LABEL=KEYS rd.lvm.lv=centos/swap rhgb quiet"
    

    Modify /etc/dracut.conf, modifying omit_dracutmodules and add_dracutmodules:

    # dracut modules to omit
    omit_dracutmodules+="systemd"
    
    # dracut modules to add to the default
    add_dracutmodules+="crypt lvm"
    

    Build updated initramfs and grub.cfg:

    grub2-mkconfig -o /boot/grub2/grub.cfg
    dracut --force
    

    按以上流程设置并无效,其它教程全都不行,还不如这个。

    3 条回复    2021-06-25 22:54:39 +08:00
    Hardrain
        1
    Hardrain  
       2021-06-24 15:33:45 +08:00
    参考 https://wiki.archlinux.org/title/Dm-crypt/Encrypting_an_entire_system#Configuring_the_boot_loader_4

    至于 /dev/sdX 会变, 可以用 /dev/disk/by-uuid/来解决
    sbmzhcn
        2
    sbmzhcn  
    OP
       2021-06-24 16:31:02 +08:00
    @Hardrain 没有使用固定的 /dev/sdx, 使用就是 by-label 来解决的。关键问题不在这儿。
    Hardrain
        3
    Hardrain  
       2021-06-25 22:54:39 +08:00
    @sbmzhcn Command line 移除

    rd.lvm.lv=centos/root rd.luks.uuid=luks-61af80c4-4d0a-4312-aae1-b66abd729eb5 rd.luks.key=/keyfile:LABEL=KEYS rd.lvm.lv=centos/swap

    其他不变, 添加如下三个参数

    root=UUID=9b6bef41-1545-4cae-8b64-5f7ddd793ed4
    cryptdevice=UUID=61af80c4-4d0a-4312-aae1-b66abd729eb5:luks-61af80c4-4d0a-4312-aae1-b66abd729eb5
    cryptkey=UUID=1785c13d-9726-4547-a7cd-1cc2816e6c64:auto:/keyfile

    试试?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1265 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 18:03 · PVG 02:03 · LAX 10:03 · JFK 13:03
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.