汎用LUKSからLUKSのLVMに移行

汎用LUKSからLUKSのLVMに移行

インストール中にLUKSコンテナに論理ボリュームグループを作成することを忘れました。システムを再インストールしません。それでは、データを失うことなくLUKSコンテナからLVGを生成する方法は?

私の計画は次のとおりです。

  1. インストールlvm2パッケージ

  2. 別のドライブ/にバックアップrsync

  3. たとえば、必要な論理ボリュームを作成しますVolumeGroup/rootVolumeGroup/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メタデータのためのスペースを確保するために最初の範囲を再配置するように動作します。しかし、それにもかかわらずすべてをバックアップするのに十分危険です。

関連情報