web-dev-qa-db-ja.com

暗号化されたRAID1にUbuntu15.10をインストールする方法

最近、暗号化されたRAID1にUbuntu15.10(デスクトップ)をセットアップしましたが、そのままでは機能せず、チュートリアルも見つからなかったため、これを実現する方法を共有したいと思います。したがって、私が達成したかったのは、RAID1構成で実行されている2つの物理HDDにミラーリングされた暗号化ボリュームで実行されているUbuntuでした。

3
soriak

大局

それでは、結果がどのように見えるかの画像から始めましょう: enter image description here

基本戦略

したがって、このようなシステムをセットアップする手順は次のとおりです。

  1. ライブUSBスティックを作成する
  2. Live-CDを起動します
  3. RAIDを準備します(mdadmを使用)
  4. 暗号化されたコンテナを準備します(luksを使用)
  5. インストーラーを介してUbuntuをインストールします(残念ながら、このセットアップはそのままではサポートされていません)
  6. Chroot経由でターゲットシステムに切り替えます
  7. Mdadm-installationを修正しました(RAIDにインストールするときに自動的にインストールされません)
  8. Crypttabを修正しました(暗号化されたボリュームにインストールするときに自動的にインストールされません)
  9. Grubを修正します(必要な場合)
  10. リブート

ステップバイステップ

したがって、次の手順を説明します。

  1. http://releases.ubuntu.com/15.10/ubuntu-15.10-desktop-AMD64.iso (または該当する場合は他のアーキテクチャ)からLive-USBスティックを作成します

  2. ライブCDを起動します(インストールしないでください)

3./4。次の手順を実行する最初のシェルスクリプトを開始します

  • RAIDを準備する
  • 暗号化されたコンテナを準備する

#!/bin/bash

read -p "verify sda/sdb are the intended devices and other devices are unplugged"
Sudo apt-get install gparted mdadm

read -p "create empty partitions for raid and also reserved bios gpt areas manually! Use gpt-partition tables in all steps, apply the following layout to both disks: 1MiB unformmated (bios_grub) (recommendation to leave 99MiB unallocated in case we need to do some nasty EFI stuff), remaining space unformatted partition"
Sudo gparted
Sudo parted /dev/sda set 1 raid on
Sudo parted /dev/sdb set 1 raid on

read -p "verify non-bios partition is actual sda2 and sdb2"
Sudo mdadm --create /dev/md0 --auto md --level=1 --raid-devices=2 /dev/sda2 /dev/sdb2

read -p "create boot partition and empty partition for encryption"
Sudo gparted
Sudo cryptsetup -c aes-xts-plain64 -s 512 -h sha512 luksFormat /dev/md0p2
Sudo cryptsetup luksOpen /dev/md0p2 lukslvm
Sudo pvcreate /dev/mapper/lukslvm
Sudo vgcreate vgubuntu /dev/mapper/lukslvm
Sudo lvcreate -L 10G -n swap vgubuntu
Sudo lvcreate -L 100G -n root vgubuntu
Sudo lvcreate -l 100%FREE -n home vgubuntu
Sudo mkswap /dev/mapper/vgubuntu-swap -L swap
Sudo mkfs.ext4 /dev/mapper/vgubuntu-root -L root
Sudo mkfs.ext4 /dev/mapper/vgubuntu-home -L home
echo "all done, start installation (and fix boot in chroot)"
  1. インストーラーを介してUbuntuをインストールします(インストール時に更新をインストールしないことをお勧めします。エラーが発生した場合でも、不必要に待つ必要はありません)

  2. Chroot経由でターゲットシステムに切り替えます。これを行うには、新しいターミナルウィンドウcdを/ media/ubuntuに開き、次のスクリプトを使用してchrootを準備します。


#!/bin/bash

read -p "verify this script is called from /media/ubuntu/ and a subfolder is used as mountpoint for the chroot root filesystem named root"
mkdir /media/ubuntu/root
#umount /media/ubuntu/bootpart 
mount /dev/mapper/vgubuntu-root root
mount /dev/md0p1 root/boot/
mount -o rbind /dev root/dev
mount -t proc proc root/proc/
mount -t sysfs sys root/sys
cp /etc/resolv.conf root/etc/resolv.conf 
echo "chroot setup, call 'Sudo chroot /media/ubuntu/root /bin/bash' to chroot"

7./8./9。 chrootシェルで次のスクリプトを使用します(「Sudochroot/media/ubunu/root/bin/bash」を呼び出した後)。

  • Mdadm-installationを修正
  • Crypttabを修正
  • Grubを修正します(必要な場合)

#!/bin/bash

Sudo apt-get update
apt-get install emacs mdadm
#read -p "the BIOS boot partition must be configured to be 1MiB, unformatted and having flag bios_grub"
#Sudo gparted
grub-install /dev/sda
echo "reading UUID of root device /dev/md0p2"
blkid /dev/md0p2 
read -p "edit crypttab add line 'lukslvm UUID=<VOLUME_ID> none luks'"
emacs /etc/crypttab
read -p "edit modules add line 'dm-crypt'"
emacs /etc/modules
update-initramfs -u -k all
read -p "add 'kopt=root=/dev/mapper/vgubuntu-root' to 'GRUB_CMDLINE_LINUX_DEFAULT' in /etc/default/grub"
emacs /etc/default/grub
Sudo update-grub
  1. リブート

スクリプトの任意のサイズをニーズに合わせて調整できます。それらを保存して実行し、必要な時間を短縮します。

ちなみに、本当に行き詰まったときに助けてくれた良い友達に感謝します。

3
soriak