Sie sind nicht angemeldet.

Lieber Besucher, herzlich willkommen bei: GentooForum.de. Falls dies Ihr erster Besuch auf dieser Seite ist, lesen Sie sich bitte die Hilfe durch. Dort wird Ihnen die Bedienung dieser Seite näher erläutert. Darüber hinaus sollten Sie sich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutzen Sie das Registrierungsformular, um sich zu registrieren oder informieren Sie sich ausführlich über den Registrierungsvorgang. Falls Sie sich bereits zu einem früheren Zeitpunkt registriert haben, können Sie sich hier anmelden.

1

06.01.2010, 13:29

Gentoo verschlüsselt installieren mit Cyptsetup und LVM

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 !!! :D

2

06.01.2010, 19:21

Verschoben:
Ob ein Howto fertig ist entscheiden andere.

Kurze Frage:
Was enthält dieses Howto, das das recht Umfangreiche in der Gentoo Wiki (http://en.gentoo-wiki.com/wiki/DM-Crypt_with_LUKS) nicht enhält?
"Erst nachdem wir alles verloren haben, haben wir die Freiheit, alles zu tun."
"It's only after we've lost everything, that we're free to do anything!"

Jabber: Die ID kann via PN erfragt werden.

3

07.08.2012, 17:07

Quellcode

1
2
3
vgcreate vg /dev/mapper/MAIN
lvcreate -L1024M -nSWAP GENTOO
lvcreate -l100%FREE -nROOT GENTOO

Ja wie jetzt? Entweder

Quellcode

1
2
3
vgcreate GENTOO /dev/mapper/MAIN
lvcreate -L1024M -nSWAP GENTOO
lvcreate -l100%FREE -nROOT GENTOO

oder

Quellcode

1
2
3
vgcreate vg /dev/mapper/MAIN
lvcreate -L1024M -nSWAP vg
lvcreate -l100%FREE -nROOT vg

Oder habe ich da etwas nicht verstanden?

Ausserdem nutzt nicht jeder einen Genkernel, wie bekommt man das initramfs Script mit einem normalen Kernel? Daran scheitert es gerade bei mir :(

4

07.08.2012, 19:56

Du kannst beides nutzen.
Im Fall 1 heisst Deine VG dann "GENTOO" und die Devices sind /dev/mapper/GENTOO-ROOT,
im 2. Fall heisst diese "vg" und Du hast dann /dev/mapper/vg-ROOT.

PS: Du kannst eine initramfs erstellen auch für einen manuell kompilierten Kernel. Einfach anstatt "all" die Action "initramfs" nutzen.
Damit die initramfs dann schnlanker ist, setze noch --no-ramdisk-modules --no-keymap drauf.

Sicherheitshalber stelle mal die Parameter

Quellcode

1
2
3
4
5
6
7
8
# Run 'make clean' before compilation?
# If set to NO, implies MRPROPER WILL NOT be run
# Also, if clean is NO, it won't copy over any configuration
# file, it will use what's there.
CLEAN="no"

# Run 'make mrproper' before configuration/compilation?
MRPROPER="no"
in der /etc/genkernel.conf damit wirklich nichts schief geht.
PS die anderen Genkernel Parameter kannst Du auch in der Datei aktivieren, damit Du sie nicht jedes mal eintippen musst.

An sonsten gibt es Anleitungen zum Bau einer "initramfs" wie Sand am Meer. Habe keinen Tipp, da ich den Genkernel nutze.
Auch wenn Open-Source kostenlos ist, ist sie nicht umsonst. Dein Preis ist Dein Engagement und Mitarbeit an OS-Projekten.
Wenn Du keinen Preis bezahlen willst, bist Du die Ware. Und das ist nicht Open Source, geschweigedenn frei.