LUKS로 암호화된 논리 볼륨의 크기를 조정하는 방법

LUKS로 암호화된 논리 볼륨의 크기를 조정하는 방법

논리 볼륨의 크기를 조정하는 올바른 방법이 무엇인지 이해하려고 노력하고 있습니다(추가 pv를 추가하지 않고 하나의 논리 볼륨을 축소하고 다른 논리 볼륨을 확장하고 싶습니다).

내가 이해하는 한, 이 링크에 따르면:Chris의 lvm 가이드, 그리고 VLM에 관해 내가 읽은 다른 출처에서 올바른 방법은 다음과 같습니다.

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로 매핑되고 VG는 LV로 매핑)의 아키텍처도 이해합니다.

내 격차는 다음과 같습니다

  1. 계획에 추가 PV를 추가하지 않으면 LUKS에 관심을 가져야 합니까? 아니면 PV가 변하지 않는 한 이 프로세스가 LUKS에 영향을 미치지 않는다고 해야 할까요?
  2. 파티션과 PV는 하나의 단위로 암호화됩니까, 아니면 각 레벨이 개별적으로 암호화됩니까?
  3. 내 경우에는 크기를 조정하고 싶고 /tmp/var 아키텍처에 따라 키의 디스크에서 부팅하고 livecd에서 부팅해야 합니까, 아니면 호스트 자체에서 부팅할 수 있습니까?

광전지 스캐닝

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   ]

스캐너

Found volume group "fedora_localhost-live" using metadata type lvm2

왼쪽으로 스캔

  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

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가 수행하는 매핑과 명령에 어떤 경로가 사용되는지 알고 싶습니다. lvreduce/lvexdend/resize2fs: lv당 "2개의" 경로(하나는 논리 볼륨용, 하나는 논리 볼륨용)가 있는 이유를 이해한다고 생각합니다. 논리 볼륨 두 번째는 해독된 볼륨입니다.

ls -l /dev/매퍼/

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

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가 하나의 단위로 암호화된 것 같습니다. 아니면 제 생각이 틀렸나요?

LUKS 없이 LVM이 어떻게 작동하는지 이해하고, LVM 없이 LUKS가 어떻게 작동하는지 이해한다고 생각합니다. 그러나 나는 그들이 어떻게 함께 작동하는지, 그들 사이의 관계가 무엇인지, 그리고 나와 같은 상황에서 luk가 존재할 때 논리 볼륨의 크기를 실제로 조정하는 방법을 이해하지 못합니다.

감사해요.

답변1

LVM에는 LUKS가 있으므로 LUKS에 신경써야 합니다. lvresize --resizefs여기서는 작동하지 않으므로 수동으로 수행해야 합니다.

LUKS가 없으면 LV의 크기와 파일 시스템의 크기는 동일합니다. LUKS의 경우 LUKS 헤더도 고려해야 합니다. 헤더가 몇 MiB 더 크므로 파일 시스템이 몇 MiB 더 작아야 하거나 논리 볼륨이 몇 MiB 더 커야 합니다. 따라서 LUKS 헤더와 파일 시스템 모두에 충분한 공간이 있습니다.

(비교 , 페이로드 또는 데이터 오프셋) 의 LUKS 헤더 크기 /home로 축소한다고 가정합니다 .100G16Mcryptsetup luksDump

파일 시스템을 생성하는 경우 /homeLV의 크기를 100G결정해야 합니다.100G+16M

100G-16M또는 LV가 명확해질 수 있도록 파일 시스템의 크기를 조정하십시오 100G.

예를 들면 다음과 같습니다.

# 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

수학적으로 확실하지 않은 경우 파일 시스템을 더 축소하여(예: 100G 대신 99G) 안전 여유를 추가한 다음 나중에 "실제" 장치 크기로 복원하는 것이 일반적입니다.

# after resizing the LV, grow LUKS and filesystem to device size
cryptsetup resize luks-home
resize2fs /dev/mapper/luks-home

기존 파티셔닝과 달리 LVM을 사용하면 사용 가능한 모든 공간을 한 번에 사용할 이유가 없습니다. LV의 크기가 더 합리적인 경우 먼저 번거로운 축소 프로세스를 거치지 않고 필요에 따라 파일 시스템을 확장할 수 있는 충분한 여유 LVM 공간을 갖게 됩니다.

답변2

시간이 오래 걸렸지만 가상 머신에서 시행착오를 겪은 후(작동하기 전에 몇 대의 머신을 파괴할 수 있었으므로 실제 시스템에서 이 작업을 수행하기 전에 연습하십시오) 여기에서 큰 도움을 얻었고, 가까스로 성공했습니다. 다음과 같이 lvm에 대한 LV 구성 luks를 줄입니다.

  1. 라이브 CD를 부팅하고 복구 모드로 들어갑니다.
  2. 파티션 암호 해독

    cryptsetup open /dev/mapper/fedora_localhost--live-tmp tmpCrypt

  3. 파일 시스템 축소

    resize2fs /dev/mapper/tmpcrypt 6G
    
  4. LUKS 파티션 닫기

    cryptsetup close /dev/mapper/tmpCrypt
    
  5. LUKS 헤더 축소

    cryptsetup resize /dev/mapper/fedora_localhost--live-tmp
    
  6. LV 크기 감소(암호화 크기 16M + LUKS 헤더 크기 = 6144+16)

    sudo lvreduce -L 6160M /dev/mapper/fedora_localhost--live-tmp
    
  7. LUKS 크기를 다시 조정하세요

    cryptsetup resize /dev/mapper/fedora_localhost--live-tmp
    
  8. 파티션 암호 해독

    cryptsetup open /dev/mapper/fedora_localhost--live-tmp tmpCrypt
    
  9. 파일 시스템 크기를 다시 조정

    sudo resize2fs /dev/mapper/tmpCrypt
    

*참고: 제가 아는 한 8단계와 9단계는 필수는 아니지만 시스템을 재부팅하기 전에 파일 시스템을 확인하기 위해 수행했습니다.

관련 정보