Partionstabelle:
Bsp
sda1: /boot
sda2: Verschlüsslete Partition (ohne File-System) mit den LVM, LVM-Group: '"GENTOO"
LVM-Group "GENTOO" mit Volumes: "SWAP", "ROOT" eventuell "HOME" usw.
Vorteil dieser Partitionierung
- verschlüsselte Swap, Home, Root usw.
- einmalige Passwortabfrage beim Booten um alle Parts zu entschlüsseln
erstellen der /boot und der verschlüsselten Partition:
|
Quellcode
|
1
2
|
fdisk /dev/hda
mkfs.ext3 /dev/hda1
|
Cryptsetup:
|
Quellcode
|
1
2
|
cryptsetup -y --cipher aes-cbc-essiv:sha256 -s 256 luksFormat /dev/hda2
cryptsetup luksOpen /dev/hda2 MAIN
|
LVM-System mit den Volumes ROOT und SWAP
|
Quellcode
|
1
2
3
4
5
6
7
8
|
pvcreate /dev/mapper/MAIN
vgcreate vg /dev/mapper/MAIN
lvcreate -L1024M -nSWAP GENTOO
lvcreate -l100%FREE -nROOT GENTOO
lvscan
mkfs.ext4 /dev/mapper/GENTOO-ROOT
mkswap /dev/mapper/GENTOO-SWAP
swapon /dev/mapper/GENTOO-SWAP
|
Nun weiter nach
Handbuch.
Kernel-Konfiguration:
Ich benutze hierfür das genkernel-Script da dies alle Schritte voll automatisch ausführt.
die Option "--menuconfig" ermöglicht es, den Kernel selbst an die Hardware anzupassen.
|
Quellcode
|
1
|
genkernel --lvm --luks --menuconfig all
|
Die folgenden Kernel-Optionen sollten im Kernel integriert (markiert mit *) werden.
|
Quellcode
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
File systems --->
<*> Second extended fs support
<*> ext3 support
<*> ext4 support
Device Drivers --->
Block devices --->
<*> Loopback device support
<*> Cryptoloop Support
(8182) Default RAM disk size (kbytes)
[*] Initial RAM disk (initrd) support
Multi-device support (RAID and LVM) --->
<*> Device mapper support
<*> Crypt target support
Cryptographic options --->
<*> SHA256 digest algorithm
<*> AES cipher algorithms (i586)
<*> Blowfish cipher algorithms
|
Wichtig für spätere Einstellung der grub.conf:
Entweder ATA/ATAPI für hdaX Bezeichungen oder SATA für sdaX Bezeichungen (beide Treiber gleichzeitig funktionieren nicht)
|
Quellcode
|
1
2
3
4
|
Device Drivers --->
<*> ATA/ATAPI/MFM/RLL support --->
[ ] Support for SATA
<*> generic ATA/ATAPI disk support
|
fstab: /etc/fstab
die fstab sollte unbedingt vor der initramfs konfiguriert werden da sonst gar nichts funktioniert.
|
Quellcode
|
1
2
3
4
|
/dev/hda1 /boot ext3 default,noatime 1 2
/dev/mapper/GENTOO-ROOT / ext4 noatime 0 1
/dev/mapper/GENTOO-SWAP none swap sw 0 0
/dev/cdrom /mnt/cdrom auto auto,user 0 0
|
Erstellen des initramfs:
Damit der Kernel mit den verschlüsselten Partitionen arbeiten kann benötigt man ein Init-Script, welches in die initramfs integriert wird.
Hierfür benutze ich wieder das genkernel-Script. Man kann das ganze auch per
Hand erstellen.
Vorbereitung:
Statisches kompilieren von cryptsetup, busybox und lvm2
|
Quellcode
|
1
|
USE="static" emerge lvm2 cryptsetup busybox
|
|
Quellcode
|
1
|
genkernel --lvm --luks ramdisk
|
Grub
Wichtig sind die Optionen dolvm (LVM-Unterstützung) und crypt_root.
crypt_root ist die verschlüsselte Partition, nicht die Root-Partition.
Entscheidend ist hier die gewählte Option im Kernel bzgl. SATA oder ATA (hdaX oder sdaX) Allenfalls bekommt man die Fehlermeldung: "Could not find the root block device in."
|
Quellcode
|
1
2
3
4
5
6
7
8
|
default 0
timeout 5
splashimage=(hd0,0)/boot/grub/splash.xpm.gz
title Gentoo Linux 2.6.31-r6
root (hd0,0)
kernel /boot/kernel-genkernel-x86-2.6.31-gentoo-r6 dolvm root=/dev/ram0 init=/linuxrc ramdisk=8192 crypt_root=/dev/hda2 real_root=/dev/mapper/GENTOO-ROOT vga=0x318
initrd /boot/initramfs-genkernel-x86-2.6.31-gentoo-r6
|
Fertig !!!