설치 중에 LUKS 컨테이너에 논리 볼륨 그룹을 생성하는 것을 잊었습니다. 시스템을 다시 설치하지 않겠습니다. 그렇다면 데이터 손실 없이 LUKS 컨테이너에서 LVG를 생성하는 방법은 무엇입니까?
내 계획은 다음과 같습니다.
설치
lvm2
패키지다른 드라이브
/
에 백업rsync
예를 들어, 필요한 논리 볼륨을 생성합니다
VolumeGroup/root
.VolumeGroup/home
VolumeGroup/swap
백업에서 모든 데이터를 다음으로 전송합니다.
VolumeGroup/root
커널 매개변수를
cryptdevice=PARTUUID=...:root root=/dev/mapper/root
다음에서 변경합니다.cryptdevice=PARTUUID=...:cryptlvm root=/dev/VolumeGroup/root
lvm
HOOKS에 후크 추가/etc/mkinitcpio.conf
새로운 루트로 chroot
fstab 재생성
달리기
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 메타데이터를 위한 공간을 확보하기 위해 첫 번째 범위를 재배치하는 방식으로 작동합니다. 그러나 그럼에도 불구하고 모든 것을 백업해야 할 만큼 위험하므로 접근 방식이 더 좋습니다.