前
在尝试了Zorin Fyde OS Brunch chrome os Chrome flex后又又又回到了Arch
但是本着多整活的原则,这次尝试加密了到的Arch
~~说着不写这种文章了,结果它又来了(~~
不过这篇只专注于加密部分,其余的东西就不管它了
加密之前
为了之前的数据安全,您可能需要擦除之前的数据
shred --verbose --random-source=/dev/urandom --iterations=3 /dev/sda
iterations
为覆写的次数,/dev/sda
为操作的硬盘
加密分区
首先分区,推荐使用cfdisk,fdisk
可以使用cryptsetup benchmark
来测试不同加密方法的速度
我采用的是aes-xts-plain64 key-size 256
来做的加密
使用cryptsetup --key-size 256 --iter-time 4000 luksFormat /dev/sda1
如果您想提高安全性,可以提高key-size和iter-time
/dev/sda1
为要加密的分区
解密分区
使用cryptsetup open [加密分区] [挂载名字]
来解密
使用mount /dev/mapper/[名字] [挂载目录]
来挂载
然后直接mkfs.ext4 /dev/mapper/[名字]
格式化即可(当然您也可以选择您喜欢的文件系统
在早期用户空间解锁
配置 Initramfs
编辑/etc/mkinitcpio.conf
修改HOOK为:
HOOKS=(base udev autodetect modconf kms keyboard keymap consolefont block encrypt filesystems fsck)
或
HOOKS=(base systemd autodetect modconf kms keyboard sd-vconsole block sd-encrypt filesystems fsck)
前者使用encrypt
而后者使用sd-encrypt
使用sd-encrypt
时您需要新建一个空文件(或者添加您想定义的内容,如LANG=en_US.UTF-8
)/etc/locale.conf
两者最明显的不同是encrypt在Initramfs中只能解锁一个设备
然后使用mkinitcpio -P
来生成Initramfs
Grub配置
编辑/etc/default/grub
在GRUB_CMDLINE_LINUX=
后添加
cryptdevice=UUID=[分区UUID]:[挂载名称] root=/dev/mapper/[挂载名称]
如果您有swap分区,额外添加resume=/dev/mapper/[挂载名称(与上面不同)]
然后重新生成grub配置文件grub-mkconfig -o /boot/grub/grub.cfg
在后期用户空间解锁
crypttab
使用crypttab我们可以自动解锁一些分区
编辑/etc/crypttab
添加一行(或多行)
[挂载名称] [分区/(UUID=[UUID])] [密码文件/none] [额外选项(如timeout=180)]
特别的,对于SWAP请查看dm-crypt/Swap encryption