Как установить Ubuntu 15.10 на зашифрованный RAID 1

1683
soriak

Недавно я установил Ubuntu 15.10 (настольный компьютер) на зашифрованном RAID 1 и хочу рассказать, как этого добиться, поскольку он не работал «из коробки», и я не нашел никакого учебного пособия. Так что я хотел добиться Ubuntu, работающего на зашифрованном томе, который зеркально отображен на двух физических жестких дисках, работающих в конфигурации RAID 1.

2

1 ответ на вопрос

2
soriak

Большая фотография

Итак, давайте начнем с изображения того, как выглядит результат: enter image description here

Основная стратегия

Итак, шаги по настройке системы, подобные этой, следующие:

  1. Создайте карту памяти Live-USB
  2. Загрузите Live-CD
  3. Подготовьте RAID (используется mdadm)
  4. Подготовьте зашифрованный контейнер (используется luks)
  5. Установите Ubuntu через установщик (к сожалению, не поддерживает эту настройку из коробки)
  6. Переключиться на целевую систему через chroot
  7. Исправить mdadm-установку (не устанавливается автоматически при установке на рейд)
  8. Исправить crypttab (не устанавливается автоматически при установке на зашифрованный том)
  9. Исправить личинку (при необходимости)
  10. перезагружать

Шаг за шагом

Итак, я проведу вас через эти шаги:

  1. Создайте карту Live-USB Stick по адресу http://releases.ubuntu.com/15.10/ubuntu-15.10-desktop-amd64.iso (или любой другой архитектуре, если применимо)

  2. Загрузите live 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 (после вызова 'sudo chroot / media / ubunu / root / bin / bash') для:

  • Исправить mdadm-установку
  • Исправить crypttab
  • Исправить личинку (при необходимости)

#!/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 8 лет назад 0
На самом деле это не будет работать, даже если настроено правильно. Это известная ошибка, но она не исправлена. См. Http://serverfault.com/questions/261104/encrypted-lvm-on-raid1-failure-testing-manual-mount и https://bugs.launchpad.net/ubuntu/+source/mdadm/+bug/324997. Sacha K 8 лет назад 0
@SachaK спасибо за ваш отзыв. Я посмотрю на это и улучшу свой ответ, если это возможно. soriak 8 лет назад 0

Похожие вопросы