[LINUX] USB-Boot mit Raspberry Pi 4 Modell B (3) LVM Edition

Erstellen Sie unter "USB-Boot mit Raspberry Pi 4 Modell B (2) Partitionserstellung" eine Basispartition auf dem USB-Massenspeicher und formatieren Sie sie mit ext4. Ich habe das Raspberry Pi OS so kopiert, wie es ist. Übrigens können Sie bei den meisten Linux-Distributionen für x86 während der Installation LVM auswählen. Es ist möglich, LVM mit Raspberry Pi 4 zu verwenden. Sie können LVM auch für die Root-Partition verwenden. Sie müssen jedoch initramfs verwenden, um es zu starten.

Bis zum letzten Mal (obwohl nicht angegeben) wurde die Installation auf einem USB-Massenspeicher auf einem PC durchgeführt. Da initramfs jedoch mit dieser Methode nicht erstellt werden kann, arbeiten wir diesmal mit Raspberry Pi OS, das auf microSD installiert ist. Machen. Beachten Sie, dass das Zielgerät von "/ dev / sdb" zu "dev / sda" wechselt.

LVM-Erstellung

Der Ort zum Erstellen einer Partition ist derselbe wie beim letzten Mal.

$ sudo gdisk -l /dev/sda
GPT fdisk (gdisk) version 1.0.3

Partition table scan:
  MBR: protective
  BSD: not present
  APM: not present
  GPT: present

Found valid GPT with protective MBR; using GPT.
:
Number  Start (sector)    End (sector)  Size       Code  Name
   1            2048          526335   256.0 MiB   0700
   2          526336      5860533134   2.7 TiB     8300

Erstellen Sie ein LVM auf der zweiten Partition. Der Name ist pi-vg, aber Sie können jeden anderen Namen verwenden.

#Erstellen Sie ein physisches LVM-Volume
$ sudo pvcreate /dev/sda2

#Volumengruppe pi-Erstellen Sie vg
$ sudo vgcreate pi-vg /dev/sda2

#Erstellen Sie ein logisches Volume
#Die Kapazität des diesmal verwendeten USB-Massenspeichers beträgt 3 TB.
#Angenommen, 8 GB werden dem Swap zugewiesen/Die Kapazität wird aus der Gesamtkapazität zurückgerechnet
$ sudo lvcreate --size 2786G --name root pi-vg
$ sudo lvcreate -l 100%FREE --name swap pi-vg

#Überprüfen Sie den aktuellen Festplattenstatus
$ lsblk /dev/sda
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda               8:0    0  2.7T  0 disk 
├─sda1            8:1    0  256M  0 part 
└─sda2            8:2    0  2.7T  0 part 
  ├─pi--vg-root 254:0    0  2.7T  0 lvm  
  └─pi--vg-swap 254:1    0  8.3G  0 lvm  

Der verwendete USB-Massenspeicher war eine Festplatte, daher habe ich eine Swap-Partition erstellt, da ich mir keine Sorgen über die Verschlechterung des Geräts durch das Schreiben von Daten machen muss. Bei der Entscheidung über die Größe des Swaps habe ich mich auf die folgenden Informationen bezogen und fast die gleiche Kapazität wie der Speicher gesichert.

Formatieren Sie den erstellten Boot, Root, Swap.

$ sudo mkfs -t vfat /dev/sda1
$ sudo mkfs -t ext4 /dev/pi-vg/root
$ sudo mkswap       /dev/pi-vg/swap

Systemdateien kopieren

Wenn Sie so etwas tun, können Sie auf die gleiche Weise wie zuvor kopieren, aber hier sparen wir diese Zeit und kopieren von der zum Booten verwendeten microSD.

$ mkdir /tmp/root
$ sudo mount /dev/pi-vg/root /tmp/root/

#Devtmpfs, die kein echtes Dateisystem sind, sysfs, proc, tmpfs,booten und
#verloren während ext4-Format erstellt+Kopieren Sie andere als gefundene Verzeichnisse
$ cd /
$ sudo cp -a bin etc home lib media mnt opt root sbin srv tmp usr var /tmp/root/
$ cd /tmp/root/
$ sudo mkdir dev sys proc run boot tmp

#Die Boot-Partition wird verwendet, um die unten beschriebenen initramfs zu erstellen./tmp/Unter der Wurzel montieren
$ sudo mount /dev/sda1 /tmp/root/boot/
$ sudo cp -a /boot/* /tmp/root/boot/

Starteinstellungen ändern

Aktualisieren Sie "cmdline.txt" und "fstab". Geben Sie Optionen für initramfs sowie Partitionsinformationen an.

# root=Zu/dev/pi-vg/Geben Sie root an
#initrd, um initramfs zu verwenden=Fügen Sie 0x01f00000 hinzu
#Wenn die Stille fehlschlägt, können Sie die Stille entfernen, um eine laufende Meldung auf dem Bildschirm anzuzeigen und die Ursache zu ermitteln.
#Die Unterbrechungsoption ist auch zum Debuggen nützlich. Weitere Informationen initramfs-tools(7)Sehen
$ cat /tmp/root/boot/cmdline.txt
console=serial0,115200 console=tty1 root=/dev/pi-vg/root initrd=0x01f00000 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait quiet splash plymouth.ignore-serial-consoles

#Überprüfen Sie nach wie vor die PARTUUID der Boot-Partition mit dem Befehl blkid und geben Sie sie an.
#Im Fall von SSD, um eine Verschlechterung des Geräts zu verhindern/dev/pi-vg/Root-Standardeinstellungen"defaults,noatime"Konkretisieren
$ cat /tmp/root/etc/fstab
proc            /proc           proc    defaults          0       0
PARTUUID=09468d30-111e-4028-8f37-16f65e497c25  /boot           vfat    defaults          0       2
/dev/pi-vg/root  /               ext4    defaults  0       1
/dev/pi-vg/swap  none            swap    sw  0       0

initramfs

Erstellen Sie "initrd.gz" in der Boot-Partition und verwenden Sie es beim Booten.

# /tmp/Verschiedene Verzeichnisse, damit Befehle unter root ausgeführt werden können/tmp/Unter der Wurzel montieren
$ sudo mount --bind /sys  /tmp/root/sys
$ sudo mount --bind /proc /tmp/root/proc
$ sudo mount --bind /dev  /tmp/root/dev

# /tmp/root/initrd zu booten.Erstellen Sie gz
$ sudo chroot /tmp/root/ apt install lvm2
$ sudo chroot /tmp/root/ mkinitramfs -o /boot/initrd.gz

# boot/config.In txt"initramfs initrd.img followkernel"Hinzufügen
$ cat /tmp/root/boot/config.txt
:
initramfs initrd.gz 0x01f00000

Am Anfang habe ich erwähnt, dass ich bei der Arbeit an einem PC keine initramfs erstellen kann, da apt install lvm2 hier nicht funktioniert. Nach der Installation des lvm2-Pakets wird der Prozess zum Erstellen von initramfs ausgeführt. Es scheint jedoch, dass die Ursache darin besteht, dass derzeit nicht die richtige Kernelversion abgerufen werden kann (überprüfen Sie dies, da ich die Details nicht befolgt habe).

##Aufräumen
$ sudo umount /tmp/root/sys /tmp/root/proc /tmp/root/dev
$ sudo umount /tmp/root/boot
$ sudo umount /tmp/root

Damit ist die Installation abgeschlossen. Sie können vom USB-Massenspeicher booten, indem Sie das Raspberry Pi-Betriebssystem herunterfahren, die microSD ausstecken und dann einschalten.

Bonus

Da es viele Schritte gibt, habe ich ein Installationsprogramm erstellt.

https://github.com/nowlinuxing/rpi4-installer


Recommended Posts

USB-Boot mit Raspberry Pi 4 Modell B (3) LVM Edition
USB-Boot auf Raspberry Pi 4 Model B.
Himbeere pi 1 Modell b, Python
Himbeer pi 1 Modell b, knotenroter Teil 17
getrpimodel: Erkennen Sie das Himbeer-Pi-Modell (A, B, B +, B2, B3 usw.) mit Python
Hallo Welt mit Raspberry Pi + Minecraft Pi Edition
Infer Custom Vision Modell mit Raspeye
Ich habe L-Chika mit Razpai 4 (Python Edition) ausprobiert.
GPS-Tracking mit Raspeye 4B + BU-353S4 (Python)
GPGPU mit Raspberry Pi
DigitalSignage mit Raspberry Pi
Maschinelles Lernen mit Raspberry Pi 4 und Coral USB Accelerator
Führen Sie die LED-Matrix interaktiv mit Raspberry Pi 3B + auf Slackbot aus
Zeigen Sie das Bild der USB-Kamera mit OpenCV von Python mit Raspeye an
Führen Sie den Python-Beispielcode BNO055 mit I2C (Raspberry Pi 3B) aus.
Port FreeRTOS auf Raspberry Pi 4B
[Raspberry Pi] Schrittmotorsteuerung mit Raspberry Pi
Verwenden Sie vl53l0x mit RaspberryPi (Python)
Servomotorsteuerung mit Raspberry Pi
USB über Ethernet mit Raspberry pi
Serielle Kommunikation mit Raspberry Pi + PySerial
Betriebssystem-Setup mit Raspberry Pi Imager
Probieren Sie L Chika mit Himbeerpi
Automatischer Programmstart beim Start mit Raspberry Pi 3B + systemd Zusammenfassung
Aufbau eines VPN-Servers mit Raspberry Pie
Probieren Sie verschiedene Linux-Distributionen mit VMware ESXi Arm Edition aus und versuchen Sie es mit einem USB-Boot
Versuchen Sie, 3 Servos mit Raspeye zu bewegen
Verwenden einer Webkamera mit Raspberry Pi
Seq2Seq (2) ~ Achtung Model Edition ~ mit Chainer
Ich habe versucht, mit Raspeye 4 (Python Edition) ein signalähnliches Signal zu erzeugen.
Protokollierung der Omron-Umgebungssensorwerte mit Raspberry Pi (USB-Typ)
Messen Sie die SIM-Signalstärke mit Raspberry Pi
Schließen Sie zwei USB-Kameras an Raspberry Pi 4 an
Haustierüberwachung mit Rekognition und Raspberry pi
Raspberry Pi Security Infrarotkamera (Python Edition)
Erstellen Sie eine Tensorflow-Umgebung mit Raspberry Pi [2020]
Normal programmieren mit Node-RED-Programmierung mit Raspberry Pi 3
Verbesserter menschlicher Sensor mit Raspberry Pi
Versuchen Sie die Objekterkennung mit Raspberry Pi 4 + Coral
Den Servomotor SG-90 mit Himbeer-Pi betreiben
Verwenden Sie einen PIR-Bewegungssensor mit Himbeer-Pi
Machen Sie einen Waschtrocknungs-Timer mit Raspberry Pi
Erstellen Sie eine OpenCV-Python-Umgebung auf Raspberry Pi B +
Bedienen Sie das Oszilloskop mit dem Raspberry Pi
Erstellen Sie eine Auto-Anzeige mit Himbeer-Pi
Protokollieren des Werts von Inkbird IBS-TH1 mit Raspberry Pi
Arbeiten mit GPS in Python für Raspberry Pi 3
Ich habe versucht, Flask auf Raspberry Pi 3 Model B + mit Nginx und uWSGI auszuführen
Discord Bot Himbeere Pi Null mit Python [Hinweis]
Medienprogrammierung mit Raspeye (Vorbereitung für Audio)
Warum DetectMultiScale () auf Raspberry Pi B + langsam ist
Genießen Sie die elektronische Arbeit mit GPIO von Raspberry Pi
MQTT Radicon Car mit Arduino und Himbeere
Schalten Sie Ihren PC mit Himbeer-Pi ein / aus
CSV-Ausgabe von Impulsdaten mit Raspberry Pi (CSV-Ausgabe)
Beobachten Sie die Futago-Meteorgruppe mit Raspberry Pi4
Einführung von Ceph mit Kubernetes auf Raspberry Pi 4B (ARM64)