在 openEuler 系统中,如果你需要对已经存在的 /dev/mapper/openeuler-data
和 /dev/mapper/openeuler-appdata
这两个分区进行加密,步骤如下:
1. 准备工作
请注意,加密会清空分区内的数据。因此,在操作前必须备份所有重要数据。以下操作会覆盖分区的数据。
2. 安装 cryptsetup
确保系统安装了加密工具 cryptsetup
:
bash复制代码sudo dnf install cryptsetup
3. 加密现有分区
要对现有的 /dev/mapper/openeuler-data
和 /dev/mapper/openeuler-appdata
分区进行加密,执行以下步骤:
- 加密分区:bash复制代码
sudo
cryptsetup luksFormat /dev/mapper/openeuler-data
cryptsetup luksFormat /dev/mapper/openeuler-appdata
输入并确认加密密码。请牢记此密码,因为它是解密分区的唯一方式。- 打开加密卷:bash复制代码
sudo
cryptsetup open /dev/mapper/openeuler-data encrypted_data
cryptsetup open /dev/mapper/openeuler-appdata encrypted_appdata
4. 创建文件系统
在加密卷上创建新的文件系统(如 ext4
):
bash复制代码sudo
mkfs.ext4 /dev/mapper/encrypted_data
mkfs.ext4 /dev/mapper/encrypted_appdata
5. 挂载文件系统
创建挂载点并挂载卷:
bash复制代码sudo
mkdir -p /data
mkdir -p /appdata
mount /dev/mapper/encrypted_data /data
mount /dev/mapper/encrypted_appdata /appdata
6. 配置开机自动挂载(可选)
编辑 /etc/crypttab
,以便开机自动解密卷:
plaintext复制代码encrypted_data /dev/mapper/openeuler-data none luks
encrypted_appdata /dev/mapper/openeuler-appdata none luks
编辑 /etc/fstab
,以便开机自动挂载:
plaintext复制代码/dev/mapper/encrypted_data /data ext4 defaults 0 2
/dev/mapper/encrypted_appdata /appdata ext4 defaults 0 2
7. 检查配置
验证挂载和解密配置是否正常:
bash复制代码df -h
OpenEuler配置加密分区在开机时自动解锁,通常需要使用密钥文件来实现:
1. 创建密钥文件
首先,创建一个密钥文件,该文件将用于解锁加密分区。
bash复制代码sudo
dd if=/dev/urandom of=/root/crypt_keyfile bs=1024 count=4
chmod 0400 /root/crypt_keyfile
2. 将密钥文件添加到 LUKS 加密分区
将密钥文件添加到加密分区以允许它用于解锁:
bash复制代码sudo
cryptsetup luksAddKey /dev/mapper/openeuler-data /root/crypt_keyfile
cryptsetup luksAddKey /dev/mapper/openeuler-appdata /root/crypt_keyfile
系统会要求输入之前设置的密码。
3. 配置 /etc/crypttab
编辑 /etc/crypttab
文件,将密钥文件的路径添加到相应的条目中:
bash复制代码sudo
nano /etc/crypttab
将原有的行更改为:
plaintext复制代码encrypted_data /dev/mapper/openeuler-data /root/crypt_keyfile luks
encrypted_appdata /dev/mapper/openeuler-appdata /root/crypt_keyfile luks
4. 配置 /etc/fstab
确认 /etc/fstab
文件中的挂载点设置是正确的,这里假设你已经设置好自动挂载。如果需要,确认没有错误并保存:
bash复制代码sudo
nano /etc/fstab
确保包含以下行:
plaintext复制代码/dev/mapper/encrypted_data /data ext4 defaults 0 2
/dev/mapper/encrypted_appdata /appdata ext4 defaults 0 2
5. 更新 initramfs
为了确保更改在启动时生效,更新 initramfs(初始文件系统映像):
bash复制代码sudo dracut -v -f
6. 重启系统
重启计算机以验证配置是否成功:
bash复制代码sudo reboot
7. 检查挂载情况
系统重启后,使用以下命令检查挂载点是否正常工作:
bash复制代码df -h
如果配置正确,系统将能够在启动时自动解锁加密分区,而无需手动输入密码。
使用 UUID 来指定加密分区
获取 UUID
首先,你需要获取加密分区的 UUID。可以使用 blkid
命令查看分区信息:
bash复制代码sudo
blkid
这会列出所有分区及其 UUID,例如:
plaintext复制代码/dev/mapper/openeuler-data: UUID="abc12345-6789-0abc-def0-123456789abc" TYPE="ext4"
/dev/mapper/openeuler-appdata: UUID="def12345-6789-0abc-def0-123456789def" TYPE="ext4"
使用 UUID 配置 /etc/crypttab
获取 UUID 后,可以在 /etc/crypttab
中使用 UUID 来配置自动解锁。编辑 /etc/crypttab
:
bash复制代码sudo
nano /etc/crypttab
将原有的条目更改为使用 UUID:
plaintext复制代码encrypted_data UUID=abc12345-6789-0abc-def0-123456789abc /root/crypt_keyfile luks
encrypted_appdata UUID=def12345-6789-0abc-def0-123456789def /root/crypt_keyfile luks
继续后续步骤
之后,你仍然需要继续进行 /etc/fstab
的设置和更新 initramfs 的步骤。使用 UUID 不会影响这些步骤,确保在 fstab
中也使用相应的 UUID 来挂载逻辑卷:
bash复制代码sudo
nano /etc/fstab
可以使用类似以下的方式在 fstab
中挂载加密分区:
plaintext复制代码/dev/mapper/encrypted_data /data ext4 defaults 0 2
/dev/mapper/encrypted_appdata /appdata ext4 defaults 0 2
重启验证
完成所有配置后,重启系统,确保加密分区能成功自动解锁并挂载。使用 df -h
命令来确认挂载状态。这样,你就可以确保系统在启动时自动解锁加密分区,无需手动输入密码。
dracut -v -f
发表回复