インストール中に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メタデータのためのスペースを確保するために最初の範囲を再配置するように動作します。しかし、それにもかかわらずすべてをバックアップするのに十分危険です。