我有一个这种格式的磁盘:
sdc 8:32 0 1,8T 0 disk └─sdc1 8:33 0 1,8T 0 part ├─vg-lv1 (dm-0) 254:0 0 900G 0 lvm /media/lv1 └─vg-lv2 (dm-1) 254:1 0 923G 0 lvm └─lv2 (dm-9) 254:9 0 923G 0 crypt /media/lv2
lv2是一个ext4文件系统,但它下面的块设备(逻辑卷vg-lv2 )是用dm-crypt 。
什么是安全地增长这个文件系统的步骤?
我已经放大了逻辑卷,我知道我将不得不resize2fs ,但我猜我将不得不在dm-crypt层做些什么。
我首先用两个步骤创build了这个文件系统(在伪shell脚本中):
消毒块设备
lvcreate vg-lv2 $randompassword = $(pwgen) cryptsetup luksFormat --cipher aes-cbc-essiv:sha256 --key-size 256 /dev/mapper/vg-lv2 $randompassword ,以$randompassword为关键字。 cryptsetup luksOpen /dev/mapper/vg-lv2 sanitize nice -20 ionice -c 3 dd if=/dev/zero of=/dev/mapper/sanitize bs=1M cryptsetup remove sanitize
准备生产使用的块设备
cryptsetup luksFormat --cipher aes-cbc-essiv:sha256 --key-size 256 /dev/mapper/vg-lv2使用新的密钥 – 密钥cryptsetup luksFormat --cipher aes-cbc-essiv:sha256 --key-size 256 /dev/mapper/vg-lv2 。 cryptsetup luksOpen /dev/mapper/vg-lv2 lv2 mke2fs /dev/mapper/vg-lv2 (我不记得参数,但可能没有) 准备生产时,将未encryption的块设备归零(有效地在encryption设备中写入伪随机数据)。
现在,由于我想发展文件系统,所以在使用之前,我也应该做出第一步和消毒。 这是我不怎么做的:
/dev/mapper/vg-lv2上的偏移量,以及dd if=/dev/zero of=/dev/mapper/vg-lv2 bs=1M skip=$SKIPBLOCKS 。 我不能得到这个$SKIPBLOCKSvariables错了,所以我实际上需要知道的是,如果已经存在的文件系统,它是第一个空的块之后,我怎么能知道,所以我可以随机化这个空间。 您可以通过resize来调整dmcrypt的resize :
cryptsetup --help|grep -i resize resize <name> - resize active device
完成之后,您可以resizeresize2fs 。
至于你对随机数据的评论:你也可以在文件系统中做到这一点。 所以,调整它的大小,安装它,然后用随机文件填充每个最后一个字节:
dd if=/dev/urandom of=/deleteme bs=1M
然后删除该文件。
(为获得最佳结果,请使用tune2fs将保留块计数设置为0%(暂时))