Großes Bild
Beginnen wir mit einem Bild, wie das Ergebnis aussieht:
Grundlegende Strategie
Die Schritte zum Einrichten eines Systems wie folgt lauten also:
- Erstellen Sie einen Live-USB-Stick
- Starten Sie die Live-CD
- Bereiten Sie das RAID vor (verwendetes mdadm)
- Vorbereiten des verschlüsselten Containers (verwendete Luks)
- Installieren Sie Ubuntu über das Installationsprogramm (dieses Setup wird leider nicht standardmäßig unterstützt)
- Wechseln Sie über die Chroot zum Zielsystem
- Mdadm-installation korrigiert (bei Raid-Installation nicht automatisch installiert)
- Fixe crypttab (nicht automatisch installiert, wenn das verschlüsselte Volume installiert wird)
- Grub fixieren (falls nötig)
- Starten Sie neu
Schritt für Schritt
Ich werde Sie durch diese Schritte führen:
Erstellen Sie einen Live-USB-Stick aus http://releases.ubuntu.com/15.10/ubuntu-15.10-desktop-amd64.iso (oder gegebenenfalls einer anderen Architektur).
Booten Sie die Live-CD (nicht installieren)
3./4. Starten Sie das erste Shellskript, das Sie durch die folgenden Schritte führt
- Bereiten Sie das RAID vor
- Bereiten Sie den verschlüsselten Container vor
#!/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)"
Installieren Sie Ubuntu über das Installationsprogramm (Empfehlung: Installieren Sie keine Updates bei der Installation, damit Sie im Fehlerfall nicht unnötig warten).
Wechseln Sie über die Chroot zum Zielsystem. Öffnen Sie dazu ein neues Terminalfenster cd unter / media / ubuntu und bereiten Sie die Chroot mit dem folgenden Skript vor:
#!/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. Verwenden Sie das folgende Skript in der Chroot-Shell (nach dem Aufruf von "sudo chroot / media / ubunu / root / bin / bash") für:
- Mdadm-installation korrigieren
- Fixieren Sie Crypttab
- Grub fixieren (falls nötig)
#!/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
- Starten Sie neu
Sie können beliebige Größen in den Skripts an Ihre Bedürfnisse anpassen. Speichern und verteilen Sie sie, um die benötigte Zeit zu reduzieren.
Übrigens danke ich einem guten Freund, der mir geholfen hat, als ich wirklich feststeckte.