Linux: 创建加密虚拟磁盘 cryptsetup

本文介绍如何使用cryptsetup工具在Linux环境下创建加密的虚拟磁盘。步骤包括安装cryptsetup、创建虚拟磁盘文件、格式化为LUKS容器、创建映射、建立文件系统及挂载等。还介绍了如何卸载和关闭加密磁盘。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、安装工具 cryptsetup

sudo yum install cryptsetup

# Ubuntu 系统执行如下命令
# sudo apt-get install cryptsetup

二、创建一个虚拟磁盘文件

dd if=/dev/zero of=secDisk.img bs=1G count=10

这个命令的意思就是从“黑洞”文件读取0数据,写入当前目录中的 secDisk.img 文件中。写入的数据大小是 1G * 10 个,也就是说secDisk.img 文件的大小是 10G。

所以这个命令会创建一个10G 大的虚拟磁盘文件,文件名为 secDisk.img,位置是当前目录。

三、创建 dm-crypt LUKS 容器

在刚创建的虚拟磁盘文件 secDisk.img 上创建 LUKS 容器。

cryptsetup -y luksFormat secDisk.img

四、打开容器并创建 mapping

cryptsetup luksOpen secDisk.img sec_disk_mapping

这个命令会创建一个 mapping 文件:/dev/mapper/sec_disk_mapping

可以通过下面命令查看这个 mapping 文件的状态:

$ ls /dev/mapper/sec_disk_mapping -lh
brw-rw---- 1 root disk 253,   5 Jan 19 06:43 sec_disk_mapping

$ cryptsetup -v status /dev/mapper/sec_disk_mapping
/dev/mapper/sec_disk_mapping is active.
  type:    LUKS1
  cipher:  aes-xts-plain64
  keysize: 256 bits
  key location: dm-crypt
  device:  /dev/loop1
  loop:    /home/data/test-sec/secDisk.img
  sector size:  512
  offset:  4096 sectors
  size:    2093056 sectors
  mode:    read/write
Command successful.

五、在虚拟磁盘上创建文件系统

创建文件系统:

mkfs.ext4 /dev/mapper/sec_disk_mapping

如果系统中找不到命令 mkfs.ext4,可以使用下面命令进行安装:

sudo yum install -y e2fsprogs
# Ubuntu 系统使用如下命令安装
#sudo apt-get install -y e2fsprogs

六、挂载文件系统

mkdir encryptedDisk
mount /dev/mapper/sec_disk_mapping $(pwd)/encryptedDisk

七、修改文件 owner

如果当前不是超级用户,可能没有对磁盘的读写权限。所以需要修改虚拟磁盘的 owner:

cd $(pwd)/encryptedDisk # 进入刚刚挂载的磁盘文件目录中
chown username:username . -R

username 就是你自己的用户名。

到目前为止,虚拟磁盘就算创建完成了,并且可以在其中进行读写操作。

八、卸载虚拟磁盘

虚拟加密磁盘的用途就是为了加密,如果这么一只挂载着,那么就失去了加密的意义。所以,在使用完这个虚拟磁盘后,需要及时的将它 umount ,并将它 luksClose 掉。

卸载虚拟磁盘的过程如下:

8.1、先 umount 虚拟磁盘

umount /dev/mapper/sec_disk_mapping

8.2、然后关闭 LUKS

cryptsetup luksClose /dev/mapper/sec_disk_mapping

这样就把虚拟磁盘关闭了。

如果想要再次打开这个虚拟磁盘,需要先执行第四步的 luksOpen 操作,再执行第六步的 mount 操作,然后就可以再次使用加密的虚拟磁盘了。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值