일반 LUKS에서 LUKS의 LVM으로 마이그레이션

일반 LUKS에서 LUKS의 LVM으로 마이그레이션

설치 중에 LUKS 컨테이너에 논리 볼륨 그룹을 생성하는 것을 잊었습니다. 시스템을 다시 설치하지 않겠습니다. 그렇다면 데이터 손실 없이 LUKS 컨테이너에서 LVG를 생성하는 방법은 무엇입니까?

내 계획은 다음과 같습니다.

  1. 설치 lvm2패키지

  2. 다른 드라이브 /에 백업rsync

  3. 예를 들어, 필요한 논리 볼륨을 생성합니다 VolumeGroup/root.VolumeGroup/homeVolumeGroup/swap

  4. 백업에서 모든 데이터를 다음으로 전송합니다.VolumeGroup/root

  5. 커널 매개변수를 cryptdevice=PARTUUID=...:root root=/dev/mapper/root다음에서 변경합니다.cryptdevice=PARTUUID=...:cryptlvm root=/dev/VolumeGroup/root

  6. lvmHOOKS에 후크 추가/etc/mkinitcpio.conf

  7. 새로운 루트로 chroot

  8. fstab 재생성

  9. 달리기mkinitcpio -P

가능한 구현:

### On the primary OS

pacman -S lvm2
# Add lvm2 hook to /etc/mkinitcpio.conf, to it looks like this:
# HOOKS=(base udev autodetect keyboard keymap modconf block encrypt filesystems lvm2 fsck)
mkinitcpio -P

### Reboot into live-USB now

### My existing layout:
###
###  nvme0n1     259:0    0 931.5G  0 disk  
###  ├─nvme0n1p1 259:1    0   512M  0 part  /boot
###  └─nvme0n1p2 259:2    0   931G  0 part  
###    └─root    254:0    0   931G  0 crypt /
   
### mounting necessary partitions

rsync -aAXHv /mnt/ /path/to/backup    

wipefs -a /dev/nvme0n1p2

cryptsetup luksFormat /dev/nvme0n1p2
cryptsetup open /dev/nvme0n1p2 cryptlvm
pvcreate /dev/mapper/cryptlvm
vgcreate VolumeGroup /dev/mapper/cryptlvm
lvcreate -L 16G  VolumeGroup -n swap
lvcreate -L 100G VolumeGroup -n root
lvcreate -l 100%FREE VolumeGroup -n home
lvreduce -l -256M /dev/VolumeGroup/home

mkfs.ext4 /dev/VolumeGroup/root
mkfs.ext4 /dev/VolumeGroup/home
mkswap /dev/VolumeGroup/swap

mount /dev/VolumeGroup/root /mnt
mount --mkdir /dev/VolumeGroup/home /mnt/home
swapon /dev/VolumeGroup/swap

rsync -aAXHv /path/to/backup /mnt

### Now editing kernel parameters so (dots are placeholder for real PARTUUID)
### cryptdevice=PARTUUID=...:cryptlvm root=/dev/VolumeGroup/root
### (*I use systemd-boot, so I change /mnt/etc/kernel/cmdline*)

arch-chroot /mnt
genfstab -U / > /etc/fstab
mkinitcpio -P

### Now reboot and hope all will work

작동할까요?

답변1

작동해야합니다.

Archlinux mkinitcpio 후크 예 lvm2, 아니요 lvm. 먼저 이 후크를 추가하세요. LVM이 아직 존재하지 않더라도 아무런 해를 끼치 지 않습니다. 앞으로는 걱정할 일이 하나 줄어들 것이다.

실행 중인 시스템의 백업이 일관성이 없을 수 있습니다. --exclude또는 를 사용 하면 -x불완전할 수 있습니다 . 사용을 고려해보세요번들 설치/proc /sys /dev, 또는 Live/Rescue 환경에서 이 작업을 수행합니다(처음에 설치하지 않은 경우 이를 제외할 필요는 없습니다).

또 다른 옵션은 LVM으로 변환하는 것입니다. 이 문제에 대한 독일어 튜토리얼이 있습니다.("LVM nachträglich einrichten" - ubuntuusers.de Wiki). LVM 메타데이터를 위한 공간을 확보하기 위해 첫 번째 범위를 재배치하는 방식으로 작동합니다. 그러나 그럼에도 불구하고 모든 것을 백업해야 할 만큼 위험하므로 접근 방식이 더 좋습니다.

관련 정보