Discussion:
LUKS-Image einbinden
(zu alt für eine Antwort)
Alexander Goetzenstein
2025-02-10 14:42:36 UTC
Permalink
Hallo,
ich mache regelmäßig mit dd ein Image meiner Systemplatte, die mit LUKS
verschlüsselt ist. Vor ein paar Jahren habe ich mir ein Script
zusammengestöpselt, mit dem ich das Image einbinden kann, etwa um
einzelne Dateien daraus ziehen zu können. Das hatte auch mal
funktioniert. Man ahnt es: "hatte" bedeutet, dass es das nicht mehr tut,
#!/bin/bash
## verbindet ein Festplattenimage als Verzeichnis
## hier: Verschlüsseltes LUKS-LVM auf der USB-Platte /dev/sdb2
PLATTE=sdb2
IMGPFAD='/mnt/'$PLATTE'/root/backup'
mount /dev/$PLATTE /mnt/$PLATTE
ARRAY=($(ls $IMGPFAD'/'*.img))
i=0
do
echo $i': '${ARRAY[$i]}
i=$(($i+1))
done
echo ''
echo 'Dateinummer angeben:'
read NUMMER
## -f ermittelt das erste unbenutzte Device, -P erzeugt ein partitioniertes Loop Device
losetup -f -P ${ARRAY[$NUMMER]}
for i in 6 7
do
cryptsetup open /dev/loop0p$i lupe$i
RC_CRYPT=$?
## hier muss dann das LUKS-Passwort eingegeben werden, findet sich anschließend als /dev/mapper/lupe
echo 'RC_CRYPT: '$RC_CRYPT
if [ $RC_CRYPT -eq 0 ]; then
echo 'pvscan:'
pvscan --cache -aay /dev/mapper/lupe$i
## listet die physischen Volumes im gemappten Image> fi
done
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
loop0 7:0 0 1.8T 0 loop
├─loop0p1 259:0 0 100M 0 part
├─loop0p2 259:1 0 128M 0 part
├─loop0p3 259:2 0 222.9G 0 part
├─loop0p4 259:3 0 200M 0 part
├─loop0p5 259:4 0 500M 0 part
└─loop0p6 259:5 0 1.6T 0 part
└─lupe 254:1 0 1.6T 0 crypt
├─linux-home 254:2 0 1.5T 0 lvm
├─linux-swap 254:3 0 15.5G 0 lvm
→ └─linux-root 254:4 0 50G 0 lvm
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
loop0 7:0 0 1.8T 0 loop
├─loop0p1 259:0 0 100M 0 part
├─loop0p2 259:1 0 128M 0 part
├─loop0p3 259:2 0 222.9G 0 part
├─loop0p4 259:3 0 614M 0 part
├─loop0p5 259:4 0 500M 0 part
├─loop0p6 259:5 0 200M 0 part
└─loop0p7 259:6 0 1.6T 0 part
Es handelt sich nach wie vor um dieselbe Platte, von der das Image
stammt, die Partitionierung wurde nicht geändert.
cryptsetup open /dev/loop0p6 lupe
(hier wird die Passphrase abgefragt)
pvscan --cache -aay /dev/mapper/lupe
pvscan[5026] PV /dev/mapper/lupe 254:4 is duplicate for PVID 3Va2vZcsWjpTrRYrEZRkeML90mGHL013 on 254:1 /dev/dm-1.
pvscan[5026] PV /dev/mapper/lupe failed to create online file.
dm-1 ist die Systempartition des Rechners, nicht die aus dem Image. Das
Image wurde von genau diesem Rechner gezogen, daher vermutlich die
Gleichheit. Aber wie oben geschrieben, ist die lsblk-Ausgabe sowieso
eine andere als "damals", als es noch funktionierte.

Hat jemand eine Idee, was da schiefläuft, und wie man es besser/richtig
macht?
--
Gruß
Alex
Markus Schaaf
2025-02-10 17:55:34 UTC
Permalink
is duplicate for PVID
Wenn du ein kopiertes PV auf dem selben Host einbinden möchtest,
auf dem das Original noch gemountet ist, musst du Folgendes machen:

vgimportclone -n ${orignalvgname}_bak /dev/lupe
vgchange -ay ${orignalvgname}_bak

${orignalvgname} dient nur der Illustration.

MfG
Alexander Goetzenstein
2025-02-10 18:18:26 UTC
Permalink
Hallo,
Post by Markus Schaaf
is duplicate for PVID
Wenn du ein kopiertes PV auf dem selben Host einbinden möchtest,
vgimportclone -n ${orignalvgname}_bak /dev/lupe
vgchange -ay ${orignalvgname}_bak
${orignalvgname} dient nur der Illustration.
das probiere ich gleich morgen mal aus. An welcher Stelle müsste ich das
anwenden: vor oder nach losetup?
--
Gruß
Alex
Markus Schaaf
2025-02-10 18:31:58 UTC
Permalink
Post by Alexander Goetzenstein
Hallo,
Post by Markus Schaaf
is duplicate for PVID
Wenn du ein kopiertes PV auf dem selben Host einbinden möchtest,
vgimportclone -n ${orignalvgname}_bak /dev/lupe
vgchange -ay ${orignalvgname}_bak
${orignalvgname} dient nur der Illustration.
das probiere ich gleich morgen mal aus. An welcher Stelle müsste ich das
anwenden: vor oder nach losetup?
Statt pvscan.
Alexander Goetzenstein
2025-02-11 15:56:10 UTC
Permalink
Hallo,
Post by Markus Schaaf
Post by Alexander Goetzenstein
Hallo,
Post by Markus Schaaf
is duplicate for PVID
Wenn du ein kopiertes PV auf dem selben Host einbinden möchtest,
vgimportclone -n ${orignalvgname}_bak /dev/lupe
vgchange -ay ${orignalvgname}_bak
${orignalvgname} dient nur der Illustration.
das probiere ich gleich morgen mal aus. An welcher Stelle müsste ich das
anwenden: vor oder nach losetup?
Statt pvscan.
irgendwie werde ich aus der manpage und den wenigen Erläuterungen, die
Google mir beschert hat, nicht schlau, und folgerichtig funktioniert es
Post by Markus Schaaf
PLATTE=sdb2
IMGPFAD='/mnt/'$PLATTE'/root/backup'
mount /dev/$PLATTE /mnt/$PLATTE
$IMAGE: /mnt/sdb2/root/backup/2025-02-09_22-38-22_T560B.img
Post by Markus Schaaf
losetup -f -P $IMAGE
cryptsetup open /dev/loop0p6 lupe6
vgimportclone -n loop0p6_bak /dev/lupe6
vgchange -ay loop0p6_bak
vgimportclone -n loop0p7_bak /dev/lupe6
vgchange -ay loop0p7_bak
Failed to find device /dev/lupe7.
WARNING: Not using device /dev/mapper/lupe6 for PV 3Va2vZ-csWj-pTrR-YrEZ-RkeM-L90m-GHL013.
WARNING: Not using device /dev/mapper/lupe7 for PV A3lq8K-UJ2D-PeWE-zVbc-luHX-BJE9-6zocYZ.
WARNING: PV 3Va2vZ-csWj-pTrR-YrEZ-RkeM-L90m-GHL013 prefers device /dev/mapper/cr_ata-Samsung_SSD_860_EVO_2TB_S3YVNB0K504321V-part6 because device is used by LV.
WARNING: PV A3lq8K-UJ2D-PeWE-zVbc-luHX-BJE9-6zocYZ prefers device /dev/mapper/cr_ata-Samsung_SSD_860_EVO_2TB_S3YVNB0K504321V-part7 because device is used by LV.
lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
loop0 7:0 0 1.8T 0 loop
├─loop0p1 259:0 0 100M 0 part
├─loop0p2 259:1 0 128M 0 part
├─loop0p3 259:2 0 222.9G 0 part
├─loop0p4 259:3 0 614M 0 part
├─loop0p5 259:4 0 500M 0 part
├─loop0p6 259:5 0 200M 0 part
│ └─lupe6 254:4 0 198M 0 crypt
└─loop0p7 259:6 0 1.6T 0 part
└─lupe7 254:5 0 1.6T 0 crypt
sda 8:0 0 1.8T 0 disk
├─sda1 8:1 0 100M 0 part /boot/efi
├─sda2 8:2 0 128M 0 part
├─sda3 8:3 0 222.9G 0 part
[...]

Irgendetwas muss ich wohl noch velwechsern...?

Die Samsung-SSD ist die interne "Platte", die mit der Image-Datei eine
WD, lässt sich also leicht unterscheiden.
--
Gruß
Alex
Markus Schaaf
2025-02-11 20:52:47 UTC
Permalink
Post by Markus Schaaf
cryptsetup open /dev/loop0p6 lupe6
cryptsetup open /dev/loop0p7 lupe7>> Enter passphrase for /dev/loop0p7:>> vgimportclone -n
loop0p6_bak /dev/lupe6
Post by Markus Schaaf
vgchange -ay loop0p6_bak
vgimportclone -n loop0p7_bak /dev/lupe6
^
Post by Markus Schaaf
vgchange -ay loop0p7_bak
Failed to find device /dev/lupe7.
MfG
Markus Schaaf
2025-02-11 20:54:41 UTC
Permalink
Post by Markus Schaaf
losetup -f -P $IMAGE
cryptsetup open /dev/loop0p6 lupe6
vgimportclone -n loop0p6_bak /dev/lupe6
vgchange -ay loop0p6_bak
vgimportclone -n loop0p7_bak /dev/lupe6
Du importierst 2x /dev/lupe6.
Post by Markus Schaaf
vgchange -ay loop0p7_bak
Failed to find device /dev/lupe7.
Markus Schaaf
2025-02-11 20:57:39 UTC
Permalink
Post by Markus Schaaf
Post by Markus Schaaf
losetup -f -P $IMAGE
cryptsetup open /dev/loop0p6 lupe6
vgimportclone -n loop0p6_bak /dev/lupe6
vgchange -ay loop0p6_bak
vgimportclone -n loop0p7_bak /dev/lupe6
Du importierst 2x /dev/lupe6.
Was eigentlich /dev/mapper/lupe[67] heißen müsste. Sehr seltsam.
Markus Schaaf
2025-02-10 18:09:30 UTC
Permalink
Post by Alexander Goetzenstein
ich mache regelmäßig mit dd ein Image meiner Systemplatte, die mit LUKS
verschlüsselt ist. Vor ein paar Jahren habe ich mir ein Script
zusammengestöpselt, mit dem ich das Image einbinden kann, etwa um
einzelne Dateien daraus ziehen zu können. Das hatte auch mal
funktioniert.
Unabhängig vom konkreten Problem würde ich empfehlen, ein
richtiges Backup-Programm zu benutzen. Ich bin mit Borg relativ
zufrieden.

MfG
Alexander Goetzenstein
2025-02-10 18:17:04 UTC
Permalink
Hallo,
Post by Markus Schaaf
Post by Alexander Goetzenstein
ich mache regelmäßig mit dd ein Image meiner Systemplatte, die mit LUKS
verschlüsselt ist. Vor ein paar Jahren habe ich mir ein Script
zusammengestöpselt, mit dem ich das Image einbinden kann, etwa um
einzelne Dateien daraus ziehen zu können. Das hatte auch mal
funktioniert.
Unabhängig vom konkreten Problem würde ich empfehlen, ein
richtiges Backup-Programm zu benutzen. Ich bin mit Borg relativ
zufrieden.
borg nutze ich für die Daten, aber wenn bspw. nach einem Systemupdate
die Kiste nicht mehr booten will, ist ein solches Image der einfachste
und zuverlässigste Weg. Und wenn man bei (seltenem) Bedarf einfach nur
mal nachschauen oder eine einzelne Datei wiederherstellen will, geht das
auch recht einfach -wenn es denn funktioniert. Aber das hatte es ja mal,
da will ich wieder hin.
--
Gruß
Alex
Martin Schnitkemper
2025-02-11 09:19:29 UTC
Permalink
Post by Alexander Goetzenstein
borg nutze ich für die Daten, aber wenn bspw. nach einem Systemupdate
die Kiste nicht mehr booten will,
Das ist mir schon ewig nicht mehr passiert.
Post by Alexander Goetzenstein
ist ein solches Image der einfachste
und zuverlässigste Weg.
Bevor ich ein Image zurück lade, suche ich lieber nach der Fehlerursache.
Post by Alexander Goetzenstein
Und wenn man bei (seltenem) Bedarf einfach nur
mal nachschauen oder eine einzelne Datei wiederherstellen will, geht das
auch recht einfach -wenn es denn funktioniert. Aber das hatte es ja mal,
Das geht mit borg auch:
| borg mount /path/to/repo::archive-name
--
‣ Powered by Arch Linux x86_64 🐧 Kernel: 6.13.1-arch2-1 | KDE-Plasma 6.2.5
‣ Installed 4076 days ago, up 2 days, 32 minutes
‣ +++ Vom Skirockkonto: Schotte bezahlt Winterkleidung +++
Alexander Goetzenstein
2025-02-11 15:27:35 UTC
Permalink
Hallo,
Post by Martin Schnitkemper
Post by Alexander Goetzenstein
borg nutze ich für die Daten, aber wenn bspw. nach einem Systemupdate
die Kiste nicht mehr booten will,
Das ist mir schon ewig nicht mehr passiert.
mir zuletzt letzten Herbst, nach einem zypper dup
Da wurde nicht einmal grub noch gefunden. Zurückspielen des Images war
dann einfach und erfolgreich.
Post by Martin Schnitkemper
Post by Alexander Goetzenstein
ist ein solches Image der einfachste
und zuverlässigste Weg.
Bevor ich ein Image zurück lade, suche ich lieber nach der Fehlerursache.
Wenn man die Zeit dafür hat.
Wenn man es einfach und zuverlässig haben will, ist ein Image, das man
zurückspielen kann, nicht verkehrt. Außerdem deckt es etwa auch
Partitionierungsfehler und ähnlichen schwerer zu behandelnden Unbill ab.
Post by Martin Schnitkemper
Post by Alexander Goetzenstein
Und wenn man bei (seltenem) Bedarf einfach nur
mal nachschauen oder eine einzelne Datei wiederherstellen will, geht das
auch recht einfach -wenn es denn funktioniert. Aber das hatte es ja mal,
| borg mount /path/to/repo::archive-name
Das ist aber nur ein Nebenschauplatz. Die Nutzdaten sichere ich bei
jeder An- und Abmeldung und öfter auch mal zwischendurch mit unison gen
Server, von dort jede Nacht mit borg. Das System sichere ich aber nur
vor dem wöchentlichen Update-Lauf, da sich sonst nichts ändert. Dazu
boote ich von einer externen Platte, auf der auch gleich das Image Platz
findet. Wenn beim anschließenden Update, wie aktuell, nur eine einzige,
leicht zu identifizierende Datei flöten gegangen ist, kann man das
leicht reparieren, indem man sie aus dem sowieso gerade frisch
erstellten Image zieht. Das war zuletzt vor etwa drei Jahren so, und
damals muss es funktioniert haben. Dumm nur, dass ich mich so selten
damit beschäftige, dass ich in der Zwischenzeit vieles wieder vergessen
habe...

Die Datei, die den aktuellen Anlass gegeben hat, habe ich inzwischen aus
anderer Quelle bezogen, aber ich will mein Script reparieren, damit ich
nächstes mal (in ein paar Jahren...) nicht wieder dumm dastehe.

Soviel zur Erläuterung meiner Hinter- und Beweggründe, nur nebenbei.
--
Gruß
Alex
Loading...