/boot
別のパーティションとlvmを使用してEFIフレンドリーなマザーボードにLUKS暗号化CentOS 7インストールを実装しようとしています。
以前のCentOS(GUIからインストール)から新しいCentOSインストールを分割しました。
sdb 8:16 0 745,2G 0 disk
├─sdb1 8:17 0 200M 0 part /home/user/target/boot/efi
├─sdb2 8:18 0 1G 0 part /home/user/target/boot
├─sdb3 8:19 0 700G 0 part
│ └─crypto 253:3 0 700G 0 crypt
│ ├─lv-swap 253:4 0 16G 0 lvm
│ ├─lv-root 253:5 0 50G 0 lvm /home/user/target
│ └─lv-home 253:6 0 634G 0 lvm /home/user/target/home
CentOS chrootからのブートも成功しました(使用これそしてこれチュートリアル)これでブートイメージを作成する準備が整いました。
問題は、cryptsetupで非標準アルゴリズムを使用することに決めたことです。
cryptsetup -v --cipher serpent-xts-plain64 --key-size 512 --hash sha256 --iter-time 3000 --use-random luksFormat /dev/sdb3
今私のパラメータを使って正しいinitrdを生成する方法を知りたいです。
チュートリアルでは、次のステップが次のようになることを伝えます。
mkinitcpio -p linux
ただし、正しく機能するためのmkinitcpio
コマンドや/etc/mkinitcpio.conf
変更HOOKS
リストはありません。lvm
encrypt
initrd
しかし、rpmベースの分布に関する知識が不足して、これだけでは見慣れませんでした。私の場合のinitrdの例を検索することは幸運ではありませんでした。
/boot
chrootには複数のファイル/ディレクトリがあります。
bash-4.2# ls
config-3.10.0-514.16.1.el7.x86_64 grub2 symvers-3.10.0-514.16.1.el7.x86_64.gz
efi initramfs-3.10.0-514.16.1.el7.x86_64.img System.map-3.10.0-514.16.1.el7.x86_64
grub lost+found vmlinuz-3.10.0-514.16.1.el7.x86_64
ただし、起動中にこれらのファイルが生成されると、スネーク暗号化またはlukをサポートしているかどうか疑われます。
だから私の質問は、カーネルイメージの作成からlukとserpentを使用して適切なブートツールチェーンを作成する方法です。
initramfs
代わりに使用する必要があるため、initrd
このアプローチのヒントも高く評価されます。
答え1
最後に設定が完了し、制限された手順でCentOS 7で設定を実行する方法を共有する準備が整いました。
私はパーティショニングと手動ブートをスキップしました。他の場所でも完全なマニュアルがたくさんあります。
したがって、次のパーティション化バリアントを試してください。
sdb 8:16 0 745,2G 0 disk
├─sdb1 8:17 0 200M 0 part
├─sdb2 8:18 0 1G 0 part
└─sdb3 8:19 0 700G 0 part
└─crypto 253:3 0 700G 0 crypt
├─lv-swap 253:4 0 16G 0 lvm
├─lv-root 253:5 0 50G 0 lvm
└─lv-home 253:6 0 634G 0 lvm
次に、必要なドライバをインストールして次のようにします。
sdb 8:16 0 745,2G 0 disk
├─sdb1 8:17 0 200M 0 part /home/user/target/boot/efi
├─sdb2 8:18 0 1G 0 part /home/user/target/boot
└─sdb3 8:19 0 700G 0 part
└─crypto 253:3 0 700G 0 crypt
├─lv-swap 253:4 0 16G 0 lvm
├─lv-root 253:5 0 50G 0 lvm /home/user/target
└─lv-home 253:6 0 634G 0 lvm
ステップ0。 chrootスクリプトを準備します。再起動するたびに繰り返すのはmount
面倒だったので、次の基本的なchrootスクリプトを使用しました。
#!/bin/bash
sudo mount /dev/mapper/lv-root /home/user/target
sudo mount /dev/sdb2 /home/user/target/boot
sudo mount /dev/sdb1 /home/user/target/boot/efi
sudo mount --bind /proc /home/user/target/proc
sudo mount --bind /dev /home/user/target/dev
sudo mount --bind /sys /home/user/target/sys
sudo chroot /home/user/target /bin/bash -l
ステップ1。不足しているEFI固有のモジュールをインストールします(chrootの外側):
sudo yum --installroot=/home/user/target install -y efibootmgr grub2-efi-modules
ステップ2。編集/etc/crypttab
crypto UUID=UUID_of_/dev/sdb3 none luks,discard
理由discard
- より良いTRIMパフォーマンスを得るためにSSDを使用し、いくつかのセキュリティを無視しました。詳細。
ステップ3。編集/etc/dracut.conf
omit_dracutmodules+="systemd"
add_dracutmodules+="crypt lvm" #sequencing could matter
hostonly="yes" #optional
lvmconf="yes"
ステップ4。編集/etc/fstab
UUID=UUID_of_/dev/sdb1 /boot/efi vfat umask=0077 0 0
UUID=UUID_of_/dev/sdb2 /boot ext2 defaults 0 0
UUID=UUID_of_/dev/mapper/lv-root / ext4 defaults 0 0
UUID=UUID_of_/dev/mapper/lv-home /home ext4 defaults 0 0
UUID=UUID_of_/dev/mapper/lv-swap none swap sw 0 0
ステップ5。編集/etc/default/grub
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
GRUB_CMDLINE_LINUX="rd.lvm.lv=lv/swap vconsole.font=latarcyrheb-sun16 vconsole.keymap=us rd.luks.options=discard rd.luks.uuid=UUID_of_/dev/sdb3 crashkernel=auto rd.lvm.lv=lv/root rd.lvm.lv=lv/home nomodeset"
GRUB_THEME="/boot/grub2/themes/system/theme.txt"
rd.luks.options=discard
- 重複することがありますので修正お願いします。
nomodeset
- ハードウェアドライバの並行性の削除(EFI VGAを使用したnoveufb)
ステップ6。実行grub2-mkconfig -o /boot/grub2/grub.cfg
ステップ7。実行grub2-install --target=x86_64-efi --efi-directory=/boot/efi
ステップ8。実行dracut -fv
特に明記しない限り、上記の手順はすべてchroot内で完了する必要があります。
選択した暗号化アルゴリズムは、いかなる方法でも影響を受けないことがわかりました。 grubは必要なすべてのドライバを自動的にロードします。