使用LUKS对Linux磁盘进行加密
前言
本实验用于日常学习用,如需对存有重要数据的磁盘进行操作,请做好数据备份工作。 此实验只是使用LUKS工具的冰山一角,后续还会有更多功能等待探索。
LUKS(Linux Unified Key Setup)是Linux系统中用于磁盘加密的一种机制,它为磁盘分区提供了强大的加密保护。
加密卷:LUKS通过创建一个加密的“加密卷”,这个卷在磁盘上表现为一个分区或整个磁盘。
密钥槽:每个LUKS加密卷可以包含多个密钥槽,每个槽可以存储一个不同的密钥,用于解密加密卷。
主密钥:LUKS使用一个主密钥来加密和解密这些密钥槽中的密钥。
LUKS为Linux系统提供了一种强大且灵活的磁盘加密解决方案,通过创建加密卷和使用密钥槽来保护数据安全。它在全磁盘加密、分区加密和容器加密等多种场景下都有广泛应用。
LUKS工具,不是LUSK工具。
基本步骤
本次实验的操作系统为Redhat8
1、查看是否安装了LUKS软件包
rpm -qf /sbin/cryptsetup

2、 查看当前磁盘及分区
fdisk -l

3、添加新磁盘
关闭虚拟机,再VMware工作台给虚拟机添加一个新硬盘
对硬盘的相关操作,可以参考这篇文章:
Linux——【磁盘管理和LVM卷组管理】



4、对新硬盘进行加密
对/dev/nvme0n2 进行加密
cryptsetup luksFormat /dev/nvme0n2

5、对解锁的硬盘映射
cryptsetup luksOpen /dev/nvme0n2 dly

6、查看映射情况
ll /dev/mapper/dly

• lrwxrwxrwx. 1 root root 7 Nov 24 02:07 /dev/mapper/dly -> …/dm-2
l 表示这是一个符号链接。
rwxrwxrwx 表示所有用户都有读、写和执行权限。
1 表示链接数(硬链接数量)。
root root 表示所有者是 root 用户和 root 组。
7 表示符号链接本身占用的字节数。
Nov 24 02:07 表示最后修改时间。
/dev/mapper/dly -> …/dm-2 表示这个符号链接指向的目标路径是 …/dm-2,即 /dev/dm-2。
设备映射器(Device Mapper):
• /dev/mapper/ 目录下的文件通常与 Linux 的设备映射器框架相关,它允许将物理块设备映射到逻辑卷管理器(如 LVM)或加密设备等。
• dm-2 是一个由设备映射器创建的逻辑设备名。
7、将磁盘格式话未ext4模式
mkfs.ext4 /dev/mapper/dly

8、创建磁盘挂载点,并挂载磁盘,查看文件系统的使用情况
//创建挂载目录
mkdir /mnt/luks
//进行磁盘挂载
mount /dev/mapper/dly /mnt/luks/
//查看各文件系统情况
df -h


9、配置文件,设置硬盘加密自启
该文件用于开机自动挂载
/etc/fstab 文件用于
定义系统启动时自动挂载的文件系统,通过正确配置该文件,可以实现文件系统的自动化管理和挂载。
文件中的字段
<file system> <mount point> <type> <options> <dump> <pass><file system>:设备名或UUID,可以是实际的设备路径(如 /dev/sda1)或UUID(如 UUID=xxxxx)。
<mount point>:挂载点,即文件系统将被挂载到的位置(如 /, /home, /mnt/data)。
<type>:文件系统类型(如 ext4, xfs, vfat, ntfs 等)。
<options>:挂载选项,可以包含多个选项,用逗号分隔(如 defaults, noatime, noexec 等)。
<dump>:备份工具使用的字段,通常设置为 0,表示不进行备份。
<pass>:fsck工具使用的字段,用于确定文件系统检查的顺序。根文件系统通常设置为 1,其他文件系统可以设置为 2 或其他值。
进入配置文件
vi /etc/fstab

10、在/etc/crypttab生成虚拟设备文件
该文件可以实现加密卷的自动化管理和挂载
/etc/crypttab 文件在 Linux 系统中用于
配置加密卷的自动解密。当系统启动时,根据这个文件中的配置,可以自动解密指定的加密卷,并将其挂载到指定的位置。这对于需要自动加载加密卷的场景非常有用,例如在系统启动时自动挂载加密的根文件系统或数据分区。
vi /etc/crypttab

11、重启设备,验证是否加密成功

12、关闭加密
先卸载挂载点,再锁定分区
//卸载挂载点(一定不要打错挂载点!!!)
umount /mnt/luks
//关闭对磁盘的加密
cryptsetup luksClose dly
//查看是否完成加密关闭
ll /dev/mapper/dly

此时再重启,应该不会出现输入磁盘加密密码的情况,但是我重启后不仅需要输入加密密码,还进入了紧急模式。。。

细心的朋友可能会发现我在最后一步,==卸载挂载点的时候打错了卸载点,导致我再次进入Redhat时,被强制进入了紧急模式。==主要原因就是磁盘找不到挂载点,导致磁盘分区错误。以下是本次解决方法。
错误原因:

问题解决
1、强制模式下,进入/etc/fstab 这个配置文件,将之前写入的磁盘加密自启信息注释或删掉(在此之前我在“编辑虚拟机”中,将之前加密的磁盘移除了,不过就算你没有移除磁盘,也是可以进行接下来的操作)
vi /etc/fstab

2、保存退出后重新加载文件使其生效
systemctl daemon-reload
然后重启
reboot
此时开机发现系统依然让我们输入磁盘加密信息,正常输入即可,输入完成后按回车键发现能够正常进入系统啦!(之前是输入密码后会进入紧急模式)

至此,紧急模式的问题我们已经解决。
由于我的粗心,导致在卸载错误挂载点,因此我需要重新卸载

进入/etc/crypttab 文件中,将之前写入的信息注释或删除
vi /etc/crypttab

重启后发现可以直接输入账户密码进入Redhat,不需要再输入磁盘加密密码啦!

然后查看当前的硬盘及分区状况,发现之前对加密的分区还在。

问题解决!
总结
以上就是使用LUKS对Linux磁盘加密的过程,最后出现一点小插曲,挂载点和映射文件一定不要打错!在面对突发问题时,冷静时最好的办法,不妨回过头来理一遍思路,弄清楚每个文件的作用,可能会有意外的收获!
问题解决参考链接:【RedHat】重启服务器进入了emergency mode紧急状态——UUID不匹配
相关文章:
使用LUKS对Linux磁盘进行加密
前言 本实验用于日常学习用,如需对存有重要数据的磁盘进行操作,请做好数据备份工作。 此实验只是使用LUKS工具的冰山一角,后续还会有更多功能等待探索。 LUKS(Linux Unified Key Setup)是Linux系统中用于磁盘加密的一…...
戴尔电脑安装centos7系统遇到的问题
1,找不到启动盘(Operation System Loader signature found in SecureBoot exclusion database(‘dbx’).All bootable devices failed secure Boot Verification) 关闭 Secure Boot(推荐): 进入 BIOS/UEFI…...
3.4.SynchronousMethodHandler组件之ResponseHandler
前言 feign发送完请求后, 拿到返回结果, 那么这个返回结果肯定是需要经过框架进一步处理然后再返回到调用者的, 其中ResponseHandler就是用来处理这个返回结果的, 这也是符合正常思维的处理方式, 例如springmvc部分在调用在controller端点前后都会增加扩展点。 从图中可以看得…...
Linux 下进程的状态
操作系统中常见进程状态 在操作系统中有六种常见进程状态: 新建状态: 进程正在被创建. 此时操作系统会为进程分配资源, 如: 内存空间等, 进行初始化就绪状态: 进程已经准备好运行了, 只需要等待被调度, 获取 CPU 资源就可以执行了, 操作系统中可能同时存在多个进程处于就绪状…...
【计算机网络】核心部分复习
目录 交换机 v.s. 路由器OSI七层更实用的TCP/IP四层TCPUDP 交换机 v.s. 路由器 交换机-MAC地址 链接设备和设备 路由器- IP地址 链接局域网和局域网 OSI七层 物理层:传输设备。原始电信号比特流。数据链路层:代表是交换机。物理地址寻址,交…...
Spring Boot开发实战:从入门到构建高效应用
Spring Boot 是 Java 开发者构建微服务、Web 应用和后端服务的首选框架之一。其凭借开箱即用的特性、大量的自动化配置和灵活的扩展性,极大简化了开发流程。本文将以实战为核心,从基础到高级,全面探讨 Spring Boot 的应用开发。 一、Spring B…...
pyshark安装使用,ubuntu:20.04
1.容器创建 命令 docker run -d --name pyshark -v D:\src:/root/share ubuntu:2004 /bin/bash -c "while true;do sleep 1000;done" 用于创建并启动一个新的 Docker 容器。 docker run -d --name pyshark -v D:\src:/root/share ubuntu:2004 /bin/bash -c "w…...
基本功能实现
目录 1、环境搭建 2、按键控制灯&电机 LED 电机 垂直按键(机械按键) 3、串口调试功能 4、定时器延时和定时器中断 5、振动强弱调节 6、万年历 7、五方向按键 1、原理及分析 2、程序设计 1、环境搭建 需求: 搭建一个STM32F411CEU6工程 分析: C / C 宏定义栏…...
《那个让服务器“跳舞”的bug》
在程序的世界里,bug 就像隐藏在暗处的小怪兽,时不时跳出来捣乱。而在我的职业生涯中,有一个bug让我至今难忘,它不仅让项目差点夭折,还让我熬了无数个通宵。这个故事发生在一个风和日丽的下午,我们正在开发一…...
Python 网络爬虫进阶:动态网页爬取与反爬机制应对
在上一篇文章中,我们学习了如何使用 Python 构建一个基本的网络爬虫。然而,在实际应用中,许多网站使用动态内容加载或实现反爬机制来阻止未经授权的抓取。因此,本篇文章将深入探讨以下进阶主题: 如何处理动态加载的网…...
创建可直接用 root 用户 ssh 登陆的 Docker 镜像
有时候我们在 Mac OS X 或 Windows 平台下需要开发以 Linux 为运行时的应用,IDE 或可直接使用 Docker 容器,或 SSH 远程连接。本地命令行下操作虽然可以用 docker exec 连接正在运行的容器,但 IDE 远程连接的话 SSH 总是一种较为通用的连接方…...
wordpress 中添加图片放大功能
功能描述 使用 Fancybox 实现图片放大和灯箱效果。自动为文章内容中的图片添加链接,使其支持 Fancybox。修改了 header.php 和 footer.php 以引入必要的 CSS 和 JS 文件。在 functions.php 中通过过滤器自动为图片添加 data-fancybox 属性。 最终代码 1. 修改 hea…...
数据结构 (7)线性表的链式存储
前言 线性表是一种基本的数据结构,用于存储线性序列的元素。线性表的存储方式主要有两种:顺序存储和链式存储。链式存储,即链表,是一种非常灵活和高效的存储方式,特别适用于需要频繁插入和删除操作的场景。 链表的基本…...
库的操作.
创建、删除数据库 创建语法: CREATE DATABASE [IF NOT EXISTS] db_name[ ]是可选项,IF NOT EXISTS 是表明如果不存在才能创建数据库 //查看数据库,假设7行 show databases; //创建数据库 --- 本质在Linux创建一个目录 create database databa…...
Vue进阶之Vue CLI服务—@vue/cli-service Vuex
Vue CLI服务—vue/cli-service & Vuex vue/cli-service初识bin/vue-cli-service.js代码执行解读 Vuexgenerator/index.jsstore/index.js插件化的能力怎么引入呢? vue/cli-service 初识 第一块是上一个讲述的cli是把我们代码的配置项,各种各样的插件…...
导入100道注会cpa题的方法,导入试题,自己刷题
一、问题描述 复习备考的小伙伴们,往往希望能够利用零碎的时间和手上的试题,来复习和备考 用一个能够导入自己试题的刷题工具,既能加强练习又能利用好零碎时间,是一个不错的解决方案 目前市面上刷题工具存下这些问题 1、要收费…...
数据库操作、锁特性
1. DML、DDL和DQL是数据库操作语言的三种主要类型 1.1 DML(Data Manipulation Language)数据操纵语言 DML是用于检索、插入、更新和删除数据库中数据的SQL语句。 主要的DML语句包括: SELECT:用于查询数据库中的数据。 INSERT&a…...
学习笔记039——SpringBoot整合Redis
文章目录 1、Redis 基本操作Redis 默认有 16 个数据库,使用的是第 0 个,切换数据库添加数据/修改数据查询数据批量添加批量查询删除数据查询所有的 key清除当前数据库清除所有数据库查看 key 是否存在设置有效期查看有效期 2、Redis 数据类型String追加字…...
(笔记)简单了解ZYNQ
1、zynq首先是一个片上操作系统(Soc),结合了arm(PS)和fpga(PL)两部分组成 Zynq系统主要由两部分组成:PS(Processing System)和PL(Programmable L…...
大众点评小程序mtgsig1.2算法
测试效果: var e function _typeof(o) {return "function" typeof Symbol && "symbol" typeof Symbol.iterator? function (o) {return typeof o;}: function (o) {return o && "function" typeof Symbol &…...
对比直接使用厂商API体验Taotoken在路由与容灾方面的优势
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 对比直接使用厂商API体验Taotoken在路由与容灾方面的优势 在开发基于大模型的应用时,开发者通常会面临一个选择&#x…...
从被动应答到自我进化,深度拆解Agent核心技术范式的四年演进之路
从2023年大模型爆发至今,智能Agent技术只用了短短四年时间,就完成了数次颠覆性的迭代升级。从最初只会被动应答的聊天增强工具,到如今能够自主规划复杂任务、持续自我进化的数字员工,Agent的技术形态、架构逻辑和落地范式都发生了…...
如何解决多语言语音识别乱码问题:Vosk API的字符编码终极指南
如何解决多语言语音识别乱码问题:Vosk API的字符编码终极指南 【免费下载链接】vosk-api Offline speech recognition API for Android, iOS, Raspberry Pi and servers with Python, Java, C# and Node 项目地址: https://gitcode.com/GitHub_Trending/vo/vosk-a…...
VSCode中R语言开发环境配置与使用完整教程
VSCode中R语言开发环境配置与使用完整教程 【免费下载链接】vscode-R R Extension for Visual Studio Code 项目地址: https://gitcode.com/gh_mirrors/vs/vscode-R 在数据科学和统计分析工作中,R语言开发者常常面临开发环境碎片化的问题:代码编辑…...
看长视频懒得逐字记?2026这3款AI工具,一键转文字还能出总结
做内容创作和自媒体两年,我日常最频繁的工作,就是拆解各类长视频素材。不管是学习行业课程、拆解对标账号的干货视频,还是整理线上讲座、培训回放,都需要把视频里的口述内容变成文字笔记和总结概要。以前真的太煎熬了,…...
使用taotoken后github actions自动化任务中的api调用稳定性观察
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 使用taotoken后github actions自动化任务中的api调用稳定性观察 1. 背景与迁移动机 在持续集成与自动化开发流程中,Gi…...
20+专业图标库免费获取:Inkscape Open Symbols让你的设计效率提升300%
20专业图标库免费获取:Inkscape Open Symbols让你的设计效率提升300% 【免费下载链接】inkscape-open-symbols Open source SVG symbol sets that can be used as Inkscape symbols 项目地址: https://gitcode.com/gh_mirrors/in/inkscape-open-symbols 还在…...
抖音下载器终极指南:3分钟学会无损音频提取与批量下载
抖音下载器终极指南:3分钟学会无损音频提取与批量下载 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser fallback suppo…...
Armv8-R内存一致性模型解析与Cortex-R82实践
1. Cortex-R82/R82AE内存一致性解析:架构师视角的深度指南 在实时计算领域,内存一致性模型直接影响着多核系统的确定性和性能表现。作为Armv8-R架构的旗舰处理器,Cortex-R82/R82AE集群通过精细的内存属性控制机制,为汽车电子、工业…...
Windows右键菜单终极优化:ContextMenuManager完全掌控指南
Windows右键菜单终极优化:ContextMenuManager完全掌控指南 【免费下载链接】ContextMenuManager 🖱️ 纯粹的Windows右键菜单管理程序 项目地址: https://gitcode.com/gh_mirrors/co/ContextMenuManager Windows右键菜单是日常操作中使用最频繁的…...
