web-dev-qa-db-ja.com

LVM over LUKSフルディスク暗号化を使用して別のブートパーティションにgrubを手動でセットアップするにはどうすればよいですか?

Linux Mint 17.2をインストールし、ハードドライブを次のように分割しました。

sdc1 - 100MB ext2 for boot
sdc2 - rest of disk as LUKS -> Physical Volume -> LVM Volume

論理ボリュームは次のとおりです。

/
/home
swap

インストーラーはブートローダーをインストールできないことを除いて正しく機能しているようで、「後で手動でブートローダーをインストールする」オプションを選択せざるを得ませんでした。

LiveCDを実行し、LUKSボリュームを開いて、ルート論理ボリュームを/ mntにマウントしました。

質問:ブートローダーをインストールするにはどうすればよいですか?

ほとんどの指示は次のように言っています:

# grub-install --root-directory=/mnt/ /dev/sdc

しかし、これは以下を生み出します:

grub-probe: error: failed to get canonical path of `/cow'.
Installing for i386-pc platform.
grub-install.real: error: attempt to install to encrypted disk without cryptodisk enabled. Set `GRUB_ENABLE_CRYPTODISK=1' in file `/etc/default/grub'..

/etc/default/grub/mnt/etc/default/grubの両方を編集し、両方にGRUB_ENABLE_CRYPTODISK=1を追加しましたが、それでもエラーが発生します。

Grubが暗号化されていないsdc1にインストールされ、パスワードの入力を求められ、ロックが解除されたらシステムを起動するようにこれを設定する適切な方法は何ですか?

[〜#〜] update [〜#〜]

Grubは起動時にロードされますが、パスワードを要求したり、正しく復号化したりしていません。 /etc/default/grubに次のオプションを追加することで、パスワードの入力を求めることができますが、正しいパスワードを入力しても復号化されません。

GRUB_DEFAULT=0
#GRUB_HIDDEN_TIMEOUT=0
#GRUB_HIDDEN_TIMEOUT_QUIET=true
GRUB_TIMEOUT=10
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`    
GRUB_CMDLINE_LINUX_DEFAULT="cryptopts=target=lvmbase,source=/dev/disk/by-uuid/f7ddbdb6-51c3-4c59-9d1e-7751b0438431,lvm=vg0_root"
GRUB_CMDLINE_LINUX=""
3
Nick

私は通常、grub内からchrootを回復します。だから、ライブディストリビューションから起動して...

LUKSボリュームを開きます。

# cryprsetup open /dev/sdc2 luks-mint

LVMボリュームをアクティブ化します。

# vgscan
# vgchange -a y vg_mint
# lvscan

Mintをマウントし、chrootの準備をします:

# mount /dev/mapper/vg_mint-root /mnt
# mount /dev/sdc1 /mnt/boot
# mount --rbind /dev /mnt/dev
# mount --rbind /sys /mnt/sys
# mount -t proc none /mnt/proc

chrootをMintに:

# env -i HOME=/root TERM=$TERM chroot /mnt bash -l

grubを構成してインストールし、chrootを終了します。

(chroot)# grub2-mkconfig > /boot/grub2/grub.cfg
(chroot)# grub2-install /dev/sdc
(chroot)# exit

リブート。

追伸:それに応じてVG名とLV名を置き換えます。

P.P.S:LinuxMinutはgrub2を使用すると想定しましたが、そうでない場合は、両方のgrubコマンドから「2」を削除します。

1
petry