创建加密分区或者文件

文章目录

  • [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,你可以按照以下步骤操作:

  1. 下载 ISO 文件
    如果你还没有下载 gparted-live-1.5.0-6-amd64 (1).iso 文件,首先从官方源或其他可信源下载。

  2. 创建可启动媒介
    创建一个可启动的 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 为你的实际设备名:
        sudo dd if=gparted-live-1.5.0-6-amd64\ \(1\).iso of=/dev/sdX bs=4M status=progress oflag=sync
        
        注意:确保你正确识别了 USB 设备名,错误的操作可能会导致数据丢失。
  3. 设置 BIOS/UEFI 启动顺序

    • 重启电脑,并在开机时进入 BIOS/UEFI 设置界面(通常是按 F2、F10、Delete 或其他特定键,具体取决于你的电脑型号)。
    • 在 BIOS/UEFI 设置中找到 “启动选项” 或类似的菜单。
    • 将 USB 驱动器设置为优先启动设备。
    • 保存更改并退出 BIOS/UEFI 设置。
  4. 启动 GParted Live

    • 电脑将会从 USB 驱动器启动,并加载 GParted Live 环境。
    • 选择合适的语言和其他选项(如果有)。
    • 等待 GParted 图形界面加载。

现在,你已经在 GParted Live 环境中,可以使用 GParted 工具来管理你的磁盘分区,包括创建、调整大小、删除、格式化等操作。请注意,在进行任何修改之前,最好先备份重要数据,以防意外情况发生。

在 VMware 虚拟机中的 Linux 系统中使用 GParted Live,可以按照以下步骤操作:

  1. 下载 GParted Live ISO 文件
    从 GParted 官方网站或其他可信源下载 gparted-live-1.5.0-6-amd64 (1).iso 文件。

  2. 在 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”)。
  3. 配置虚拟机引导顺序

    • 在相同的设置窗口中,找到并选择 “硬盘”(或 “Hard Disk”)选项。
    • 确保你的虚拟机硬盘位于引导设备列表的首位。
  4. 启动虚拟机并进入 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/sda4

WARNING!
========
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/sda4

WARNING!
========
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, 1605632

Allocating group tables: done                            
Writing inode tables: done                            
Creating journal (16384 blocks): done
Writing superblocks and filesystem accounting information: done 
创建挂载点目录

mkdir /mnt/encrypted_fs_mnt

root@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:    LUKS2
  cipher:  aes-xts-plain64
  keysize: 512 bits
  key location: keyring
  device:  /dev/sda4
  sector size:  512
  offset:  32768 sectors
  size:    20936704 sectors
  mode:    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:    LUKS2
  cipher:  aes-xts-plain64
  keysize: 512 bits
  key location: keyring
  device:  /dev/sda4
  sector size:  512
  offset:  32768 sectors
  size:    20936704 sectors
  mode:    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

设置开机自动挂载

  1. 打开 /etc/crypttab 文件

    sudo vim /etc/crypttab
    
  2. 添加新的映射关系
    在文件中添加一个新的行,指定加密设备、映射名称、密码和任何其他选项。例如:

    my_encrypted_fs /dev/sda4 none luks,discard
    

    这里,

    • encrypted_fs 是映射名称。
    • /dev/sda4 是加密设备。
    • none 表示密码将通过交互式提示输入。
    • luks,discard 是选项,luks 指定了 LUKS 加密格式,discard 则启用 TRIM 支持(如果硬件支持)。
  3. 更新 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# 
    
  4. 重启系统并验证挂载
    重启你的系统,然后检查加密卷是否已经被自动解锁和挂载:

    mount | grep my_encrypted_fs
    

通过修改 /etc/crypttab 并更新 initramfs,

创建加密分区或者文件_第1张图片

创建加密分区或者文件_第2张图片

解除开机自动挂载

要取消开机自动挂载一个之前设置为自动挂载的加密卷,你可以按照以下步骤操作:

  1. 编辑 /etc/crypttab 文件

    sudo vim /etc/crypttab
    
  2. 注释或删除对应的行
    /etc/crypttab 文件中,找到与你想取消自动挂载的加密卷相关的行。通常,这行会包含映射设备名(如 encrypted_fs)、物理设备路径(如 /dev/sda4)以及可能的密码或选项。要取消自动挂载,你可以选择以下任一方法:

    • 注释该行:在该行前面添加 # 字符,将这一行变为注释行,例如:
      #my_encrypted_fs /dev/sda4 none luks,discard
      
    • 删除该行:如果你确定不再需要自动挂载这个加密卷,可以直接删除整行。
  3. 更新 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 
    # 				
    #my_encrypted_fs /dev/sda4 none luks,discard
    x@x:~$ 
    
    
  4. 重启系统并验证更改
    重启你的系统,然后检查是否还在启动时自动解锁和挂载该加密卷。你可以通过以下命令查看已挂载的文件系统:

    mount | grep my_encrypted_fs
    

    如果该加密卷不再出现在列表中,说明取消自动挂载成功。

请注意,如果你在 /etc/fstab 中也有关于这个加密卷的挂载配置,你也应该相应地更新或删除那个配置,以防止在手动解锁和挂载加密卷后系统再次自动挂载它。


关闭自动挂载,并且重启系统后

理论

如果你关闭了开机自动挂载一个加密卷,并且随后重启了系统,以下将会发生:

  1. 启动过程中不会解锁和挂载加密卷
    由于你在 /etc/crypttab 文件中取消了自动挂载设置,并更新了 initramfs,系统在启动过程中将不再尝试自动解锁和挂载该加密卷。

  2. 加密卷保持锁定状态
    加密卷将继续保持锁定状态,这意味着数据在没有正确密码或密钥的情况下是不可读的。

  3. 无法直接访问加密卷上的数据
    由于加密卷未被挂载,你将无法直接访问其上的文件和目录。如果你尝试挂载该加密卷,你需要首先使用 cryptsetup 提供正确的密码或密钥来解锁它。

  4. 手动解锁和挂载加密卷
    如果你需要访问加密卷上的数据,你需要手动执行以下步骤:

    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 是你希望挂载加密卷的目录。

  5. 使用加密卷
    在手动解锁和挂载加密卷后,你现在可以像平常一样访问和操作 /mnt/encrypted_fs_mnt 下的数据。

  6. 卸载和关闭加密卷
    当你完成对加密卷的访问后,记得卸载并关闭它以确保数据安全:

    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:    LUKS2
  cipher:  aes-xts-plain64
  keysize: 512 bits
  key location: keyring
  device:  /dev/sda4
  sector size:  512
  offset:  32768 sectors
  size:    20936704 sectors
  mode:    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
└── testfile

root@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:    LUKS2
  cipher:  aes-xts-plain64
  keysize: 512 bits
  key location: keyring
  device:  /dev/sda4
  sector size:  512
  offset:  32768 sectors
  size:    20936704 sectors
  mode:    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
    └── testfile

2 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.c

1 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:    LUKS2
  cipher:  aes-xts-plain64
  keysize: 512 bits
  key location: keyring
  device:  /dev/sda4
  sector size:  512
  offset:  32768 sectors
  size:    20936704 sectors
  mode:    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 myencryptedfile

WARNING!
========
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, 229376

Allocating group tables: done                            
Writing inode tables: done                            
Creating journal (4096 blocks): done
Writing superblocks and filesystem accounting information: done

root@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.txtmyencryptedfile 的关系取决于你的具体操作和目标。

在使用加密的上下文中,通常情况下:

  1. 原始未加密文件
    testfile.txt 可能是你想要加密的原始文本文件。它包含可读的、未加密的数据。

  2. 加密后的文件
    myencryptedfile 则是经过加密处理后的文件。当你使用 cryptsetup 或其他加密工具对 testfile.txt 进行加密时,加密后的数据将被写入到 myencryptedfile

在这种情况下,testfile.txtmyencryptedfile 之间的关系就是原始数据和加密后数据的关系。当你需要访问 testfile.txt 中的原始内容时,你需要先解密 myencryptedfile,然后将解密后的数据恢复到一个新文件或原文件名(如果已删除原始文件)。

请注意,这只是一个常见的场景示例。在实际应用中,你可能直接对整个分区或硬盘进行加密,而不是单个文件。在这种情况下,myencryptedfile 将代表整个加密的存储设备,而 testfile.txt 是存储在该设备上众多文件中的一个。
lume,然后在这个挂载点下访问 testfile.txt`,你应该能看到可读的文本内容,因为文件已经在解密过程中被转换回其原始格式。

所以,使用 hexdump -C myencryptedfile 来判断乱码是为了验证加密文件是否包含预期的加密数据,而处理 /mnt/encryptedvolume/testfile.txt 则是为了验证解密和挂载过程是否正常工作。这两个操作分别用于检查加密和解密状态下的文件内容。

testfile.txt 和 myencryptedfile 的关系是什么

testfile.txtmyencryptedfile 的关系取决于你的具体操作和目标。

在使用加密的上下文中,通常情况下:

  1. 原始未加密文件
    testfile.txt 可能是你想要加密的原始文本文件。它包含可读的、未加密的数据。

  2. 加密后的文件
    myencryptedfile 则是经过加密处理后的文件。当你使用 cryptsetup 或其他加密工具对 testfile.txt 进行加密时,加密后的数据将被写入到 myencryptedfile

在这种情况下,testfile.txtmyencryptedfile 之间的关系就是原始数据和加密后数据的关系。当你需要访问 testfile.txt 中的原始内容时,你需要先解密 myencryptedfile,然后将解密后的数据恢复到一个新文件或原文件名(如果已删除原始文件)。

请注意,这只是一个常见的场景示例。在实际应用中,你可能直接对整个分区或硬盘进行加密,而不是单个文件。在这种情况下,myencryptedfile 将代表整个加密的存储设备,而 testfile.txt 是存储在该设备上众多文件中的一个。

你可能感兴趣的:(gparted,加密分区,crypesetup,沙箱,sandbox,linux,嵌入式硬件)