网站建设 中企动力洛阳分公司/湘潭网站设计
文章目录
- [GParted 中已清除的分区与未格式化的分区](https://superuser.com/questions/706624/cleared-vs-unformatted-partition-in-gparted)
- 创建加密分区
- 解密创建的加密分区以便挂载
- 格式化设备未具体的格式(这里为ext4格式)
- 创建挂载点目录
- 挂载加密的文件系统
- 查看映射设备的状态
- 查看是否挂载成功
- 设置开机自动挂载
- 解除开机自动挂载
- 关闭自动挂载,并且重启系统后
- 理论
- 具体操作 (验证加密)
- 刚开机的时候查看加载卷
- 解锁(打开设备)
- 重新挂载
- 查看挂载目录
- 在挂载目录写一个文件
- 卸载挂载文件夹 和关闭映射设备
- 全部操作一览
- 如果是文件,如何验证cryptsetup的加密功能
- **创建一个加密卷**:
- **打开加密卷并挂载**:
- **写入和读取数据**:
- **卸载并关闭加密卷**:
- **验证加密**:
- **重新打开和验证数据**:
- 补充
假设A分区是系统分区100G,剩余70G,我想将剩余其中的10G空间择出来,创建 一个新分区。 可以使用
gparted-live-1.5.0-6-amd64 (1).iso
要使用
gparted-live-1.5.0-6-amd64 (1).iso
,你可以按照以下步骤操作:
下载 ISO 文件:
如果你还没有下载gparted-live-1.5.0-6-amd64 (1).iso
文件,首先从官方源或其他可信源下载。创建可启动媒介:
创建一个可启动的 USB 或 DVD,将gparted-live-1.5.0-6-amd64 (1).iso
文件写入其中。以下是使用 Rufus(在 Windows 上)和 dd(在 Linux 上)创建可启动 USB 的方法:
使用 Rufus(Windows):
- 插入一个空白的 USB 驱动器。
- 打开 Rufus 工具。
- 在 “设备” 列表中选择你的 USB 驱动器。
- 点击 “选择” 按钮,浏览并选择
gparted-live-1.5.0-6-amd64 (1).iso
文件。- 确保 “boot selection” 选择了 “DD Image”。
- 点击 “开始” 按钮,等待过程完成。
使用 dd(Linux):
- 插入一个空白的 USB 驱动器。
- 找到你的 USB 驱动器设备名,通常为
/dev/sdX
,其中X
是代表驱动器的字母(如sdb
)。- 使用以下命令写入 ISO 文件,替换
X
为你的实际设备名:注意:确保你正确识别了 USB 设备名,错误的操作可能会导致数据丢失。sudo dd if=gparted-live-1.5.0-6-amd64\ \(1\).iso of=/dev/sdX bs=4M status=progress oflag=sync
设置 BIOS/UEFI 启动顺序:
- 重启电脑,并在开机时进入 BIOS/UEFI 设置界面(通常是按 F2、F10、Delete 或其他特定键,具体取决于你的电脑型号)。
- 在 BIOS/UEFI 设置中找到 “启动选项” 或类似的菜单。
- 将 USB 驱动器设置为优先启动设备。
- 保存更改并退出 BIOS/UEFI 设置。
启动 GParted Live:
- 电脑将会从 USB 驱动器启动,并加载 GParted Live 环境。
- 选择合适的语言和其他选项(如果有)。
- 等待 GParted 图形界面加载。
现在,你已经在 GParted Live 环境中,可以使用 GParted 工具来管理你的磁盘分区,包括创建、调整大小、删除、格式化等操作。请注意,在进行任何修改之前,最好先备份重要数据,以防意外情况发生。
在 VMware 虚拟机中的 Linux 系统中使用 GParted Live,可以按照以下步骤操作:
下载 GParted Live ISO 文件:
从 GParted 官方网站或其他可信源下载gparted-live-1.5.0-6-amd64 (1).iso
文件。在 VMware 中添加虚拟光驱:
- 关闭你的 Linux 虚拟机。
- 在 VMware 中,选择你的 Linux 虚拟机,然后点击 “设置”(或 “Configuration”)按钮。
- 在设置窗口中,选择 “硬件”(或 “Hardware”)选项卡。
- 找到并点击 “添加”(或 “Add”)按钮,然后选择 “CD/DVD 驱动器”(或 “CD/DVD Drive”)。
- 在新出现的 CD/DVD 驱动器设置中,选择 “使用 ISO 映像文件”(或 “Use ISO image file”),然后浏览并选择你下载的
gparted-live-1.5.0-6-amd64 (1).iso
文件。- 确保在连接选项中选择了 “启动时连接”(或 “Connect at power on”)。
配置虚拟机引导顺序:
- 在相同的设置窗口中,找到并选择 “硬盘”(或 “Hard Disk”)选项。
- 确保你的虚拟机硬盘位于引导设备列表的首位。
启动虚拟机并进入 GParted Live:
- 启动你的 Linux 虚拟机。
- 在开机过程中,虚拟机应该会自动从 GParted Live ISO 文件启动。
- 选择合适的语言和其他选项(如果有)。
- 等待 GParted 图形界面加载。
现在,你已经在 GParted Live 环境中,可以使用 GParted 工具来管理你的虚拟机磁盘分区。请注意,在进行任何修改之前,最好先备份重要数据,以防意外情况发生。由于你在虚拟机环境中,你可以轻松地创建快照或备份整个虚拟机以确保数据安全。
延长vmware 虚拟机的启动时间,方便我们按键进入bios
虚拟机启动时,等到它显示press F2 to enter setup …
它显示太快,我们根本看不清它显示的什么,也来不及按F2就过去了, 我们需要延长虚拟机启动时间,让我们有一个反应时间方法如下:
1、关闭虚拟机,找到虚拟机系统的存放目录(注:不是虚拟机这个软件的安装目录),然后进入到相应系统的文件夹。
举例:例如WIN7系统,找到win7的文件夹,
2. 用记事本打开一个.vmx的文件(win7.vmx),在最后加入一行
bios.bootDelay = “5000”,其中5000为5秒的意思。
关于 如何格式化新分区作为待加密分区
GParted 中已清除的分区与未格式化的分区
我正在运行一个类似数据库的应用程序,它直接在原始块设备中写入和读取数据。我想为此创建一个新分区,我正在使用 GParted。我已经成功地缩小了我的常规 linux 分区,现在我可以看到可用空间列为“未分配”。Gparted 允许您选择将此空间格式化为“未格式化”或“清除”。我不明白他们的区别。
在GParted手册中,是这样说的:
- cleared 可用于清除任何现有的文件系统签名,并确保将分区识别为空。
- unformatted 可用于创建分区而不编写文件系统。
我找不到任何关于它们差异的详细说明。有人可以解释一下吗?此外,在写入和读取分区时,是否会对分区的可靠性或性能产生任何影响?其中一个更适合我的目的吗?将分区保持“未分配”状态是否有任何影响?谢谢!
添加评论
不幸的是,这两个选项与其他以不同方式起作用的选项一起列出。其他选项是所有文件系统格式,其中新分区是使用所选格式创建的。这两个感兴趣的选项实质上是两个空选项。
- 如果将分区“未格式化”,则根本不会尝试将文件系统数据结构写入其中。但它可能已经拥有它们,无论是偶然的还是有意的。
- 如果“清除”了一个分区,那么操作系统用来检测文件系统类型的已知位置的各种签名就会被擦除。
因此,颇具讽刺意味的是,清除分区将保证它因此未格式化,而未格式化的分区可能会像以前一样保持格式化。
创建加密分区
x@x:~$ ls /dev/sda* /dev/sda /dev/sda1 /dev/sda2 /dev/sda3 /dev/sda4
其中sda4是之前创建的分区(未挂载)
x@x:~$ sudo su
root@x:/home/x# cryptsetup luksFormat /dev/sda4WARNING!
========
This will overwrite data on /dev/sda4 irrevocably.Are you sure? (Type 'yes' in capital letters): YES
Enter passphrase for /dev/sda4:
Verify passphrase:
root@x:/home/x#
解密创建的加密分区以便挂载
x@x:~$ sudo su
root@x:/home/x# cryptsetup luksFormat /dev/sda4WARNING!
========
This will overwrite data on /dev/sda4 irrevocably.Are you sure? (Type 'yes' in capital letters): YES
Enter passphrase for /dev/sda4:
Verify passphrase:
root@x:/home/x# cryptsetup luksOpen /dev/sda4 my_encrypted_fs
Enter passphrase for /dev/sda4:
root@x:/home/x#
这将创建一个名为my_encrypted_fs
的映射设备(映射到 /dev/mapper),你可以像对待普通磁盘分区一样对其进行格式化和挂载。
格式化设备未具体的格式(这里为ext4格式)
root@x:/home/x# mkfs.ext4 /dev/mapper/my_encrypted_fs
mke2fs 1.46.5 (30-Dec-2021)
Creating filesystem with 2617088 4k blocks and 655360 inodes
Filesystem UUID: 5c6e9946-d58d-42cd-adbb-b0dc0a4404ce
Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632Allocating group tables: done
Writing inode tables: done
Creating journal (16384 blocks): done
Writing superblocks and filesystem accounting information: done
创建挂载点目录
mkdir /mnt/encrypted_fs_mntroot@x:/home/x# ls /mnt
encryped_fs encrypted_fs_mnt
挂载加密的文件系统
root@x:/home/x# mount /dev/mapper/my_encrypted_fs /mnt/encrypted_fs_mnt/
查看映射设备的状态
root@x:/home/x# cryptsetup status /dev/mapper/my_encrypted_fs
/dev/mapper/my_encrypted_fs is active and is in use.type: LUKS2cipher: aes-xts-plain64keysize: 512 bitskey location: keyringdevice: /dev/sda4sector size: 512offset: 32768 sectorssize: 20936704 sectorsmode: read/write
root@x:/home/x#
知识点补充:
/dev/mapper/my_encrypted_fs
是一个逻辑设备文件,它代表了一个使用cryptsetup
工具和 LUKS 加密格式加密的存储设备。当一个物理存储设备(如硬盘分区)被用 LUKS 格式加密后,它会被映射到一个
/dev/mapper/
下的逻辑设备名。在这个例子中,逻辑设备名为my_encrypted_fs
。"
/dev/mapper/my_encrypted_fs is inactive.
" 这个消息表示当前这个加密的逻辑设备并未被解锁和激活。也就是说,虽然物理存储设备存在,但由于它处于加密状态且未提供正确的解锁密码或密钥,操作系统无法访问其上的数据。要访问这个加密卷上的数据,你需要先使用
cryptsetup
提供正确的密码或密钥来解锁它,然后将其挂载到一个目录下才能进行读写操作。
当使用 cryptsetup luksOpen 输入密码打开后,
/dev/mapper/my_encrypted_fs is inactive.
就变成/dev/mapper/my_encrypted_fs is active
root@x:/home/x# cryptsetup luksOpen /dev/sda4 my_encrypted_fs Enter passphrase for /dev/sda4: root@x:/home/x# cryptsetup status /dev/mapper/my_encrypted_fs /dev/mapper/my_encrypted_fs is active.type: LUKS2cipher: aes-xts-plain64keysize: 512 bitskey location: keyringdevice: /dev/sda4sector size: 512offset: 32768 sectorssize: 20936704 sectorsmode: read/write
查看是否挂载成功
root@x:/home/x# df -Th | tail -1
/dev/mapper/my_encrypted_fs ext4 9.8G 24K 9.3G 1% /mnt/encrypted_fs_mnt
设置开机自动挂载
-
打开
/etc/crypttab
文件:sudo vim /etc/crypttab
-
添加新的映射关系:
在文件中添加一个新的行,指定加密设备、映射名称、密码和任何其他选项。例如:my_encrypted_fs /dev/sda4 none luks,discard
这里,
encrypted_fs
是映射名称。/dev/sda4
是加密设备。none
表示密码将通过交互式提示输入。luks,discard
是选项,luks
指定了 LUKS 加密格式,discard
则启用 TRIM 支持(如果硬件支持)。
-
更新 initramfs:
更新 initramfs 以包含新的加密卷配置:sudo update-initramfs -u
root@x:/home/x# vim /etc/crypt cryptsetup-initramfs/ crypttab root@x:/home/x# vim /etc/crypttab root@x:/home/x# sudo update-initramfs -u update-initramfs: Generating /boot/initrd.img-6.2.0-39-generic root@x:/home/x#
-
重启系统并验证挂载:
重启你的系统,然后检查加密卷是否已经被自动解锁和挂载:mount | grep my_encrypted_fs
通过修改 /etc/crypttab
并更新 initramfs,
解除开机自动挂载
要取消开机自动挂载一个之前设置为自动挂载的加密卷,你可以按照以下步骤操作:
-
编辑
/etc/crypttab
文件:sudo vim /etc/crypttab
-
注释或删除对应的行:
在/etc/crypttab
文件中,找到与你想取消自动挂载的加密卷相关的行。通常,这行会包含映射设备名(如encrypted_fs
)、物理设备路径(如/dev/sda4
)以及可能的密码或选项。要取消自动挂载,你可以选择以下任一方法:- 注释该行:在该行前面添加
#
字符,将这一行变为注释行,例如:#my_encrypted_fs /dev/sda4 none luks,discard
- 删除该行:如果你确定不再需要自动挂载这个加密卷,可以直接删除整行。
- 注释该行:在该行前面添加
-
更新 initramfs:
在修改/etc/crypttab
文件后,你需要更新 initramfs 以反映这些更改:sudo update-initramfs -u
x@x:~$ sudo vim /etc/crypttab [sudo] password for x: x@x:~$ sudo update-initramfs -u update-initramfs: Generating /boot/initrd.img-6.2.0-39-generic x@x:~$ cat /etc/crypttab # <target name> <source device> <key file> <options> #my_encrypted_fs /dev/sda4 none luks,discard x@x:~$
-
重启系统并验证更改:
重启你的系统,然后检查是否还在启动时自动解锁和挂载该加密卷。你可以通过以下命令查看已挂载的文件系统:mount | grep my_encrypted_fs
如果该加密卷不再出现在列表中,说明取消自动挂载成功。
请注意,如果你在 /etc/fstab
中也有关于这个加密卷的挂载配置,你也应该相应地更新或删除那个配置,以防止在手动解锁和挂载加密卷后系统再次自动挂载它。
关闭自动挂载,并且重启系统后
理论
如果你关闭了开机自动挂载一个加密卷,并且随后重启了系统,以下将会发生:
-
启动过程中不会解锁和挂载加密卷:
由于你在/etc/crypttab
文件中取消了自动挂载设置,并更新了 initramfs,系统在启动过程中将不再尝试自动解锁和挂载该加密卷。 -
加密卷保持锁定状态:
加密卷将继续保持锁定状态,这意味着数据在没有正确密码或密钥的情况下是不可读的。 -
无法直接访问加密卷上的数据:
由于加密卷未被挂载,你将无法直接访问其上的文件和目录。如果你尝试挂载该加密卷,你需要首先使用cryptsetup
提供正确的密码或密钥来解锁它。 -
手动解锁和挂载加密卷:
如果你需要访问加密卷上的数据,你需要手动执行以下步骤:cryptsetup luksOpen /dev/sda4 my_encrypted_fs mkdir -p /mnt/encrypted_fs_mnt mount /dev/mapper/my_encrypted_fs /mnt/encrypted_fs_mnt
这里,
/dev/sda4
是你的加密设备,my_encrypted_fs
是你的映射设备名,/mnt/encrypted_fs_mnt
是你希望挂载加密卷的目录。 -
使用加密卷:
在手动解锁和挂载加密卷后,你现在可以像平常一样访问和操作/mnt/encrypted_fs_mnt
下的数据。 -
卸载和关闭加密卷:
当你完成对加密卷的访问后,记得卸载并关闭它以确保数据安全:umount /mnt/my_encrypted_fs cryptsetup luksClose my_encrypted_fs
总的来说,关闭开机自动挂载后重启系统,会导致系统不再自动处理加密卷的解锁和挂载,你需要手动进行这些操作来访问加密卷上的数据。
具体操作 (验证加密)
刚开机的时候查看加载卷
x@x:~$ cryptsetup status /dev/mapper/my_encrypted_fs
/dev/mapper/my_encrypted_fs is inactive.
当你在刚开机的时候执行 cryptsetup status /dev/mapper/my_encrypted_fs
并得到 “is inactive” 的结果,这表示 /dev/mapper/my_encrypted_fs
这个加密卷当前并未被打开或挂载。
在系统启动过程中,如果一个加密卷没有设置为自动解锁和挂载,那么它会保持锁定状态,直到你使用正确的密码或密钥通过 cryptsetup
手动解锁它。
解锁(打开设备)
x@x:~$ cryptsetup status /dev/mapper/my_encrypted_fs
/dev/mapper/my_encrypted_fs is inactive.
x@x:~$ cryptsetup luksOpen /dev/sda4 my_encrypted_fs
Device /dev/sda4 does not exist or access denied.
x@x:~$ sudo su
[sudo] password for x:
root@x:/home/x# cryptsetup luksOpen /dev/sda4 my_encrypted_fs
Enter passphrase for /dev/sda4:
root@x:/home/x# cryptsetup status /dev/mapper/my_encrypted_fs
/dev/mapper/my_encrypted_fs is active.type: LUKS2cipher: aes-xts-plain64keysize: 512 bitskey location: keyringdevice: /dev/sda4sector size: 512offset: 32768 sectorssize: 20936704 sectorsmode: read/write
root@x:/home/x#
重新挂载
root@x:/home/x# mkdir -p /mnt/encrypted_fs_mnt
root@x:/home/x# mount /dev/mapper/my_encrypted_fs /mnt/encrypted_fs_mnt
root@x:/home/x#
查看挂载目录
root@x:/mnt# tree /mnt
/mnt
└── encrypted_fs_mnt└── lost+found
`lost+found` 是一个在 Linux 文件系统中常见的目录,它存在于每个文件系统的根目录下。这个目录的主要目的是存储在文件系统发生错误(如突然断电、系统崩溃或其他可能导致文件系统损坏的情况)时恢复的不完整或孤立的文件。当文件系统在挂载时进行检查(例如通过 `fsck` 命令),如果检测到任何不完整的数据块或者无法定位到其原始位置的文件,这些数据会被移动到 `lost+found` 目录中。这样,用户或者系统管理员就有机会检查这些文件,看看是否能恢复其中的重要数据。在你的例子中,`/mnt/encrypted_fs_mnt/lost+found` 目录是在 `/mnt/encrypted_fs_mnt` 文件系统根目录下创建的。即使这个文件系统是加密的,`lost+found` 目录仍然会被创建,以备在文件系统出现错误时恢复可能丢失的数据。通常情况下,如果你的系统运行正常且没有经历过导致文件系统损坏的事件,`lost+found` 目录应该是空的。但是,建议定期备份重要数据,并在必要时检查 `lost+found` 目录中的内容,以确保没有重要的文件被错误地移动到这里。
在挂载目录写一个文件
root@x:/mnt# vim testfile
root@x:/mnt/encrypted_fs_mnt# tree
.
├── lost+found
└── testfileroot@x:/mnt/encrypted_fs_mnt# cat testfile
1
2
3
4
5
6
7
8
9
0
卸载挂载文件夹 和关闭映射设备
root@x:/mnt# umount /mnt/encrypted_fs_mnt/
root@x:/mnt# cryptsetup luksClose my_encrypted_fs
Device encrypted_fs_mnt/ is not active.
root@x:/mnt#
当你处在该卷中时,你将无法卸载改卷
root@x:/mnt/encrypted_fs_mnt# umount /mnt/encrypted_fs_mnt/ umount: /mnt/encrypted_fs_mnt/: target is busy. root@x:/mnt/encrypted_fs_mnt# umount /mnt/encrypted_fs_mnt/ umount: /mnt/encrypted_fs_mnt/: target is busy. root@x:/mnt/encrypted_fs_mnt# cd .. root@x:/mnt# umount /mnt/encrypted_fs_mnt/ root@x:/mnt#
卸载之后
root@x:/mnt# tree encrypted_fs_mnt/
encrypted_fs_mnt/0 directories, 0 files
全部操作一览
x@x:~$ cryptsetup status /dev/mapper/my_encrypted_fs
/dev/mapper/my_encrypted_fs is inactive.
x@x:~$ sudo su
[sudo] password for x:
root@x:/home/x# cryptsetup luksOpen /dev/sda4 my_encrypted_fs
Enter passphrase for /dev/sda4:
root@x:/home/x# cryptsetup status /dev/mapper/my_encrypted_fs
/dev/mapper/my_encrypted_fs is active.type: LUKS2cipher: aes-xts-plain64keysize: 512 bitskey location: keyringdevice: /dev/sda4sector size: 512offset: 32768 sectorssize: 20936704 sectorsmode: read/write
root@x:/home/x# mount /dev/mapper/my_encrypted_fs /mnt/encrypted_fs_mnt
root@x:/home/x# tree /mnt
/mnt
└── encrypted_fs_mnt├── lost+found└── testfile2 directories, 1 file
root@x:/home/x# cd /mnt/encrypted_fs_mnt/
root@x:/mnt/encrypted_fs_mnt# ls
lost+found testfile
root@x:/mnt/encrypted_fs_mnt# rm testfile
root@x:/mnt/encrypted_fs_mnt# ls
lost+found
root@x:/mnt/encrypted_fs_mnt#
root@x:/mnt/encrypted_fs_mnt# vim testfile.c
root@x:/mnt/encrypted_fs_mnt# ls
lost+found testfile.c
root@x:/mnt/encrypted_fs_mnt# cat testfile.c
#include<>
{
int a;}
root@x:/mnt/encrypted_fs_mnt# tree
.
├── lost+found
└── testfile.c1 directory, 1 file
root@x:/mnt/encrypted_fs_mnt# cd ../
root@x:/mnt# ls
encrypted_fs_mnt
root@x:/mnt# cryptsetup status /dev/mapper/my_encrypted_fs
/dev/mapper/my_encrypted_fs is active and is in use.type: LUKS2cipher: aes-xts-plain64keysize: 512 bitskey location: keyringdevice: /dev/sda4sector size: 512offset: 32768 sectorssize: 20936704 sectorsmode: read/write
root@x:/mnt# umount /mnt/encrypted_fs_mnt/
root@x:/mnt# cryptsetup luksClose my_encrypted_fs
root@x:/mnt# tree encrypted_fs_mnt/
encrypted_fs_mnt/0 directories, 0 files
root@x:/mnt# cd encrypted_fs_mnt/
root@x:/mnt/encrypted_fs_mnt# ls
root@x:/mnt/encrypted_fs_mnt#
如果是文件,如何验证cryptsetup的加密功能
验证 cryptsetup
的加密功能可以通过以下几个步骤进行:
创建一个加密卷:
首先,使用 cryptsetup
创建一个新的加密卷。这可以是一个文件或一个磁盘分区。以下是一个创建基于文件的加密卷的例子:
dd if=/dev/zero of=myencryptedfile bs=1M count=1000
cryptsetup luksFormat myencryptedfile
这将创建一个名为 myencryptedfile
的 1 GB 大小的文件,并使用 LUKS 格式对其进行加密。
root@x:/mnt# cd encrypted_fs_mnt/ root@x:/mnt/encrypted_fs_mnt# ls root@x:/mnt/encrypted_fs_mnt# root@x:/mnt/encrypted_fs_mnt# cd ~ root@x:~# dd if=/dev/zero of=myencryptedfile bs=1M count=1000 1000+0 records in 1000+0 records out 1048576000 bytes (1.0 GB, 1000 MiB) copied, 0.878107 s, 1.2 GB/s root@x:~# cryptsetup luksFormat myencryptedfileWARNING! ======== This will overwrite data on myencryptedfile irrevocably.Are you sure? (Type 'yes' in capital letters): YES Enter passphrase for myencryptedfile: Verify passphrase: root@x:~# ls Desktop myencryptedfile snap Templates 模板 root@x:~#
打开加密卷并挂载:
使用 cryptsetup
打开加密卷,并将其映射到一个新的设备(例如 /dev/mapper/myencrypted
),然后格式化并挂载这个新设备:
cryptsetup luksOpen myencryptedfile myencrypted
mkfs.ext4 /dev/mapper/myencrypted
mkdir /mnt/encryptedvolume
mount /dev/mapper/myencrypted /mnt/encryptedvolume
root@x:~# ls
Desktop myencryptedfile snap Templates 模板
root@x:~# cryptsetup luksOpen myencryptedfile myencrypted
Enter passphrase for myencryptedfile:
root@x:~# mkfs.ext4 /dev/mapper/myencrypted
mke2fs 1.46.5 (30-Dec-2021)
Creating filesystem with 251904 4k blocks and 62976 inodes
Filesystem UUID: d7f76557-c6d2-4b1e-af4e-91409e067a17
Superblock backups stored on blocks: 32768, 98304, 163840, 229376Allocating group tables: done
Writing inode tables: done
Creating journal (4096 blocks): done
Writing superblocks and filesystem accounting information: doneroot@x:~# mkdir /mnt/encryptedvolume
root@x:~# mount /dev/mapper/myencrypted /mnt/encryptedvolume
root@x:~#
写入和读取数据:
在挂载点 /mnt/encryptedvolume
写入一些测试数据:
echo "This is a test message." > /mnt/encryptedvolume/testfile.txt
cat /mnt/encryptedvolume/testfile.txt
确保你可以正确地读取写入的数据。
root@x:~# echo "This is a test message." > /mnt/encryptedvolume/testfile.txt
root@x:~# cat /mnt/encryptedvolume/testfile.txt
This is a test message.
root@x:~#
卸载并关闭加密卷:
卸载加密卷,并使用 cryptsetup
关闭它:
umount /mnt/encryptedvolume
cryptsetup luksClose myencrypted
root@x:~# umount /mnt/encryptedvolume
root@x:~# cryptsetup luksClose myencrypted
root@x:~# cryptsetup stat
root@x:~# cryptsetup status /dev/mapper/myencrypted
/dev/mapper/myencrypted is inactive.
root@x:~#
验证加密:
现在,尝试直接读取加密文件的内容,你应该看到乱码或者无法解析的数据,因为文件是加密的:
hexdump -C myencryptedfile
如果你看到的是不可读的乱码,那么加密功能正在正常工作。
0017faa0 a8 8f 40 6d e9 e9 26 70 b3 24 1b da e4 52 a6 e3 |..@m..&p.$...R..|
0017fab0 b9 8a 8a 56 52 f9 ca c0 1b 72 1c 7a 4a 2e 30 f8 |...VR....r.zJ.0.|
0017fac0 65 2c 32 9e f5 0f 8d 66 f0 d9 ba ea 74 dc b5 d1 |e,2....f....t...|
0017fad0 d3 35 82 74 1a 3f f4 1d a8 13 73 2d 09 bb 73 64 |.5.t.?....s-..sd|
0017fae0 51 64 f7 ce 24 ff c4 65 d9 2c 0e 6f 27 f0 09 ff |Qd..$..e.,.o'...|
root@x:~# cat /mnt/encryptedvolume/testfile.txt cat: /mnt/encryptedvolume/testfile.txt: No such file or directory root@x:~#
重新打开和验证数据:
再次打开加密卷并挂载它,然后验证之前写入的数据是否仍然可以访问:
cryptsetup luksOpen myencryptedfile myencrypted
mount /dev/mapper/myencrypted /mnt/encryptedvolume
cat /mnt/encryptedvolume/testfile.txt
如果你能正确地读取之前写入的消息,那么加密、解密和挂载过程都工作正常。
root@x:~# cat /mnt/encryptedvolume/testfile.txt This is a test message. root@x:~#
通过以上步骤,你可以验证 cryptsetup
的加密、解密和挂载功能是否正常工作。
补充
hexdump -C myencryptedfile 为什么是这样处理来判断乱码,不是处理/mnt/encryptedvolume/testfile.txt 来判断乱码
使用
hexdump -C myencryptedfile
来判断乱码的原因在于,你想要检查的是原始加密文件的内容,而不是解密后挂载在/mnt/encryptedvolume
下的文件。当你对一个文件或分区进行加密时,其原始内容会被加密算法转换成看似随机的、无法直接理解的数据。这些加密后的数据在没有正确密钥和解密过程的情况下看起来就像是乱码。
因此,通过
hexdump -C myencryptedfile
命令,你可以查看加密文件的十六进制和 ASCII 表示。如果显示的输出大部分是不可读的字符和非打印字符,那么这通常表明文件已经被成功加密,并且在没有解密的情况下无法直接访问其原始内容。相比之下,如果你已经解密并挂载了加密卷到
/mnt/encryptedvolume
,然后在这个挂载点下访问testfile.txt
,你应该能看到可读的文本内容,因为文件已经在解密过程中被转换回其原始格式。所以,使用
hexdump -C myencryptedfile
来判断乱码是为了验证加密文件是否包含预期的加密数据,而处理/mnt/encryptedvolume/testfile.txt
则是为了验证解密和挂载过程是否正常工作。这两个操作分别用于检查加密和解密状态下的文件内容。
testfile.txt 和 myencryptedfile 的关系是什么
testfile.txt
和myencryptedfile
的关系取决于你的具体操作和目标。在使用加密的上下文中,通常情况下:
原始未加密文件:
testfile.txt
可能是你想要加密的原始文本文件。它包含可读的、未加密的数据。加密后的文件:
myencryptedfile
则是经过加密处理后的文件。当你使用cryptsetup
或其他加密工具对testfile.txt
进行加密时,加密后的数据将被写入到myencryptedfile
。在这种情况下,
testfile.txt
和myencryptedfile
之间的关系就是原始数据和加密后数据的关系。当你需要访问testfile.txt
中的原始内容时,你需要先解密myencryptedfile
,然后将解密后的数据恢复到一个新文件或原文件名(如果已删除原始文件)。请注意,这只是一个常见的场景示例。在实际应用中,你可能直接对整个分区或硬盘进行加密,而不是单个文件。在这种情况下,
myencryptedfile
将代表整个加密的存储设备,而testfile.txt
是存储在该设备上众多文件中的一个。
lume,然后在这个挂载点下访问
testfile.txt`,你应该能看到可读的文本内容,因为文件已经在解密过程中被转换回其原始格式。所以,使用
hexdump -C myencryptedfile
来判断乱码是为了验证加密文件是否包含预期的加密数据,而处理/mnt/encryptedvolume/testfile.txt
则是为了验证解密和挂载过程是否正常工作。这两个操作分别用于检查加密和解密状态下的文件内容。
testfile.txt 和 myencryptedfile 的关系是什么
testfile.txt
和myencryptedfile
的关系取决于你的具体操作和目标。在使用加密的上下文中,通常情况下:
原始未加密文件:
testfile.txt
可能是你想要加密的原始文本文件。它包含可读的、未加密的数据。加密后的文件:
myencryptedfile
则是经过加密处理后的文件。当你使用cryptsetup
或其他加密工具对testfile.txt
进行加密时,加密后的数据将被写入到myencryptedfile
。在这种情况下,
testfile.txt
和myencryptedfile
之间的关系就是原始数据和加密后数据的关系。当你需要访问testfile.txt
中的原始内容时,你需要先解密myencryptedfile
,然后将解密后的数据恢复到一个新文件或原文件名(如果已删除原始文件)。请注意,这只是一个常见的场景示例。在实际应用中,你可能直接对整个分区或硬盘进行加密,而不是单个文件。在这种情况下,
myencryptedfile
将代表整个加密的存储设备,而testfile.txt
是存储在该设备上众多文件中的一个。
相关文章:

创建加密分区或者文件
文章目录 [GParted 中已清除的分区与未格式化的分区](https://superuser.com/questions/706624/cleared-vs-unformatted-partition-in-gparted)创建加密分区解密创建的加密分区以便挂载格式化设备未具体的格式(这里为ext4格式)创建挂载点目录挂载加密的文…...

STL——遍历算法
1.for_each 函数原型: for_each(iterator beg, iterator end, _func);——// 遍历算法 遍历容器元素; beg 开始迭代器;end 结束迭代器; _func 函数或者函数对象 #include<iostream> using namespace std; #include<ve…...

C语言经典算法【每日一练】20
题目:有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。 1、先排序 2、插入 #include <stdio.h>// 主函数 void main() {int i,j,p,q,s,n,a[11]{127,3,6,28,54,68,87,105,162,18};//排序(选择排序)…...

Linux磁盘阵列
一.RAID磁盘阵列介绍 RAID(Redundatnt Array of lndependent Disks),全称为:独立冗余磁盘阵列 解释: RAID是一种把多块独立的硬盘(物理硬盘)按不同的方式组合起来形成一个硬盘组(逻…...

本地网络禁用了在哪里开启?
在当今数字化时代,网络已经成为人们生活中不可或缺的一部分。然而,有时我们可能需要禁用本地网络,无论是出于安全考虑、提高专注力还是其他原因。本文将探讨禁用本地网络的方法以及如何在需要时重新开启网络连接。 第一部分:禁用…...

[mysql 基于C++实现数据库连接池 连接池的使用] 持续更新中
目背景 常见的MySQL、Oracle、SQLServer等数据库都是基于C/S架构设计的,即(客户端/服务器)架构,也就是说我们对数据库的操作相当于一个客户端,这个客户端使用既定的API把SQL语句通过网络发送给服务器端,MyS…...

【Flink SQL API体验数据湖格式之paimon】
前言 随着大数据技术的普及,数据仓库的部署方式也在发生着改变,之前在部署数据仓库项目时,首先想到的是选择国外哪家公司的产品,比如:数据存储会从Oracle、SqlServer中或者Mysql中选择,ETL工具会从Informa…...

idea导入spring-framework异常:error: cannot find symbol
从github上clone代码spring-framework到本地后导入idea,点击gradle构建后控制台提示异常: 具体异常信息: /Users/ZengJun/Desktop/spring-framework/buildSrc/src/main/java/org/springframework/build/KotlinConventions.java:44: error:…...

Unity坦克大战开发全流程——开始场景——开始界面
开始场景——开始界面 step1:设置UI 反正按照这张图拼就行了 step2:写脚本 前面的拼UI都是些比较机械化的工作,直到这里写代码的时候才真正开始有点意思了,从这里开始,我们就要利用面向对象的思路来进行分析࿱…...

【SpringCloud】从实际业务问题出发去分析Eureka-Server端源码
文章目录 前言1.EnableEurekaServer2.初始化缓存3.jersey应用程序构建3.1注册jeseryFilter3.2构建JerseyApplication 4.处理注册请求5.registry() 前言 前段时间遇到了一个业务问题就是k8s滚动发布Eureka微服务的过程中接口会有很多告警,当时…...

Java 代理模式
一、代理模式概述 代理模式是一种比较好理解的设计模式。简单来说就是 我们使用代理对象来代替对真实对象(real object)的访问,这样就可以在不修改原目标对象的前提下,提供额外的功能操作,扩展目标对象的功能。 代理模式的主要作用是扩展目标…...

【Java干货教程】JSON,JSONObject,JSONArray类详解
一、定义 JSON:就是一种轻量级的数据交换格式,被广泛应用于WEB应用程序开发。JSON的简洁和清晰的层次结构,易于阅读和编写;同时也易于机器解析和生成,有效的提升网络传输效率;支持多种语言,很多…...

2023年高级软考系统架构师考题参考
对于一些有实践经验的同学来说,感觉不难,但是落笔到纸面上,就差强人意了,平时这方面要多练习,所想所思要落到纸面上,或者表达清晰让别人听懂,不仅是工作中的一个基本素质,也是个非常…...

【c语言】飞机大战(1)
提前准备好游戏要的素材,可以到爱给网去找,飞机大战我们需要的是一个我方战机图片,一个背景图,三个敌方战机的图,我方战机的图片,敌方战机的图片,并且将图片和.cpp放在同一文件夹下. 这里创建.…...

关于 K8s 的一些基础概念整理
〇、前言 Kubernetes,将中间八个字母用数字 8 替换掉简称 k8s,是一个开源的容器集群管理系统,由谷歌开发并维护。它为跨主机的容器化应用提供资源调度、服务发现、高可用管理和弹性伸缩等功能。 下面简单列一下 k8s 的几个特性: 自…...

Node.js-fs、path、http模块
1.初识Node.js 1.1 什么是Node.js 1.2 Node.js中的JavaScript运行环境 1.3 Node.js可以做什么 Node.js 作为一个JavaScript 的运行环境,仅仅提供了基础的功能和 AP1。然而,基于 ode.s 提供的这些基础能,很多强大的工具和框架如雨后春笋&…...

CentOS 安装WebLogic
1.JDK 安装 cd /home/ mkdir java cd java/ tar -zxvf jdk-8u321-linux-x64.tar.gzvim /etc/profile添加以下内容到 /etc/profile JAVA_HOME/home/java/jdk1.8.0_321 CLASSPATH.:$JAVA_HOME/lib.tools.jar PATH$JAVA_HOME/bin:$PATH export JAVA_HOME CLASSPATH PATH刷新配置…...

Linux命令的操作练习
1.创建ss别名,查看长格式详细信息 alias ssls -l 2.创建ss别名,复制boot文件夹下的内容到data文件夹下 alias sscp -r /boot /data 3.删除别名ss unalias ss 4. 复制test文件夹下的passwd文件到qq文件夹下,并改名为ww cp test/pas…...

杰发科技AC7840——EEPROM初探
0.序 7840和7801的模拟EEPROM使用不太一样 1.现象 按照官方Demo,在这样的配置下,我们看到存储是这样的(连续三个数字1 2 3)。 使用串口工具的多帧发送功能 看不出多少规律 修改代码后 发现如下规律: 前四个字节是…...

WPF 基础入门(简介)
简介 WPF(Windows Presentation Foundation)是微软推出的基于Windows 的用户界面框架,属于.NET Framework 3.0的一部分。它提供了统一的编程模型、语言和框架,真正做到了分离界面设计人员与开发人员的工作;同时它提供了…...

【Unity动画系统】Animator有限状态机参数详解
👨💻个人主页:元宇宙-秩沅 👨💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 👨💻 本文由 秩沅 原创 👨💻 收录于专栏:Uni…...

php获取访客IP、UA、操作系统、浏览器等信息
最近有个需求就是获取下本地的ip地址、网上搜索了相关的教程,总结一下分享给大家、有需要的小伙伴可以参考一下 一、简单的获取 User Agent 信息代码: echo $_SERVER[HTTP_USER_AGENT]; 二、获取访客操作系统信息: /** * 获取客户端操作系统信息,包括win10 * pa…...

基于huffman编解码的图像压缩算法matlab仿真
目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 4.1 Huffman编码算法步骤 4.2 Huffman编码的数学原理 4.3 基于Huffman编解码的图像压缩 5.算法完整程序工程 1.算法运行效果图预览 2.算法运行软件版本 matlab2022a 3.部分核心程序 ..…...

python+django网上购物商城系统o9m4k
语言:Python 框架:django/flask可以定制 软件版本:python3.7.7 数据库:mysql 数据库工具:Navicat 开发工具pycharm/vscode都可以 前端框架:vue.js 系统使用过程主要涉及到管理员和用户两种角色,主要包含个…...

面试题-性能优化
前端项目优化: 一般考虑方面: (挑几点记住) 我们学的: 懒加载: 路由、图片懒加载 骨架屏的使用 压缩文件:可以使用压缩工具(如GZIP)对页面文件进行压缩,减小文件大小,提高页面加载速度。 减少HTTP请求&a…...

自身文档管理规范
之前在 这里 叙述了 用 sphinx 生成静态网站, 并利用 静态网络托管服务 readthedocs 现在我们有了新的需求,想知道这些东西到底是什么。 过程 过程A : markdown/rst -> html mkdocs sphinx相关: pandoc(不能生成整个网站的h…...

php学习05-常量
常量可以理解为值不变的量。常量值被定义后,在脚本的其他任何地方都不能改变。一个常量由英文字母、下划线和数字组成,但数字不能作为首字母出现。 在PHP中使用define()函数来定义常量,该函数的语法格式如下: define(string cons…...

MFC:如何将JPEG等图片显示到对话框客户区
步骤: 0、打开VS2022创建一个基于对话框的MFC应用,项目名称命名为PicShow,创建完成后将对话框客户区中的"确定"按钮等内容删除(具体步骤略)。 1、建立菜单栏:文件->打开、退出。具体步骤&#x…...

MIUI解BL锁+刷系统教程
解除BL锁 打开设置找到My device->Detailed info and specs->连点5下MIUI version(进入开发者模式)重新打开设置找到Additional settings->Developer opentions->Mi lock status->Add account and device下载官方解锁工具包(miflash_unlock…...

数据结构和算法笔记3:双指针法(快慢指针)
双指针法(快慢指针法)在数组、字符串和链表的操作中是非常常见的,这里结合力扣上的题进行可一下梳理,主要的思路是我们要明确快指针指的是什么,慢指针指的是什么。 1. 移除元素类问题 27. 移除元素 要我们移除目标元…...