[LINUX] Démarrage USB avec Raspberry Pi 4 modèle B (3) édition LVM

Dans "Démarrage USB avec création de partition Raspberry Pi 4 modèle B (2)", créez une partition de base sur le stockage de masse USB et formatez-la avec ext4. J'ai copié le système d'exploitation Raspberry Pi tel quel. À propos, la plupart des distributions Linux pour x86 vous permettent de choisir LVM lors de l'installation. Il est possible d'utiliser LVM avec Raspberry Pi 4. Vous pouvez également utiliser LVM sur la partition racine. Cependant, vous devez utiliser initramfs pour le démarrer.

Jusqu'à la dernière fois (bien que non spécifié), l'installation sur le stockage de masse USB a été effectuée sur un PC, mais comme initramfs ne peut pas être créé avec cette méthode, cette fois nous travaillerons à partir du système d'exploitation Raspberry Pi installé sur microSD. Faire. Notez que le périphérique cible passera de / dev / sdb à dev / sda.

Création LVM

L'endroit pour créer une partition est le même que la dernière fois.

$ 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

Créez un LVM sur la deuxième partition. Le nom est «pi-vg», mais vous pouvez utiliser n'importe quel autre nom.

#Créer un volume physique LVM
$ sudo pvcreate /dev/sda2

#Groupe de volumes pi-Créer vg
$ sudo vgcreate pi-vg /dev/sda2

#Créer un volume logique
#La capacité du stockage de masse USB utilisé cette fois est de 3 To.
#En supposant que 8 Go seront alloués au swap/La capacité est calculée à partir de la capacité totale
$ sudo lvcreate --size 2786G --name root pi-vg
$ sudo lvcreate -l 100%FREE --name swap pi-vg

#Vérifiez l'état actuel du disque dur
$ 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  

Le stockage de masse USB utilisé était un disque dur, j'ai donc créé une partition de swap car je n'ai pas à m'inquiéter de la détérioration de l'appareil due à l'écriture de données. Pour décider de la taille du swap, je me suis référé aux informations suivantes et j'ai obtenu presque la même capacité que la mémoire.

Formatez le démarrage, la racine et le swap créés.

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

Copier les fichiers système

Si vous faites quelque chose comme ça, vous pouvez copier de la même manière qu'avant, mais ici nous allons enregistrer ce temps et copier à partir de la microSD utilisée pour le démarrage.

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

#Devtmpfs qui n'est pas un vrai système de fichiers, sysfs, proc, tmpfs,démarrage et
#perdu créé au format ext4+Copier les répertoires autres que ceux trouvés
$ 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

#La partition de démarrage est utilisée pour créer les initramfs décrits ci-dessous./tmp/Monter sous la racine
$ sudo mount /dev/sda1 /tmp/root/boot/
$ sudo cp -a /boot/* /tmp/root/boot/

Modifier les paramètres de démarrage

Mettez à jour cmdline.txt et fstab. Spécifiez les options pour initramfs ainsi que les informations de partition.

# root=À/dev/pi-vg/Spécifiez la racine
#initrd pour utiliser initramfs=Ajouter 0x01f00000
#S'il ne démarre pas, vous pouvez supprimer silencieux pour afficher un message en cours d'exécution à l'écran pour aider à identifier la cause.
#L'option break est également utile pour le débogage. Pour plus d'informations initramfs-tools(7)Voir
$ 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

#Comme précédemment, vérifiez le PARTUUID de la partition de démarrage avec la commande blkid et spécifiez-le.
#Dans le cas d'un SSD, pour éviter la détérioration de l'appareil/dev/pi-vg/valeurs par défaut de la racine"defaults,noatime"Spécifier
$ 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

Créez ʻinitrd.gz` dans la partition de démarrage et utilisez-le au moment du démarrage.

# /tmp/Différents répertoires pour que les commandes puissent être exécutées sous root/tmp/Monter sous la racine
$ sudo mount --bind /sys  /tmp/root/sys
$ sudo mount --bind /proc /tmp/root/proc
$ sudo mount --bind /dev  /tmp/root/dev

# /tmp/root/initrd pour démarrer.Créer gz
$ sudo chroot /tmp/root/ apt install lvm2
$ sudo chroot /tmp/root/ mkinitramfs -o /boot/initrd.gz

# boot/config.En txt"initramfs initrd.img followkernel"Ajouter
$ cat /tmp/root/boot/config.txt
:
initramfs initrd.gz 0x01f00000

Au début, j'ai mentionné que je ne peux pas créer d'initramfs lorsque je travaille sur un PC, car ʻapt install lvm2` ici ne fonctionne pas. Après avoir installé le paquet lvm2, le processus de création d'initramfs s'exécute, mais il semble que la cause soit que la version correcte du noyau ne peut pas être obtenue pour le moment (vérifiez-la car je n'ai pas suivi les détails).

##Nettoyer
$ sudo umount /tmp/root/sys /tmp/root/proc /tmp/root/dev
$ sudo umount /tmp/root/boot
$ sudo umount /tmp/root

Ceci termine l'installation. Vous pouvez démarrer à partir du stockage de masse USB en arrêtant le système d'exploitation Raspberry Pi, en débranchant la microSD, puis en l'allumant.

prime

Puisqu'il y a plusieurs étapes, j'ai créé un installateur.

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


Recommended Posts

Démarrage USB avec Raspberry Pi 4 modèle B (3) édition LVM
Démarrage USB sur Raspberry Pi 4 modèle B
raspberry pi 1 modèle b, python
Raspberry pi 1 modèle b, partie rouge noeud 17
getrpimodel: Reconnaître le modèle Raspberry Pi (A, B, B +, B2, B3, etc.) avec python
Bonjour le monde avec Raspberry Pi + Minecraft Pi Edition
Modèle Infer Custom Vision avec Raspeye
J'ai essayé L-Chika avec Razpai 4 (édition Python)
Suivi GPS avec Raspeye 4B + BU-353S4 (Python)
GPGPU avec Raspberry Pi
DigitalSignage avec Raspberry Pi
Apprentissage automatique avec Raspberry Pi 4 et Coral USB Accelerator
Exécutez la matrice LED de manière interactive avec Raspberry Pi 3B + sur Slackbot
Afficher l'image de la caméra USB avec OpenCV de Python avec Raspeye
Exécutez l'exemple de code python BNO055 avec I2C (Raspberry Pi 3B)
Portez FreeRTOS vers Raspberry Pi 4B
[Raspberry Pi] Contrôle du moteur pas à pas avec Raspberry Pi
Utilisez vl53l0x avec RaspberryPi (python)
Commande de servomoteur avec Raspberry Pi
USB sur Ethernet avec Raspberry pi
Communication série avec Raspberry Pi + PySerial
Configuration du système d'exploitation avec Raspberry Pi Imager
Essayez L Chika avec raspberrypi
Démarrage automatique du programme au démarrage avec Raspberry Pi 3B + systemd Résumé
Construire un serveur VPN avec Raspberry Pie
Essayez diverses distributions Linux avec VMware ESXi arm edition + essayez le démarrage USB
Essayez de déplacer 3 servos avec Raspeye
Utiliser une webcam avec Raspberry Pi
Seq2Seq (2) ~ Attention Model edition ~ avec chainer
J'ai essayé de faire un signal avec Raspeye 4 (édition Python)
Enregistrement des valeurs du capteur d'environnement Omron avec Raspberry Pi (type USB)
Mesurer la force du signal SIM avec Raspberry Pi
Connectez deux caméras USB au Raspberry Pi 4
Surveillance des animaux avec Rekognition et Raspberry pi
Caméra infrarouge de sécurité Raspberry Pi (édition Python)
Créer un environnement Tensorflow avec Raspberry Pi [2020]
Programmation normale avec la programmation Node-RED avec Raspberry Pi 3
Capteur humain amélioré fabriqué avec Raspberry Pi
Essayez la détection d'objets avec Raspberry Pi 4 + Coral
Exécuter le servomoteur SG-90 avec Raspberry Pi
Utiliser le capteur de mouvement PIR avec Raspberry Pi
Faire une minuterie de lavage-séchage avec Raspberry Pi
Construire un environnement OpenCV-Python sur Raspberry Pi B +
Faites fonctionner l'oscilloscope avec le Raspberry Pi
Créez un compteur de voiture avec Raspberry Pi
Enregistrement de la valeur d'Inkbird IBS-TH1 avec Raspberry Pi
Travailler avec le GPS en Python pour Raspberry Pi 3
J'ai essayé d'exécuter Flask sur Raspberry Pi 3 Model B + en utilisant Nginx et uWSGI
Discord bot raspberry pi zéro avec python [Note]
Programmation média avec Raspeye (préparation audio)
Pourquoi detectMultiScale () est lent sur Raspberry Pi B +
Profitez du travail électronique avec GPIO de Raspberry Pi
MQTT Radicon Car avec Arduino et Raspberry
Allumez / éteignez votre PC avec Raspberry Pi
Sortie CSV des données d'impulsion avec Raspberry Pi (sortie CSV)
Observez le groupe de météores Futago avec RaspberryPi4
Introduction de Ceph avec Kubernetes sur Raspberry Pi 4B (ARM64)