首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何调整用LUKS加密的逻辑卷的大小

如何调整用LUKS加密的逻辑卷的大小
EN

Unix & Linux用户
提问于 2020-01-18 18:53:57
回答 2查看 2K关注 0票数 1

我试图理解调整逻辑卷大小的正确方法(我想缩小一个卷,扩展另一个卷,而不添加任何额外的pv)。

据我所知,根据这个链接:lvm指南和我所读到的关于VLM的其他来源,正确的方法如下:

代码语言:javascript
运行
复制
1. Shrink the file system of lv #1
2. Shrink the lv #1 size
3. extend the lv #2 size
4. fix/extend the file system of lv #2

此外,我理解LVM的体系结构(PV映射到VG,映射到LV)。

我的差距是:

  1. 如果我不增加任何额外的光伏计划,我是否需要关心卢克斯?或者这一过程,只要光伏不改变,是不是不会影响陆路?
  2. 分区PV是作为一个单元加密的,还是每个lv都被自己加密?
  3. 在我的例子中,我想根据我的架构调整/tmp/var的大小,是否需要从键上的磁盘启动并从livecd启动,还是可以从主机本身进行呢?

pvscan扫描

代码语言:javascript
运行
复制
PV /dev/nvme0n1p3   VG fedora_localhost-live   lvm2 [475.35 GiB / 4.00 MiB free]
  Total: 1 [475.35 GiB] / in use: 1 [475.35 GiB] / in no VG: 0 [0   ]

vgscan扫描

代码语言:javascript
运行
复制
Found volume group "fedora_localhost-live" using metadata type lvm2

伊夫扫描

代码语言:javascript
运行
复制
  ACTIVE            '/dev/fedora_localhost-live/root' [70.00 GiB] inherit
  ACTIVE            '/dev/fedora_localhost-live/home' [<348.35 GiB] inherit
  ACTIVE            '/dev/fedora_localhost-live/swap' [38.00 GiB] inherit
  ACTIVE            '/dev/fedora_localhost-live/var' [4.00 GiB] inherit
  ACTIVE            '/dev/fedora_localhost-live/tmp' [15.00 GiB] inherit

df -h

代码语言:javascript
运行
复制
Filesystem      Size  Used Avail Use% Mounted on
devtmpfs         16G     0   16G   0% /dev
tmpfs            16G  124M   16G   1% /dev/shm
tmpfs            16G  2.4M   16G   1% /run
/dev/dm-2        69G  9.9G   56G  16% /
/dev/nvme0n1p2  976M  232M  678M  26% /boot
/dev/nvme0n1p1  599M   30M  570M   5% /boot/efi
/dev/sda1       826G  783G   44G  95% /mnt/workspace_HDD
/dev/dm-7       3.9G  3.0G  720M  81% /var
/dev/loop0      182M  182M     0 100% /var/lib/snapd/snap/spotify/36
/dev/loop1       90M   90M     0 100% /var/lib/snapd/snap/core/8268
/dev/dm-8       342G  3.8G  321G   2% /home
/dev/dm-9        15G   41M   14G   1% /tmp
tmpfs           3.2G  112K  3.2G   1% /run/user/1000

此外,我很乐意了解Fedora所做的映射,以及命令使用哪条路径: lv / lvexdend / resize2fs:我想我理解为什么每个lv都有“两个”路径,一个用于逻辑卷,另一个用于解密卷。

ls -l /dev/mapper/

代码语言:javascript
运行
复制
total 0
crw-------. 1 root root 10, 236 Jan 18 18:10 control
lrwxrwxrwx. 1 root root       7 Jan 18 18:10 fedora_localhost--live-home -> ../dm-4
lrwxrwxrwx. 1 root root       7 Jan 18 18:10 fedora_localhost--live-root -> ../dm-0
lrwxrwxrwx. 1 root root       7 Jan 18 18:10 fedora_localhost--live-swap -> ../dm-1
lrwxrwxrwx. 1 root root       7 Jan 18 18:10 fedora_localhost--live-tmp -> ../dm-6
lrwxrwxrwx. 1 root root       7 Jan 18 18:10 fedora_localhost--live-var -> ../dm-5
lrwxrwxrwx. 1 root root       7 Jan 18 18:10 luks-3b985124-40c1-450b-8740-da85a6083aa5 -> ../dm-8
lrwxrwxrwx. 1 root root       7 Jan 18 18:10 luks-7791d468-c71b-4603-942e-5a30efc8d3fd -> ../dm-9
lrwxrwxrwx. 1 root root       7 Jan 18 18:10 luks-d695f07d-2017-4e36-a792-851cb23d26d1 -> ../dm-2
lrwxrwxrwx. 1 root root       7 Jan 18 18:10 luks-e0d65c04-dfdb-4f61-8b2f-0b76127eaf8e -> ../dm-3
lrwxrwxrwx. 1 root root       7 Jan 18 18:10 luks-f5400a56-7498-4a73-ab1b-40c331e74d6f -> ../dm-7

最后命令: lsblk

代码语言:javascript
运行
复制
NAME                                            MAJ:MIN RM   SIZE RO TYPE  MOUNTPOINT
loop0                                             7:0    0 181.1M  1 loop  /var/lib/snapd/snap/spotify/36
loop1                                             7:1    0  89.1M  1 loop  /var/lib/snapd/snap/core/8268
sda                                               8:0    0 953.9G  0 disk  
├─sda1                                            8:1    0 825.9G  0 part  /mnt/workspace_HHD
└─sda2                                            8:2    0   128G  0 part  
sr0                                              11:0    1  1024M  0 rom   
nvme0n1                                         259:0    0   477G  0 disk  
├─nvme0n1p1                                     259:1    0   600M  0 part  /boot/efi
├─nvme0n1p2                                     259:2    0     1G  0 part  /boot
└─nvme0n1p3                                     259:3    0 475.4G  0 part  
  ├─fedora_localhost--live-root                 253:0    0    70G  0 lvm   
  │ └─luks-d695f07d-2017-4e36-a792-851cb23d26d1 253:2    0    70G  0 crypt /
  ├─fedora_localhost--live-swap                 253:1    0    38G  0 lvm   
  │ └─luks-e0d65c04-dfdb-4f61-8b2f-0b76127eaf8e 253:3    0    38G  0 crypt [SWAP]
  ├─fedora_localhost--live-home                 253:4    0 348.4G  0 lvm   
  │ └─luks-3b985124-40c1-450b-8740-da85a6083aa5 253:8    0 348.3G  0 crypt /home
  ├─fedora_localhost--live-var                  253:5    0     4G  0 lvm   
  │ └─luks-f5400a56-7498-4a73-ab1b-40c331e74d6f 253:7    0     4G  0 crypt /var
  └─fedora_localhost--live-tmp                  253:6    0    15G  0 lvm   
    └─luks-7791d468-c71b-4603-942e-5a30efc8d3fd 253:9    0    15G  0 crypt /tmp

根据lsblk的输出,看起来每个lv都是作为一个单元加密的,还是我错了?

我理解LVM在没有LVM的情况下是如何工作的,我想我理解没有LVM LVM是如何工作的。但我不明白它们是如何一起工作的,它们之间的关系是什么,实际上,当luks存在于我的处境中时,如何调整逻辑卷的大小。

谢谢。

EN

回答 2

Unix & Linux用户

发布于 2020-01-18 20:47:38

你有LVM内部的LUKS,所以是的,你必须关心LUKS。lvresize --resizefs在这里不起作用,所以您必须手动执行。

没有LUKS,LV的大小和文件系统的大小将是相同的。对于卢克斯,你也必须考虑卢克斯的头球。这个头是几个MiB大的,所以文件系统必须更小一些,或者逻辑卷要更大一些。因此,LUKS头和文件系统都有足够的空间。

假设您希望将/home缩小为100G,而LUKS头大小为16M (比较cryptsetup luksDump、有效负载或数据偏移)。

如果您将/home文件系统设置为100G,则LV的大小必须是100G+16M

或者,使文件系统100G-16M的大小,这样LV可以是100G锐利。

因此,例如:

代码语言:javascript
运行
复制
# shrink the filesystem first
resize2fs /dev/mapper/luks-home 100G

# shrink the LUKS
cryptsetup resize --device-size 100G luks-home

# shrink the LV
lvresize -L102416M lvm/home # 100G = 102400M + 16M

如果您对数学不确定,通常还需要进一步缩小文件系统(例如,99G而不是100 G)以增加安全裕度,然后再将其扩展到“真正的”设备大小:

代码语言:javascript
运行
复制
# after resizing the LV, grow LUKS and filesystem to device size
cryptsetup resize luks-home
resize2fs /dev/mapper/luks-home

与传统的分区不同,使用LVM没有理由立即使用所有可用的空间。如果您的LV的大小更合理,那么您将有足够的自由LVM空间来根据需要来增长文件系统,而不必先经历一个麻烦的收缩过程。

票数 2
EN

Unix & Linux用户

发布于 2020-04-19 17:43:55

它花了我很长时间,但在VM上经历了几次跟踪和错误之后(我设法在VM运行之前销毁了几台机器--所以在实际系统上进行操作之前进行练习),并且我得到了很大的帮助,我设法在lvm之上使用luks方案来减少LV,如下所示:

  1. 启动live并进入救援模式
  2. 解密分区cryptsetup open /dev/mapper/fedora_localhost--live-tmp tmpCrypt
  3. 收缩文件系统resize2fs /dev/mapper/tmpcrypt6G
  4. 关闭LUKS分区密码设置关闭/dev/mapper/tmpCrypt
  5. 缩小LUKS头加密设置,调整/dev/mapper/fedora_localhost--live
  6. 缩小LV大小( LUKS报头大小=6144+16的隐窝大小+ 16M ) sudo 6160 M/dev/mapper/fedora_localhost-live-tmp
  7. 重新调整LUKS的大小-live
  8. 解密分区密码设置打开/dev/mapper/fedora_localhost-live-tmp tmpCrypt
  9. 再次调整文件系统的大小-- sudo resize2fs /dev/mapper/tmpCrypt

*注意:正如我注意到的,步骤8和步骤9并不是强制性的--但我这样做只是为了在重新启动系统之前验证文件系统。

票数 0
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/562799

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档