如何在加密的 RAID 1 上安装 Ubuntu 15.10

如何在加密的 RAID 1 上安装 Ubuntu 15.10

我最近在加密的 RAID 1 上设置了 Ubuntu 15.10(桌面版),想分享如何实现这一点,因为它开箱即用,而且我找不到任何教程。所以我想实现的是,在加密卷上运行 Ubuntu,该卷镜像到在 RAID 1 配置中运行的两个物理硬盘。

答案1

概览

那么让我们从一张结果图像开始吧: 在此处输入图片描述

基本策略

因此,设置此类系统的步骤如下:

  1. 创建 Live-USB 记忆棒
  2. 启动 Live-CD
  3. 准备 RAID(使用 mdadm)
  4. 准备加密容器(使用 luks)
  5. 通过安装程序安装 Ubuntu(遗憾的是不支持开箱即用的设置)
  6. 通过 chroot 切换到目标系统
  7. 修复 mdadm-installation(在 raid 上安装时不会自动安装)
  8. 修复 crypttab(在加密卷上安装时不会自动安装)
  9. 修复 grub(如有必要)
  10. 重启

一步步

我将引导您完成以下步骤:

  1. 创建 Live-USB 棒http://releases.ubuntu.com/15.10/ubuntu-15.10-desktop-amd64.iso(或任何其他适用的架构)

  2. 启动实时 CD(不要安装)

3./4. 启动第一个 shell 脚本,它将引导您完成以下步骤

  • 准备 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 shell 中使用以下脚本(调用“sudo chroot /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. 重启

您可以根据需要调整脚本中的任意大小。保存并执行它们以减少所需的时间。

顺便说一句,感谢一位好朋友在我陷入困境时帮助了我。

相关内容