ubuntuusers.de

chroot in ein LUKS-LVM system - aber wie ?

Status: Gelöst | Ubuntu-Version: Ubuntu 13.10 (Saucy Salamander)
Antworten |

broennie

Anmeldungsdatum:
4. Februar 2011

Beiträge: 19

hallo zusammen,

ich habe bis jetzt nur ein Ubuntu-13.10 auf der Platte des Desktop-Rechners und zwar in einem LUKS-LVM laut dem UU-Wiki-Artikel 'System verschlüsseln'.

Jetzt möchte ich aber ein Windows-8.1 parallel dazu installieren, denn leider laufen Lightroom und Photoshop nicht problemlos unter Wine.

Das Problem wird wohl dann sein, daß Windows den Bootloader Grub-2.00 im MBR wieder gnadenlos überschreibt, da es keine fremden Systeme neben sich duldet.

Drei mögliche Lösungen zu meinem erwarteten Problem fielen mir ein:

1. Bei einem unverschlüsselten Linux könnte ich ja per chroot ins Linux wechseln und mir den MBR mit Grub wieder neu aufbauen. Doch wie mache ich dies manuell in einem LUKS mit LVM ?

Anders formuliert: Wie starte ich ein LUKS-LVM-System manuell, um dann per chroot den Grub-Loader im MBR wieder neu aufzubauen ?

2. Eine Notlösung habe ich mir überlegt, weiss aber nicht ob sie zielführend ist. Ich könnte mir ja den alten MBR, genauer die ersten 446 Bytes davon, per dd sichern und nach der Windows Installation wieder zurückspielen ?

3. Installationsreihenfolge: Erst Windows, dann Linux. Mein Linux System enthält aber inzwischen auch soviele Besonderheiten, daß ich es nicht unbedingt nach einer Windows Installation komplett neu installieren möchte. Wäre zuviel Arbeit.

Vielleicht gibt es ja auch noch eine einfachere Lösung ?

Aber bevor ich mein Linux nach der Windows Installation nicht mehr erreiche wäre ich für INFO's zu meinem Problem sehr dankbar.

Nachtrag: Meine Platte ist noch 'MBR formatiert' und Linux startet nicht per UEFI.

frostschutz

Avatar von frostschutz

Anmeldungsdatum:
18. November 2010

Beiträge: 7790

broennie schrieb:

1. Bei einem unverschlüsselten Linux könnte ich ja per chroot ins Linux wechseln und mir den MBR mit Grub wieder neu aufbauen. Doch wie mache ich dies manuell in einem LUKS mit LVM ?

Eigentlich genauso wie ohne. Du musst halt erst den Container aufmachen (cryptsetup luksOpen) und LVM aktivieren (vgchange -a y). Dann wie gehabt mounten, proc sys dev nicht vergessen, chrooten...

Du kannst aber bevor du mit Windows überhaupt anfängst, auch aus dem laufenden System heraus Grub und /boot auf einen USB-Stick installieren. Dann brauchst du den Chroot gar nicht.

2. Eine Notlösung habe ich mir überlegt, weiss aber nicht ob sie zielführend ist. Ich könnte mir ja den alten MBR, genauer die ersten 446 Bytes davon, per dd sichern und nach der Windows Installation wieder zurückspielen ?

Wenn du Pech hast funktioniert das nicht und Windows bootet dann auch nicht mehr.

Aber bevor ich mein Linux nach der Windows Installation nicht mehr erreiche wäre ich für INFO's zu meinem Problem sehr dankbar.

Bei Windows-Installation kann ich nicht helfen, schon gar nicht bei Windows 8.1. In einer VM reichts nicht?

In jedem Fall würd ich vorher alles sichern.

jug Team-Icon

Ehemalige
Avatar von jug

Anmeldungsdatum:
19. März 2007

Beiträge: 12335

Wohnort: Berlin

broennie schrieb:

1. Bei einem unverschlüsselten Linux könnte ich ja per chroot ins Linux wechseln und mir den MBR mit Grub wieder neu aufbauen. Doch wie mache ich dies manuell in einem LUKS mit LVM ?

Na genau so.

Wenn du das mit dem chroot machen willst, dann mountest du ja die Blockdevices (sowas wie /dev/sda1) mit deinem Dateisystem irgendwo hin (z.B. /mnt) und machst dann dein chroot.

Bei einem LUKS+LVM läuft das im Prinzip genau so ab, nur dass dein Dateisystem nicht direkt auf /dev/sda* liegt. Stattdessen hast du irgendwas Verschlüsseltes. Wie kommt man an das Dateisystem in einem LUKS? luksOpen, so wie in den Wiki-Artikeln zum Thema erklärt (Stichwort: Datenrettung).

Dann hast du aber dein Dateisystem, oder? Nein, dann hast du erst das LVM, für dass du erstmal die logical Volumes nutzbar machen musst. Steht auch im Wiki, wie man an die Daten in einem LVM dran kommt. (lvscan und vgchange -ay)

Und dann hast du endlich deine Dateisysteme unter /dev/mapper/... - die kannst du dann mounten und chroot machen.

~jug

broennie

(Themenstarter)

Anmeldungsdatum:
4. Februar 2011

Beiträge: 19

vielen Dank 'frostschutz' für die prompte Antwort.

Du kannst aber bevor du mit Windows überhaupt anfängst, auch aus dem laufenden System heraus Grub und /boot auf einen USB-Stick installieren. Dann brauchst du den Chroot gar nicht.

meinst du hiermit z.B. den Grub eines USB-Sticks (vorhanden wäre ein Sick mit Ubuntu-12.10) zu modifizieren, so daß dieser dann mein Linux von der Festplatte startet.

Also einen neuen Menüeintrag in der grub.cfg des Sticks erstellen mit Anpassungen, auch der UUID, an den Start eines Linux von der Festplatte z.B. mit folgender Form: "linux /vmlinuz-3.11.0-12-generic root=/dev/mapper/vgubuntu-root ro kopt=root=/dev/mapper/vgubuntu-root quiet splash"

In einer VM reichts nicht?

Eine VM wird wohl nicht klappen, da ich bereits ein altes Windows-XP erst kürzlich von IDE nachträglich auf AHCI umgestrickt habe. Doch Pustekuchen: Lightroom 2.8 und Photoshop CS3 haben sich beide verabschiedet und laufen auf dem neuen Board nicht mehr. Ich müsste sie also unter Windows-XP aktualisieren, um sie dort wieder wie gewohnt nutzen zu können.

Da sowohl die CD's als auch Hüllen aber von meiner Frau entsorgt wurden, läuft dies dann wohl auf einen Neukauf und auch eine Neuinstallation hinaus. Dann aber auch unter Windows-8, zumal Lightroom ab Version 4.0 unter Windows-XP eh nicht mehr lauffähig ist.

Hiermit hat Adobe dann ja auch sein (nicht offen erklärtes) Ziel eines Neukaufes bei einem Plattformwechsel erreicht.

Gäbe es dieses Problem nicht, würde ich lieber heute als morgen auf Windows verzichten.

Und dann hast du endlich deine Dateisysteme unter /dev/mapper/... - die kannst du dann mounten und chroot machen. ~jug

Vielen Dank auch an 'JUG' für die tiefergehenden Erläuterungen zu LUKS und LVM. Hier bin ich zwar noch Neuling, ich lerne aber gern dazu.

broennie

(Themenstarter)

Anmeldungsdatum:
4. Februar 2011

Beiträge: 19

Per USB-Stick = supereinfache Lösung, um das nach der Windows-Installation evtl. nicht mehr zugängliche Linux trotzdem ganz normal starten zu können.

Hier einmal kurz die genaue und getestete Lösung, für andere Interessenten mit dem 'gleichen Problem'.

Ich habe mir also aus der /dev/sda3/boot/grub/grub.cfg (= Grub-Menü meiner Ubuntu-Platte) den Orginaleintrag der Festplatte gekrallt. Bei mir z.B.:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
menuentry 'Kubuntu' --class kubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-cb4c3fe5-eed7-42fe-ba37-ddaa689c7fe7' {
recordfail
	load_video
	gfxmode $linux_gfx_mode
	insmod gzio
	insmod part_msdos
	insmod ext2
	set root='hd0,msdos3'
	if [ x$feature_platform_search_hint = xy ]; then
	  search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos3 --hint-efi=hd0,msdos3 --hint-baremetal=ahci0,msdos3  43c0d034-fc6a-424a-91cf-6607d0a7ec05
	else
	  search --no-floppy --fs-uuid --set=root 43c0d034-fc6a-424a-91cf-6607d0a7ec05
	fi
	linux	/vmlinuz-3.11.0-12-generic root=/dev/mapper/vgubuntu-root ro   kopt=root=/dev/mapper/vgubuntu-root  quiet splash $vt_handoff
	initrd	/initrd.img-3.11.0-12-generic
}

d.h. alle Werte (Festplattennummer, Partitionsnummer, UUID, usw.) passen schon ohne zusätzliche Anpassungen, da es ja der Orginaleintrag des Grub-Festplattenmenüs ist.

Diesen Menüeintrag einfach in die Datei /dev/sdb3/boot/grub/grub.cfg (= Grub-Menü meines Ubuntu-Sticks) unter die Submenü-Einträge des Stick-Grub's kopiert. Fertig war die Lösung meines Problems.

Natürlich wird die grub.cfg beim nächsten Kernel-Update wieder automatisch neu erstellt, aber als schnelle 'Zwischenlösung' hier ok.

PS: Diese Lösung ist so genial einfach, da wurmt mich eigentlich nur, daß ich nicht selbst drauf gekommen bin. Vielen Dank nochmal dafür an 'Frostschutz'.

Antworten |