Frage:
Kann die Himbeere von einer LVM-Root-Partition booten?
starfry
2013-04-24 12:13:40 UTC
view on stackexchange narkive permalink

Bevor ich anfange, werde ich sagen, dass ich dies auch im Rpi-Forum gepostet habe. Normalerweise mache ich keine Cross-Posts, aber nachdem ich es versucht habe und nichts bekommen habe, bin ich zu meinem bevorzugten Wissenszentrum gekommen.

Ich versuche nur, einen Pi mit einem großen zu bekommen Festplatte und planen, LVM zu verwenden. Ich gehe davon aus, dass sich die Root-Partition außerhalb eines LVM-Schemas befinden muss. Ich dachte, ich würde hier nur nachfragen, um meine Gedanken zu bestätigen.

Die Art und Weise, wie ich x86 mit root-on-LVM starte, erfolgt über Eine Initrd, die den erforderlichen lvm2 -Hook enthält. Wenn Sie eine Initrd erstellen, verwenden Sie das Tool mkinitcpio .

Was ich über Google entdeckt habe und experimentieren: Das linux -Paket bringt mkinitcpio auf x86. Auf dem Rpi ist das linux -Paket linux-raspberrypi und dies hat keine mkinitcpio als Abhängigkeit (es wurde tatsächlich explizit entfernt https://github.com/archlinuxarm/PKGBUILDs/pull/218). Ich habe auch viel über Leute in verschiedenen Distributionen gelesen, die Schwierigkeiten haben, ein initrd auf dem Pi zu verwenden. Vielleicht funktioniert es sowieso nicht und das ist der Grund dafür, dass mknintcpio nicht verwendet wird.

Also, würde jemand mehr wissen Möchtest du ihre Erfahrungen mit mir teilen? Ist es möglich, den Pi mit einer Root-Partition zu starten, die sich auf einem LVM-Volume befindet?

(Ich spreche hier von der Root-Partition, ich beziehe die Boot-Partition nicht in diese ein - das befindet sich auf der SD-Karte und ich weiß, dass es dort sein muss. Ich habe alles andere auf eine andere Festplatte gelegt, die mit dem USB verbunden ist.)

Vier antworten:
#1
+9
starfry
2013-04-30 16:46:24 UTC
view on stackexchange narkive permalink

Hier wird erläutert, wie Sie den Raspberry Pi in einem System mit der Root-Partition auf einem LVM-Volume starten können. LVM ist Logical Volume Management .

Konfiguration

Damit der frühe Start auf ein LVM-Volume zugreifen kann, muss der Kernel das LVM laden können Dies erfordert, dass eine anfängliche Ramdisk (initrd) konfiguriert und zur Startkonfiguration hinzugefügt wird. Glücklicherweise ist dies recht einfach.

Kernel-Unterstützung

Um eine anfängliche Ramdisk verwenden zu können, muss der Kernel mit initrd-Unterstützung erstellt werden. Der Standard-Raspberry Pi ArchLinux-Kernel ist. Überprüfen Sie jedoch Folgendes:

  # zgrep INITRD /proc/config.gzCONFIG_BLK_DEV_INITRD=y 

Es ist nicht erforderlich, einen benutzerdefinierten Kernel zu erstellen wenn die Option CONFIG_BLK_DEV_INITRD aktiviert ist. Das Erstellen eines benutzerdefinierten Kernels geht über den Rahmen dieser Antwort hinaus.

Wenn in / proc kein config.gz vorhanden ist, führen Sie zunächst Folgendes aus:

  sudo modprobe configs  

Initrd erstellen

Installieren Sie zunächst das Paket mkinitcpio :

  # pacman -S mkinitcpio  

Bearbeiten Sie anschließend /etc/mkinitcpio.conf , um den Hook lvm2 hinzuzufügen. Suchen Sie die Zeile HOOKS = und ändern Sie sie entsprechend:

  HOOKS = "base udev autodetect modconf block lvm2 Dateisystemtastatur fsck"  

Generieren Sie dann die initrd:

  # mkinitcpio -g / boot / initrd  

Ändern Sie die Boot-Konfiguration

Der Boot des Raspberry Pi ist konfiguriert in zwei Dateien, /boot/config.txt und /boot/cmdline.txt . Beide müssen geändert werden, um die initrd zu installieren.

Fügen Sie zunächst die folgende Zeile am Ende der Datei `/boot/config.txt 'hinzu:

  initramfs initrd 0x01f00000  

Beachten Sie, dass der initramfs-Eintrag im Gegensatz zu den anderen Elementen in dieser Datei kein Gleichheitszeichen = enthält.

Ändern Sie als Nächstes die Datei /boot/cmdline.txt , um

  hinzuzufügen ... root = / dev / mmcblk0p1 initrd = 0x01f00000 rootfstype = ext4 .. .  

Fügen Sie außerdem ein 'rw' hinzu, da das Rootfs sonst schreibgeschützt gemountet wird.

Neustart

Mit der obigen Konfiguration Neustart. Wenn alles in Ordnung ist, sollte das System wie zuvor gesichert werden, hat jedoch die ursprüngliche Ramdisk während des Startvorgangs verwendet. Der nächste Schritt besteht darin, die aktuelle Root-Partition auf ein LVM-Volume zu verschieben.

Root-Partition nach LVM verschieben

In diesem Beispiel wird davon ausgegangen, dass Sie eine Ersatzfestplatte angeschlossen haben Der USB-Stick des RPi, der als / dev / sda erkannt wird und auf dem sich eine Partition für LVM befindet, z. B. / dev / sda1 . Wir werden die vorhandene Root-Partition in ein neues Volume kopieren, das im LVM erstellt wurde.

LVM einrichten

LVM einrichten: Erstellen Sie eine neue Volume-Gruppe und innerhalb es ist ein logisches Volume für die Root-Partition:

  # pvcreate / dev / sda1 # vgcreate storage / dev / sda1 # lvcreate -L 5G-Speicher -n root  

Dadurch wird eine Volume-Gruppe mit dem Namen storage erstellt und die Partition / dev / sda1 hinzugefügt. Es wird ein logisches 5-Gbit-Voulume mit dem Namen root erstellt, das dann formatiert und wie eine normale Partition verwendet werden kann:

  # mkfs.ext4 / dev / storage / root # mount / dev / storage / root / mnt  

Kopieren Sie das aktuelle Stammverzeichnis darauf:

  # rsync --progress -axv / / mnt /  

Konfigurieren des Startvorgangs

Das Konfigurieren des Startvorgangs ist eine einfache Sache, indem Sie den Speicherort der Root-Partition in /boot/cmdline.txt ändern . Ändern Sie root = / dev / mmcblk0p1 so, dass es auf das neue Volume zeigt: root=/dev/storage/root.

Starten Sie erneut und wenn alles gut geht, sollte das System mit seiner Root-Partition auf dem LVM-Volume neu starten.

Diese Antwort hat mir geholfen, eine UUID für mein Root-Dateisystem auf einem USB-Laufwerk zu verwenden. Ich habe mich jedoch gefragt, was genau die Nummer (Adresse) in "initramfs initrd 0x00f00000" bedeutet.
Die Adresse "0x00f00000" ist die Adresse, unter der das initramfs-Bild in den Speicher geladen wird.
Ich verstehe, aber warum dort? Kann der Kernel (?) Nicht herausfinden, wo er sich im Speicher befindet, um ihn zu laden?
lvm ist eigentlich logisches Volume-Management. nur eine Nisse da.
Beachten Sie die jüngste Bearbeitung durch @Christopher, um die Initramfs-Ladeadresse aufgrund der zunehmenden Kernelgröße zu ändern. Siehe https://archlinuxarm.org/forum/viewtopic.php?f=31&t=8304.
Diese Anweisungen sind veraltet. pacman ist das "pacman" -Spiel und nicht standardmäßig installiert und kein Befehlszeilenprogramm.
`pacman` ist das Paketinstallationsprogramm für Arch Linux, das in diesem Beispiel verwendet wird.
#2
+3
PiR
2014-09-28 02:14:19 UTC
view on stackexchange narkive permalink

Auf raspbian ist es möglich, die initramfs mit dem Befehl mkinitramfs zu erstellen.

Ich habe erfolgreich eine lvm-Root-Partition mit den folgenden Schritten gestartet:

  1. create the lvm-Partition
  2. kopiert die tatsächliche Root-Partition auf die lvm-Partition (ich habe mit der Root-Partition ro neu gestartet und mit dem Befehl dd kopiert)

    • erstelle eine lvm-Partition ( größer als die tatsächliche Root-Partition):
      sudo lvcreate -n root -L 5G 3 TB
    • Ro-Option in / etc / fstab für Root-Partition hinzufügen
      / dev / mapper / 3 TB-root / ext4, noatime, ro 0 1
    • Ro-Option in /boot/cmdline.txt hinzufügen
      dwc_otg.lpm_enable = 0 console = ttyAMA0,115200 kgdboc = ttyAMA0,115200 console = tty1 root = / dev / mmcblk0p2 rootfstype = ext4 lift = Deadline rootwait ro
    • Neustart: Die Root-Partition ist jetzt schreibgeschützt und kann sicher kopieren:
      sudo dd bs = 1M if = / dev / mmcblk0p2 von = / dev / 3 TB / root
    • Partitionsgröße erhöhen:
      sudo e2fsck -f / dev / 3 TB / root && sudo resize2fs / dev / 3 TB / root
    • Remount-Root-Dateisystem in rw:
      sudo mount -o remount, rw /
  3. chroot in der lvm-root-Partition sudo mkdir / mnt / rootudo mount / dev / mapper / 3 TB-root / mnt / rootudo mount -t proc / proc / mnt / root / procsudo mount -o bind / dev / mnt / root / devsudo mount -o bind / dev / pts / mnt / root / dev / ptssudo mount -t sysfs / sys / mnt / root / syssudo chroot / mnt / root

  4. change / etc / fstab: Ersetze / dev / mmcblk0p2 durch den lvm-Pfad (für mich ) / dev / mapper / 3TB-root ) und entfernen Sie die Option ro
  5. , fügen Sie diesen Patch hinzu https://bugs.debian.org/cgi-bin/bugreport.cgi?msg= 10; Dateiname = lvm2_wait-lvm.patch; att = 1; Fehler = 568838 zu / usr / share / initramfs-tools / scripts / local-top / lvm2
  6. füge "copy_exec / bin" hinzu / grep "in / usr / share / initramfs-tools / hooks / lvm2 (da grep im vorherigen Patch verwendet wird)
  7. mount / boot
  8. create die initramfs: sudo mkinitramfs -o /boot/initramfs.gz
  9. sieht die Größe von /boot/initramfs.gz aus und konvertiert sie in hexa
  10. in /boot/config.txt add dies: initramfs initramfs.gz 0xa00000
  11. Entfernen Sie die Option ro in /boot/cmdline.txt und fügen Sie diesen root = / dev / mapper / 3 TB-root initrd = 0xa00000 hinzu , 0x43b692 wobei root / dev / mmcblk0p2 durch den lvm-Pfad ersetzt und 0x43b692 die Hexa-Größe von /boot/initramfs.gz ist Sie sollten sich auf der lvm-Root-Partition befinden.
Die Schritte 5-6 sind nicht mehr erforderlich. Das Hinzufügen von "rootdelay = 5" (oder mehr) zu /boot/cmdline.txt, wenn Geräte lange angezeigt werden sollen, reicht aus. Die Verwendung des UUID-Pfads (/ dev / VG / LV) für lvm-Geräte wird ebenfalls nicht unterstützt. Die Verwendung des Mapper-Pfads (/ dev / mapper / VG-LV) ist erforderlich. Schritt 10: Ich konnte die Initramfs nicht unter der Adresse 0xa00000 laden und musste stattdessen 0xa00f00000 verwenden, möglicherweise aufgrund des Wachstums der Kernel-Image-Größe. Schließlich ist es mit der aktuellen Firmware nicht mehr erforderlich, die Größe des Initramfs-Images als anzugeben Der Pi-Bootloader übergibt es an den Kernel selbst. initrd = 0xaddr ist ausreichend.
#3
+2
Krzysztof Adamski
2013-04-24 17:59:53 UTC
view on stackexchange narkive permalink

Es gibt zwei Möglichkeiten, wie Sie initramfs mit dem Kernel verwenden können. Es kann in das Kernel-Image integriert oder als separate Datei geladen werden.

Eingebettete Initramfs

Der erste Modus funktioniert definitiv, da er von kernel_emergency.img verwendet wird. Um diese Methode verwenden zu können, müssen Sie Ihr eigenes Kernel-Image mit den folgenden Konfigurationsoptionen kompilieren:

  CONFIG_BLK_DEV_INITRD = yCONFIG_INITRAMFS_SOURCE = "/ path / to / your / initramfs / content"  

Weitere Informationen dazu finden Sie in dieser Antwort.

Externe Initramme

Der zweite Modus ist die Verwendung separate initramfs -Datei. Dies hat den Vorteil, dass der Kernel nicht jedes Mal neu kompiliert werden muss, wenn Sie Ihre initramfs ändern möchten. Sie benötigen jedoch Hilfe vom Bootloader, um es verwenden zu können.

Im Juli 2012 konnte ich mit Dom von Broadcom zusammenarbeiten, um einige Probleme mit dem RaspberryPi-Bootloader zu beheben, und dies ermöglichte die Verwendung des externen initramfs ohne probleme. Sofern es keine Regression gibt, sollte es weiterhin funktionieren.

Leider benötigen Sie auch einen benutzerdefinierten Kernel, um diesen Modus zu verwenden. CONFIG_BLK_DEV_INITRD = y sollte aktiviert sein. Sie sollten Ihre iniramfs -Datei auf der / boot / -Partition ablegen und diese Zeile zu config.txt hinzufügen:

  initramfs initramfs.gz  

( initramfs.gz sollte in Ihren Dateinamen geändert werden). Beachten Sie, dass diese Option kein = -Zeichen enthält.

Natürlich müssen Sie auch eine tatsächliche initramfs -Datei erstellen. Wenn sich Ihr initramfs -Inhalt im Verzeichnis / tmp / initramfs befindet, sollten Sie die folgenden Befehle ausführen:

  cd / tmp / initramfsfind. -print0 | cpio --null -ov --format = newc | gzip -9 > /boot/initramfs.gz 

Der schwierige Teil

Unabhängig von der verwendeten Methode müssen Sie Ihren initramfs -Inhalt erstellen. Während alles, was ich oben geschrieben habe, verteilungsunabhängig ist, hängt das Erstellen von tatsächlichen initramfs irgendwie von der Verteilung ab, die Sie verwenden. Ich kenne Arch Linux nicht und habe keine automatisierte Methode verwendet. Ich mache das manuell:

  1. Erstelle ein dev -Verzeichnis und fülle es mit wichtigen Dateien ( console , null , tty , sda * ). Sie können sie aus Ihrem Verzeichnis / dev / kopieren.
  2. Erstellen Sie einige wichtige Verzeichnisse ( / proc / , / sys / , /mnt/root).
  3. Kompilieren Sie die Busybox mit lvm-Unterstützung und installieren Sie sie in Ihrem initramfs -Verzeichnis.
  4. Schreiben Sie ein Startskript (mit dem Namen init ) mit :

      #! / bin / Busybox shmount -t proc none / procmount -t sysfs none / syslvm vgscan --mknodeslvm vgchange -ay VGNAME mount -o ro / dev / VGNAME / LVNAME / mnt / rootumount / procumount / sysexec switch_root / mnt / root / sbin / init  
    ol>

    Hinweis: Diese Anweisung wird hier von meinem Hinterkopf aus eingegeben, sodass sie möglicherweise nicht vollständig ist. Es ist hauptsächlich hier, damit Sie die Idee verstehen können. Es ist auch möglich, dass Sie in Ihrer Distribution weitere Aufgaben ausführen müssen.

Vielen Dank für dieses Detail. Ich werde das auf jeden Fall ausprobieren und berichten - wahrscheinlich morgen.
Ich habe das dank einiger Ihrer Hinweise zum Laufen gebracht. Es ist eigentlich sehr einfach, ein initrd unter ArchLinux zum Laufen zu bringen. Ich habe es in einer separaten Antwort geschrieben.
#4
+2
Ingo
2018-02-01 04:21:38 UTC
view on stackexchange narkive permalink

Diese Antwort ist veraltet. Hier ist eine einfachere Lösung.

Für die Entwicklung mache ich gerne Schnappschüsse, damit ich die ursprüngliche Installation problemlos wiederherstellen kann, ohne die SD-Karte erneut zu flashen. Dazu müssen wir LVM (Logical Volume Management) auf der SD-Karte einrichten und die Root-Partition darauf verschieben. Mit LVM ist es auch sehr einfach, Backups auf dem laufenden System zu erstellen. Für all dies müssen Sie das Folgende nur einmal machen. Daher habe ich diese Antwort gegeben, um alle Informationen auf dieser Seite aus heutiger Sicht zusammenzufassen.

Das Problem ist, dass wir mit LVM-Treibern ein initramfs erstellen müssen, damit die Raspi booten kann und mounten Sie die Root-Partition, die sich auf dem logischen Volume befindet. Das Erstellen der initramfs muss natürlich auf einem Betriebssystem mit ARM-Prozessor erfolgen. Ich kann das nicht mit myPC machen, es ist eine Intel. Daher muss ich die Raspi nur mit einer temporären Installation starten, um die initramfs zu erstellen. Anschließend werden wir diese Installation entfernen und die Volume-Gruppe mit ihrem Platz erweitern, sodass wir den gesamten Speicherplatz für unsere Arbeitsinstallation haben.

SD-Karte mit LVM vorbereiten

Hier bereite ich einen Raspian vor Lite Bild zum Beispiel. Möglicherweise müssen Sie die lvm-Verwaltungstools lvm2 installieren.

Flash-SD-Karte

  pc ~ $ sudo -Espc ~ # dd if = Downloads /2017-11-29-raspbian-stretch-lite.img von = / dev / sdd bs = 4M conv = fsync  

Erstellen Sie eine zusätzliche LVM-Partition mit 3 GB

  pc ~ # parted / dev / sdd print [..] Anzahl Start Ende Größe Typ Dateisystem Flags 1 4194kB 47,7MB 43,5MB primäres Fett32 lba 2 48,2MB 1858MB 1810MB primäres ext4pc ~ # parted / dev / sdd mkpart primary 1858MB 100% pc ~ # parted / dev / sdd set 3 lvm onpc ~ # pvcreate / dev / sdd3pc ~ # vgcreate rpi_vg / dev / sdd3pc ~ # lvcreate rpi_vg --name root_lv --size 3Gpc ~ # mkfs.e / dev / mapper / rpi_vg-root_lvpc ~ # e2label / dev / mapper / rpi_vg-root_lv rootfs  

Mounten Sie die Partitionen und kopieren Sie die Root-Partition auf die LVM-Partition.

  pc ~ # mkdir / mnt / {sdd1, sdd2, root_lv} pc ~ # mount / dev / sdd1 / mnt / sdd1pc ~ # mount / dev / sdd2 / mnt / sdd2pc ~ # mount / dev / mapper / rpi_vg-root_lv / mnt / root_lvpc ~ # rsync -ax / mnt / sdd2 / / mnt / root_lv /  

Ändern Sie den Gerätenamen in cmdline.txt für die Root-Partition in / dev / mmcblk0p2 und in etc / fstab in / dev / mmcblk0p1 und / dev / mmcblk0p2 aufgrund dieses Problems mit Gerätenamen für die Root-Partition.

Bereinigen

  pc ~ # umount / mnt / {sdd1, sdd2, root_lv} pc ~ # e2fsck -f / dev / sdd2pc ~ # e2fsck -f / dev / mapper / rpi_vg-root_lvpc ~ # rmdir / mnt / {sdd1, sdd2, root_lv} pc ~ # exitpc ~ $  

Initramfs mit temporärer Installation erstellen

Starten Sie die SD-Karte in einer Raspi.

Nach der Anmeldung auf dem raspberrypi zuerst lvm2 installieren und neu starten, um den Effekt zu erzielen. Seien Sie geduldig, wenn es manchmal etwas länger dauert. Es gibt viele Bereitstellungen, die mit Timeout aufgehoben werden müssen.

  raspberrypi ~ $ sudo apt install lvm2raspberrypi ~ $ sudo systemctl reboot  

Nach dem Anmelden chroot in root_lv und erstellen Sie die initramfs mit mkinitramfs .

  pi @ raspberrypi ~ $ ls / dev / mapper / rpi_vg-root_lv / dev / mapper / rpi_vg-root_lv  

Geben Sie die Kernel-Pseudodateien an das Chroot-System weiter.

  raspberrypi ~ $ sudo -Esraspberrypi ~ # mount / dev / mapper / rpi_vg-root_lv / mnt / raspberrypi ~ # cd / mntraspberrypi ~ # mount / dev / mmcblk0p1 boot / raspberrypi ~ # mount -t proc / proc procraspberrypi ~ # mount -o bind / dev devraspberrypi ~ # mount -o bind / dev / pts dev / ptsraspberrypi ~ # mount -t sysfs / sys sysraspberrypi ~ # chroot / mnt /  

Installieren Sie `lvm2´ auch in diesem System:

  raspberrypi ~ # apt install lvm2  

Fügen Sie diese Zeile zu /boot/config.txt hinzu, ohne = !:

  initramfs initramfs.gz  

Korrigieren Sie dann die Gerätenamen für die Root-Partition wie folgt:

  raspberrypi ~ # cat /boot/cmdline.txtdwc_otg.lpm_enable=0 console = serial0,115200 console = tty1 root = / dev / mapper / rpi_vg-root_lv rootfstype = ext4 Elevator = Deadline fsck.repair = yes rootwaitraspberrypi ~ # cat / etc / fstabproc / proc proc Standardwerte 0 0 / dev / mmcblk0p1 / boot vfat defaults 0 2 / dev / mapper / rpi_vg-root_lv / ext Standardeinstellungen, mittags 0 1raspberrypi ~ #  

Jetzt können wir den initramfs :

  raspberrypi ~ # mkinitramfs -o erstellen /boot/initramfs.gz  

Neustart

  raspberrypi ~ # exitraspberrypi ~ # exitraspberrypi ~ $ sudo systemctl reboot  

Arbeiten Sie mit der endgültigen Installation

Überprüfen Sie nach der Anmeldung, ob wir auf /dev/mapper/rpi_vg-root_lv:

  raspberrypi ~ $ gemountet sind lsblkNAME MAJ: MIN RM GRÖSSE RO TYP MONTAGE POINTmmcblk0 179: 0 0 7.5G 0 disk├─mmcblk0p1 179: 1 0 41.5M 0 part / boot├─mmcblk0p2 179: 2 0 1.7G 0 part└─mmcblk0p3 179: 3 0 5.8G 0 part └─rpi_vg-root_lv 254 : 0 0 3G 0 lvm / raspberrypi ~ $  

Jetzt können wir die Partition aus der temporären Installation zur Volumengruppe hinzufügen, um damit unser logisches Volume für dieses System oder für Snapshots zu erweitern

  raspberrypi ~ $ sudo -Esraspberrypi ~ # pvcreate / dev / mmcblk0p2raspberrypi ~ # vgextend rpi_vg / dev / mmcblk0p2raspberrypi ~ # pvs PV VG Fmt Attr 1,68 g 1,68 g / dev / mmcblk0p3 rpi_vg lvm2 a-- 5,78 g 2,78 graspberrypi ~ #  

Wenn Sie jedoch genügend Speicherplatz auf Ihrer SD-Karte haben, empfiehlt es sich, die Installation auf / dev / mmcblk0p2 unberührt zu lassen. Manchmal habe ich nach einem Update der funktionierenden Installation unter / dev / mmcblk0p3 vergessen, sudo mkinitramfs -o /boot/initramfs.gz zu verwenden, um auch die initramfs zu aktualisieren, sodass der Start fehlschlägt. Ein Neustart in die Rettungspartition unter / dev / mmcblk0p2 und die Neuerstellung von initramfs helfen.

Aktualisieren Sie die Installation.

  raspberrypi ~ # apt updateraspberrypi ~ # apt full-upgraderaspberrypi ~ # mkinitramfs -o /boot/initramfs.gzraspberrypi ~ # apt cleanraspberrypi ~ # exitraspberrypi ~ $ sudo systemctl reboot  

Schnappschüsse und Backups erstellen

Anmelden. Jetzt sollten wir unseren ersten Schnappschuss von dieser Basisinstallation machen, damit wir jederzeit darauf zurückgreifen können:

  raspberrypi ~ $ sudo lvcreate --snapshot --name rpi_base - Größe 3G rpi_vg / root_lvraspberrypi ~ $ sudo lvs LV VG Attr LSize Pool Ursprungsdaten% Meta% Verschieben Protokoll Cpy% Sync Konvertieren root_lv rpi_vg owi-aos --- 3,00 g rpi_base rpi_vg swi-as --- 3,00 g root_lv 0,00raspberrypi ~ $  

Schnappschuss zurücksetzen und entfernen (!). Sie sollten es sofort danach erneut erstellen.

  raspberrypi ~ $ sudo lvconvert --merge rpi_vg / rpi_baseraspberrypi ~ $ sudo systemctl Neustart  

Seien Sie geduldig! Es braucht eine lange Zeit. Schalten Sie niemals Ihre Raspi aus.

Anmelden

  raspberrypi ~ $ sudo lvcreate --snapshot --name rpi_base - Größe 3G rpi_vg / root_lv  

Zum Festschreiben löschen Sie einfach den Snapshot:

  raspberrypi ~ $ sudo lvremove rpi_vg / rpi_base  

So erstellen Sie ein Backup:
Erstellen Sie einfach einen Schnappschuss, mounten Sie ihn und sichern Sie ihn, z mit der Basisinstallation

  raspberrypi ~ $ sudo mount / dev / mapper / rpi_vg-rpi_base / mnt / raspberrypi ~ $ tar -czf - -C / mnt / ./ | ssh backup-server dd von = raspi.tar.gz bs = 10k  
Ihre Anweisungen sind zu verwirrend. Ich habe bereits einen Raspberrian eingerichtet. Ich habe externe USB-Laufwerke mit lvm. Ich möchte raspberrian nur anweisen, mit meiner lvm-Partition als root zu booten. Sie kommen weit über den Ort hinaus, an dem Sie initramfs.gz verwenden, bevor Sie erwähnen, dass Sie vergessen haben, uns zu sagen, dass wir es erstellen sollen. In welchem ​​Schritt erstelle ich es? Wie konfiguriere ich es zum Laden des lvm2-Moduls? Es ist wahrscheinlich einfacher, das zu erraten, als diese Antwort zu interpretieren.
@user6856 Wie in der ersten Zeile erwähnt: Diese Antwort ist veraltet. Können wir bitte über eine [einfachere Lösung] sprechen (https://raspberrypi.stackexchange.com/questions/85958/easy-backups-and-snapshots-of-a-running-system-with-lvm)?


Diese Fragen und Antworten wurden automatisch aus der englischen Sprache übersetzt.Der ursprüngliche Inhalt ist auf stackexchange verfügbar. Wir danken ihm für die cc by-sa 3.0-Lizenz, unter der er vertrieben wird.
Loading...