创建加密分区或者文件

文章目录

  • [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. 编辑 /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 
    # <target name>	<source device>		<key file>	<options>
    #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 是存储在该设备上众多文件中的一个。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/276716.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

java在线票务系统(选座)Myeclipse开发mysql数据库web结构java编程计算机网页项目

一、源码特点 java servlet 在线票务系统&#xff08;选座&#xff09;管理系统是一套完善的java web信息管理系统 系统采用serlvetdaobean&#xff08;mvc模式)&#xff0c;对理解JSP java编程开发语言有帮助&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要…

深入浅出图解C#堆与栈 C# Heap(ing) VS Stack(ing) 第六节 理解垃圾回收GC,提搞程序性能

深入浅出图解C#堆与栈 C# Heaping VS Stacking 第六节 理解垃圾回收GC&#xff0c;提搞程序性能 [深入浅出图解C#堆与栈 C# Heap(ing) VS Stack(ing) 第一节 理解堆与栈](https://mp.csdn.net/mdeditor/101021023)[深入浅出图解C#堆与栈 C# Heap(ing) VS Stack(ing) 第二节 栈基…

泛目录是干什么用的蚂蚁seo泛程序

泛目录是干什么用的蚂蚁seo泛程序目录 泛目录是一种常见的网站优化方法&#xff0c;属于黑帽技术的一种。它的核心原理是利用高权重的网站继承目录&#xff0c;然后快速获得收录与排名。这种方法可以帮助网站在搜索引擎中获得更好的排名&#xff0c;从而吸引更多的流量。 泛目…

右键菜单“以notepad++打开”,在windows文件管理器中

notepad 添加到文件管理器的右键菜单中 找到安装包&#xff0c;重新安装一般即可。 这里有最新版&#xff1a;地址 密码:f0f1 方法 在安装的时候勾选 “Context Menu Entry” 即可 Notepad的右击打开文件功能 默认已勾选 其作用是添加右键快捷键。即&#xff0c;对于任何…

云计算:OpenStack 配置云主机实例的资源实现内网互通

目录 一、实验 1. 环境 2.配置项目及用户 3.配置规格实例与镜像 4.配置VPC 5. 配置安全组 6. 创建云主机 cs_01 &#xff08;cirros系统&#xff09; 7.创建云主机 cs_02 &#xff08;cirros系统&#xff09; 8.创建云主机 cs_03 &#xff08;cirros系统&#xff09; …

小米路由器2(R2D) 安装 MIXBOX

1. 先刷开发版 ROM http://www1.miwifi.com/miwifi_download.html 进入上述网页&#xff0c;找到 R2D 点击下载 开发版 ROM 教程 看 下载按钮上边的 “刷机教程” 刷机教程 2. 开启SSH工具 登录自己的小米账号后&#xff0c;里面会显示出 自己的 root密码&#xff1b; 默认…

uniapp中的uview组件库丰富的Keyboard 键盘 用法

目录 基本使用 #隐藏键盘"."符号 #是否打乱按键的顺序 #如何控制键盘的打开和关闭&#xff1f; #如何监听键盘按键被点击&#xff1f; API #Props #Events #Slot 基本使用 通过mode参数定义键盘的类型&#xff0c;show绑定一个值为布尔值的变量控制键盘的弹…

每日一题:LeetCode-LCR 179. 查找总价格为目标值的两个商品

每日一题系列&#xff08;day 16&#xff09; 前言&#xff1a; &#x1f308; &#x1f308; &#x1f308; &#x1f308; &#x1f308; &#x1f308; &#x1f308; &#x1f308; &#x1f308; &#x1f308; &#x1f308; &#x1f308; &#x1f308; &#x1f50e…

JVM 常用知识和面试题

1. 什么是JVM内存结构&#xff1f; jvm将虚拟机分为5大区域&#xff0c;程序计数器、虚拟机栈、本地方法栈、java堆、方法区&#xff1b; 程序计数器&#xff1a;线程私有的&#xff0c;是一块很小的内存空间&#xff0c;作为当前线程的行号指示器&#xff0c;用于记录当前虚拟…

InterSystems 数据库的存储过程存在哪里

我们都知道 InterSystems 的 Studio 可以创建存储过程。 但这个存储过程我们保存的时候是保存在哪里&#xff1f; 存储逻辑 如果我们在 Studio 创建存储过程的话&#xff0c;存储过程是存储在数据库上面的。 本地文件夹中是没有存储的。 选择系统下面的存储过程&#xff0c…

Keras多分类鸢尾花DEMO

完整的一个小demo&#xff1a; pandas1.2.4 numpy1.19.2 python3.9.2 import numpy as np import pandas as pd import matplotlib.pyplot as plt from pandas import DataFrame from scipy.io import loadmat from sklearn.model_selection import train_test_split impor…

Selenium库和ChromeDriver谷歌驱动最新版安装

1.安装selenium库 使用pip安装第三方库selenium&#xff0c;速度较慢。 pip install selenium 使用国内清华源安装第三方库selenium&#xff0c;速度较快。 pip install selenium -i https://pypi.tuna.tsinghua.edu.cn/simple 2.安装谷歌浏览器驱动 驱动下载链接&#x…

GoogleNetv1:Going deeper with convolutions更深的卷积神经网络

文章目录 GoogleNetv1全文翻译论文结构摘要1 引言2 相关工作3 动机和高层考虑稀疏矩阵 4 结构细节引入1x1卷积核可以减少通道数 5 GoogleNet6 训练方法7 ILSVRC 2014 分类挑战赛设置和结果8 ILSVRC 2014检测挑战赛设置和结果9 总结 论文研究背景、成果及意义论文图表 GoogleNet…

iPhone 13 Pro 更换『移植电芯』和『超容电池』体验

文章目录 考虑换电池Ⅰ 方案一Ⅱ 方案二 总结危险 Note系列地址 简 述: 首发买的iPhone 13P &#xff08;2021.09&#xff09;&#xff0c;随性使用一年出头&#xff0c;容量就暴跌 85%&#xff0c;对比朋友一起买的同款&#xff0c;还是95%。这已经基本得一天两充 >_<&a…

代码随想录刷题笔记(DAY2)

今日总结&#xff1a;今天在学 vue 做项目&#xff0c;学校还有很多作业要完成&#xff0c;熬到现在写完了三道题&#xff0c;有点太晚了&#xff0c;最后一道题的题解明天早起补上。 Day 2 01. 有序数组的平方&#xff08;No. 977&#xff09; 给你一个按 非递减顺序 排序的…

搭建简单的GPT聊天机器人

目录 第一步 进行语料库读取、文本预处理&#xff0c;完成data_utls.py 第二步 进行Seq2Seq模型的构建&#xff0c;完成Seq2Seq.py 第三步 进行模型参数设置、加载词典和数据、数据准备、GPU设置、构建优化器和损失函数&#xff0c;进行模型的训练和测试&#xff0c;完成…

使用vue3实现echarts漏斗图表以及实现echarts全屏放大效果

1.首先安装echarts 安装命令&#xff1a;npm install echarts --save 2.页面引入 echarts import * as echarts from echarts; 3.代码 <template> <div id"main" :style"{ width: 400px, height: 500px }"></div> </template> …

OSPF被动接口配置-新版(14)

目录 整体拓扑 操作步骤 1.基本配置 1.1 配置R1的IP 1.2 配置R2的IP 1.4 配置R4的IP 1.5 配置R5的IP 1.6 配置PC-1的IP地址 1.7 配置PC-2的IP地址 1.8 配置PC-3的IP地址 1.9 配置PC-4的IP地址 1.10 检测R1与PC3连通性 1.11 检测R2与PC4连通性 1.12 检测R4与PC1连…

SuperMap iServer发布的ArcGIS REST 地图服务如何通过ArcGIS API进行要素查询

作者&#xff1a;yx 前言 前面我们介绍了SuperMap iServer发布的ArcGIS REST 地图服务如何通过ArcGIS API加载&#xff0c;这里呢我们再来看看如何进行要素查询呢&#xff1f; 一、服务发布 SuperMap iServer发布的ArcGIS REST 地图服务如何通过ArcGIS API加载已经介绍如何发…

【Vue3】创建项目的方式

1. 基于 vue-cli 创建 ## 查看vue/cli版本&#xff0c;确保vue/cli版本在4.5.0以上 vue --version## 安装或者升级你的vue/cli npm install -g vue/cli## 执行创建命令 vue create vue_test本质上使用webpack&#xff0c;默认安装以下依赖&#xff1a; 2. 基于 vite 创建 官…