今日は、lvmを使用してルートパーティションを暗号化されたluksパーティションに移動することにしましたが、いくつかの問題に遭遇しました。
これが私の初期設定です。
-- sda
- sda1 (debian)
- sda2 (secondary)
- sda5 (swap)
- sda6 (home)
- sda7 (voidlinux)
sda1を512Mブートパーティション(sda1)に分割し、残りの部分はvoidlinux(sda3)に使用されます。それになった
-- sda
- sda1 (boot)
- sda2 (secondary)
- sda5 (swap)
- sda6 (home)
- sda7 (void)
- sda3 (for void)
その後、sda3を暗号化し、「vg」というlvm vgを作成し、lv「root」を作成しました。
-- sda
- sda1 (boot)
- sda2 (secondary)
- sda5 (swap)
- sda6 (home)
- sda7 (void)
- sda3
- enc
- vg-root
にext4ファイルシステムを作成して/dev/vg/root
マウントし、以前に作成したバックアップtarアーカイブを解凍しました。 tarアーカイブには私/boot
/usr
/etc
からのスペースが含まれています。/var
/
/dev/vg/root
にインストールし、/mnt
ディレクトリを作成して/mnt/{proc,dev,sys,tmp}
実行しますfor i in proc dev sys tmp ;do mount --rbind /$i /mnt/$i ;done
。
逃げるmv /mnt/boot/*6.1* /mnt/tmp
がmount /dev/sda1 /mnt/boot
ついにmv /mnt/tmp/*6.1* /mnt/boot
。
これらのシンボリックリンクは以下に作成されます/mnt
。[bin->/usr/bin, lib->/usr/lib, lib32->/usr/lib32, lib64->/usr/lib, sbin->/usr/bin]
次に、ルートを/mnt
。
複数のプログラムを実行してみましたが、すべてがうまくいきます。次に、.installed grubを/etc/default/grub
編集しました。 grub.cfg 。 initramfsを再構築し、アイテムを追加しました。GRUB_CMDLINE_LINUX_DEFAULT="loglevel=4 rd.auto cryptdevice=/dev/sda3:enc"
grub-install /dev/sda
grub-mkconfig -o /boot/grub/grub.cfg
dracut -f
/dev/vg/root / ext4 defaults 0 1
/dev/sda1 /boot ext2 defaults 0 0
/etc/fstab
再起動したときにパスワードを入力しましたが、このようなメッセージが出ました...Cannot find init! Please check to make sure you passed a valid root filesystem!
ここに閉じ込められ、次に何をすべきかわかりません。助けてください。
以下はdracutrescueシェルから得られた完全なログです。ペーストビン
ベストアンサー1
解決しました。シンボリックリンク[bin,lib*,sbin]は相対的でなければなりません。つまり、bin->usr/bin... です。これinit
シェルスクリプトのコードスニペットがinitramfs
これを理解するのに役立ちました。