- 沒有 /etc/crypttab 檔做 luks mapping 名稱對應時,luks 解密的 mapping 為 luks-uuid,查詢 /dev/vdb1 的 uuid。
[root@kvm7 ~]# blkid /dev/vdb1
/dev/vdb1: UUID="77472cc9-0dd3-4c4c-81ad-e0ecae7570b2" TYPE="crypto_LUKS"
- 開機掛載表 /etc/fstab 的 luks mapping 改成 luks-uuid 型式,掛載參數
x-systemd.device-timeout=1 當 device 找不到時,1 秒後放棄掛載。
[root@kvm7 ~]# grep luks /etc/fstab
/dev/mapper/luks-77472cc9-0dd3-4c4c-81ad-e0ecae7570b2 /sysroot xfs
_netdev,x-systemd.device-timeout=1,defaults 0 0
- 開機核心參數指定 rd.luks.uuid 及 rd.luks.key,金鑰的格式是 <keypath>:<keydev> keydev 可用 UUID 或 LABEL,rd.luks.crypttab=no 指定不使用 /etc/crypttab 做對應,否則開機時依然會搜尋 device,直到 timeout。
[root@kvm7 ~]# grep luks /boot/grub2/grub.cfg
linux16 /vmlinuz-3.10.0-862.2.3.el7.x86_64 root=/dev/mapper/vg_kvm7usb-root ro
crashkernel=auto rd.lvm.lv=vg_kvm7usb/root rd.lvm.lv=vg_kvm7usb/swap rhgb quiet
rd.luks.uuid=77472cc9-0dd3-4c4c-81ad-e0ecae7570b2 rd.luks.name=luks-root
rd.luks.key=/keyfile:UUID="ad20c60f-2418-488b-950f-90fc56cc7792" rd.luks.crypttab=no
initrd16 /initramfs-3.10.0-862.2.3.el7.x86_64-luks-root.img
- 重新開機
[root@kvm7 ~]# reboot
- 重開機不用輸入密碼,加密分割區 /dev/vdb1 的 mapping luks-77472cc9-0dd3-4c4c-81ad-e0ecae7570b2,成功掛載在 /sysroot 目錄。
[root@kvm7 ~]# lsblk /dev/vdb
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
vdb 252:16 0 4G 0 disk
└─vdb1 252:17 0 2G 0 part
└─luks-77472cc9-0dd3-4c4c-81ad-e0ecae7570b2
253:0 0 2G 0 crypt /sysroot
[root@kvm7 ~]# df -h /sysroot/
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/luks-77472cc9-0dd3-4c4c-81ad-e0ecae7570b2 2.0G 1.7G 318M 85% /sysroot