web-dev-qa-db-ja.com

LVMとLUKSの手動パーティション化、loader / init / grubの問題

LVMとLUKを手動でパーティション分割してインストールすることに成功しました。

パーティションが作成されます-ホーム、ルート、スワップおよびブート、pvおよびvgがすべて作成され、正しくセットアップされました。

Liveからインストールし、ファイルシステムのすべてを適切な場所にインストールしました。

Chrootし、正しいUUIDを使用して/ etc/crypttabをマウントおよびセットアップし、/ etc/fstabが正しいマッパーとUUID(blkid出力に基づく)を指しているようにします。

この時点で、ブートローダとgrubを取得して、/ etc/crypttabで参照したものを復号化するパスワードログイン画面を表示しようとするいくつかのアプローチを試みます。

最初のアプローチ-

mount -t proc proc /proc 
mount -t sysfs sys /sys 
update-initramfs -u

これを実行すると教えてくれます

/usr/sbin/iucode_tool: cpuid kernel driver unavailable, cannot scan system processor signatures

第二のアプローチ-

/etc/mkinitcpio.confを確認してlvm2を追加し、暗号化してから、

mkinitcpio -p linux

Mkinitcpioが存在しないため、これも機能しません。

いくつかの調査の後、既存のinitプロセスには/ etc/crypttabで十分であると考えていましたか?

第三のアプローチ-

/ etc/default/grubを編集して追加

GRUB_ENABLE_CRYPTODISK=y 

そして、実行中

grub mkconfig -o /boot/grub/grub.cfg
grub-install /dev/sda1

私がこれで得ている問題

/usr/sbin/grub-probe: error: failed to get canonical path of `/dev/mapper/ubuntu-rootvol'

パスワードを整理してこのブート画面を取得するのはかなり簡単なはずですが、選択肢がありません。 Ubuntuに/ etc/crypttabを参照させる正しい方法を教えてください

ご協力いただきありがとうございます!

3
user81084

手動でパーティションを分割しながらLUKSとLVMをセットアップする方法を見つけました! Ubuntu 16.04.2でこれをテストしました

ライブOSからUbuntuを起動し、インストールせずにUbuntuを試すオプションを選択します。以下に概説した手順に従ってください。

  1. 選択したツールを使用してドライブをパーティション分割します。次のように、msdosパーティションテーブルにfdiskを使用してセットアップしました。
    • sda1:/ boot(1G)
    • sda2:LUKSパーティション(ディスクの残り)
  2. LUKSのセットアップ
    • Sudo cryptsetup luksFormat --hash=sha512 --key-size=512 --cipher=aes-xts-plain64 --verify-passphrase /dev/sda2
    • Sudo cryptsetup luksOpen /dev/sda2 CryptDisk
    • 必須ではありませんが、LUKSパーティションをゼロで埋めて、暗号化された状態のパーティションがランダムデータで満たされるようにすることをお勧めします。 Sudo dd if=/dev/zero of=/dev/mapper/CryptDisk bs=4M注意してください、これには非常に長い時間がかかる可能性があります!
  3. /dev/mapper/CryptDiskでLVMをセットアップします
    • Sudo pvcreate /dev/mapper/CryptDisk
    • Sudo vgcreate vg0 /dev/mapper/CryptDisk
    • Sudo lvcreate -n swap -L 2G vg0
    • Sudo lvcreate -n root -L 10G vg0
    • Sudo lvcreate -n home -l +100%FREE vg0
  4. これでインストールの準備ができました。インストールの「インストールタイプ」部分に到達したら、「その他」オプションを選択します。次に、構成したいように/ dev/mapper/vg0- *パーティションを手動で割り当てます。/dev/sda1を/ bootとして設定することを忘れないでください。/bootパーティションは暗号化しないでください。そうである場合、ブートできません。 「ブートローダーインストール用のデバイス」を/ dev/sdaに変更し、インストールを続行します。
  5. インストールが完了したら、再起動しないでください! 「テストを継続する」オプションを選択します。
  6. ターミナルで次を入力し、/ dev/sda2のUUIDを探します。後でそのUUIDをメモします。
    • Sudo blkid
    • 私のマシンの重要な行には/dev/sda2: UUID="bd3b598d-88fc-476e-92bb-e4363c98f81d" TYPE="crypto_LUKS" PARTUUID="50d86889-02"と表示されます
  7. 次に、新しくインストールしたシステムを再度マウントして、さらに変更を加えることができます。
    • Sudo mount /dev/vg0/root /mnt
    • Sudo mount /dev/vg0/home /mnt/home#これはおそらく必要ありません
    • Sudo mount /dev/sda1 /mnt/boot
    • EFIパーティションがある場合は、/mnt/boot/efiにマウントします
    • Sudo mount --bind /dev /mnt/dev#これが必要かどうかよくわかりません
    • Sudo mount --bind /run/lvm /mnt/run/lvm
  8. Sudo chroot /mntを実行して、インストールされたシステムにアクセスします
  9. Chrootから、さらに2つをマウントします
    • mount -t proc proc /proc
    • mount -t sysfs sys /sys
    • mount -t devpts devpts /dev/pts
  10. Crypttabをセットアップします。お気に入りのテキストエディタを使用して、ファイル/ etc/crypttabを作成し、次の行を追加して、UUIDをディスクのUUIDに変更します。
    • CryptDisk UUID=bd3b598d-88fc-476e-92bb-e4363c98f81d none luks,discard
  11. 最後に、いくつかのブートファイルを再構築します。
    • update-initramfs -k all -c
    • update-grub
  12. 再起動すると、システムは起動時に復号化するためのパスワードを要求するはずです!

Martin EveEGIDIO DOCILE 、および投稿したチュートリアルについては blog.botux.fr の方々に感謝します。彼らの投稿からピースを引き出し、少し余分なトラブルシューティングを行うことで、ようやくこれを理解することができました。

私はこれを何度も試しましたが、何度も失敗しました。エラーメッセージに基づいて自分で解決しなければならなかったビットはSudo mount --bind /run/lvm /mnt/run/lvm

2
b_laoshi

このガイドに感謝します。私は最近18.04に挑戦し、完璧に働きました。 GRUBのインストールを修正し、EFIに対処するために、 Acer Aspire ES1-533にUbuntuをインストールできません に基づいたいくつかの手順を追加しました。 「update-initramfs -k all -c」の後、次の手順を使用しました。

1-次の方法でefivarsをロードします。

Sudo modprobe efivars

2- 64ビットバージョンのgrub-installを再インストールします。

Sudo apt-get install --reinstall grub-efi-AMD64

Sudo grub-install --no-nvram --root-directory=/mnt

3-ルートを/ mntに変更し、grubを更新します

Sudo chroot /mnt

update-grub

(私の場合、grub-probに関する問題があります(sda1にはありません)。しかし、インストールには影響しませんでした)

4-インストールされたブートローダーの移動と名前変更

cd /boot/efi/EFI

cp -R ubuntu/* BOOT/

cd BOOT

cp grubx64.efi bootx64.efi

そして最後に、再起動してください!

0
ceshaz