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


2

我最近在加密的RAID 1上安装了Ubuntu 15.10(台式机),并希望分享实现此方法的方法,因为它开箱即用,我也没有找到任何教程。因此,我想要实现的是在加密卷上运行的Ubuntu,该镜像镜像到以RAID 1配置运行的两个物理HDD。

Answers:


2

大图景

因此,让我们从结果的图像开始: 在此处输入图片说明

基本策略

因此,建立这样的系统的步骤如下:

  1. 创建一个实时USB记忆棒
  2. 引导Live CD
  3. 准备RAID(使用的mdadm)
  4. 准备加密的容器(使用了lus)
  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。启动第一个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安装
  • 修复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. 重启

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

顺便说一句,多亏了一个好朋友,当我真正陷入困境时,我帮助了我。


/dev/sda失败时无法引导,因为您没有EFI引导分区/dev/sdb
Sacha K

实际上,即使配置正确,这也不起作用。这是一个已知的错误,但尚未修复。参见serverfault.com/questions/261104/…bugs.launchpad.net/ubuntu/+source/mdadm/+bug/324997
Sacha K,

@SachaK感谢您的反馈。我将进行研究,并在可能的情况下改善答案。
soriak's
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.