Cet article est la suite de la Partie 3. Le contenu de cette fois est de construire un serveur NFS pour enregistrer le répertoire racine à distribuer sur Raspai et d'importer réellement le système d'exploitation Raspai [^ OS cible] sur le serveur NFS. Veuillez noter que le client sans disque ne démarrera pas simplement en important le système d'exploitation client dans le serveur NFS. Après l'importation, le client ne démarrera que si vous modifiez plusieurs fichiers et créez un lien symbolique vers la racine tftp. La prochaine fois, nous personnaliserons chaque distribution importée.
[^ OS cible]: Cet article cible le Raspberry PI OS basé sur Debian, qui est le système d'exploitation officiel, et Ubuntu 20.04 LTS, ArchLinux, qui sont d'autres distributions typiques pour Raspberry. Fedora a annoncé qu'il ne prend pas en charge Pi4 à partir du 06/08/2020, il ne sera donc pas répertorié. Ignorez ensuite Windows IoT: -P. Au fait, si vous êtes Gentoo, faites de votre mieux par vous-même.
Vous pouvez implémenter NFS sur le serveur PXE que vous avez construit la dernière fois, mais si vous supposez une utilisation telle que la commutation entre plusieurs systèmes d'exploitation, il est préférable de le construire sur une autre machine avec une tolérance de pannes élevée et beaucoup d'espace disque. Je pense que vous pouvez être rassuré.
De plus, il existe deux répertoires partagés à publier sur Raspeye.
Ajoutez un nouveau dossier partagé (public) sur NFS. Si vous utilisez un NAS compatible NFS disponible dans le commerce, la méthode de mise en œuvre sera différente selon que vous gérez vous-même le serveur NFS.
Ajoutez le dossier partagé selon le manuel du produit que vous utilisez
Modifiez / etc / exports et exécutez la commande exportfs Référence: Explication NFS d'ArchLinux
#Stocke chaque distribution pour les clients
/exports/os4pi 192.168.172.0/24(rw,sync,nohide,no_root_squash,subtree_check)
#Répertoire de base commun
/exports/home4pi 192.168.172.0/24(rw,sync,nohide,subtree_check)
Ensuite, créez réellement le répertoire spécifié dans / etc / exports.
$ sudo mkdir -p /exports/os4pi
$ sudo mkdir -p /exports/home4pi
Enfin, activez le dossier partagé NFS.
$ sudo exportfs -avr
Si vous obtenez une erreur, les services liés à NFS tels que rpcbind ne fonctionnent pas, alors faites de votre mieux.
Les détails ne seront pas décrits. Construisez avec votre système d'exploitation préféré, votre disque préféré (de préférence SSD) et votre configuration RAID préférée, puis revenez à la version 1.2. [^ FreeNAS]
[^ FreeNAS]: Si vous pensez que votre temps de compilation est perdu, vous pouvez envisager d'utiliser FreeNAS. Avec FreeNAS, vous pouvez facilement obtenir un environnement qui a plus de fonctions qu'un NAS commercial et peut être configuré avec une interface Web.
À partir de là, la méthode est différente pour chaque distribution, nous la décrirons donc pour chaque distribution. Pour chaque distribution, le fichier cible de téléchargement est une image disque avec la plus petite taille de données.
La distribution la plus équilibrée à l'exception du système d'exploitation officiel et des anciennes versions du noyau. C'est la seule option si vous souhaitez créer rapidement un environnement distribué sans disque, car vous pouvez le rendre sans disque sans avoir à vous soucier des fichiers binaires. 2020/06 La version 64 bits, actuellement en version bêta, fonctionne bien.
Sur le site de téléchargement ci-dessus, vérifiez le nom de fichier de la dernière version avec un navigateur normal ou w3m et téléchargez le fichier zip. [^ 64 noyau] [^ 64kernel]: Même avec la version 32 bits, il est possible de convertir uniquement le noyau en 64 bits (bien que la glibc soit la version 32 bits).
Si vous voulez une image de l'ancienne version (équivalente à Debian Stretch), veuillez télécharger le fichier zip contenant "stretch" dans le nom du fichier à partir du site suivant.
$ sudo mkdir -p /exports/os4pi/raspbian/buster/armhf
Puisqu'il est nécessaire de séparer uniquement / boot, overlayfs peut être meilleur s'il est mélangé avec Pi2.
$ sudo mkdir -p /exports/os4pi/raspbian/buster/armhf_64
$ sudo mkdir -p /exports/os4pi/raspbian/buster/aarch64
$ sudo mkdir -p /exports/os4pi/raspbian/stretch/armhf
Vérifiez la somme de contrôle du fichier zip téléchargé et décompressez-le.
# unzip 2020-05-27-raspios-buster-lite-armhf.zip
(Résultat de sortie omis)
#
Vous devriez voir un fichier avec l'extension modifiée de zip à img (cette fois en utilisant la version 32 bits Lite à partir du 06/08/2020). Étant donné que ce fichier est une image dd divisée en deux partitions, créez et vérifiez un périphérique de bouclage.
# losetup -P -f 2020-05-27-raspios-buster-lite-armhf.img
# losetup -a
/dev/loop0: []: (/tmp/2020-05-27-raspios-buster-lite-armhf.img)
# ls /dev/loop0*
/dev/loop0 /dev/loop0p1 /dev/loop0p2
#
loop0p1 est pour la 1ère partition microSD (FAT, / boot) et loop0p2 est pour la 2ème partition (ext4, /). Créez un point de montage temporaire sous / tmp, montez les 2 partitions ci-dessus et copiez-le dans le dossier partagé NFS. Je ne veux pas copier ce dont je n'ai pas besoin depuis le début, mais la seule chose dont je n'ai pas besoin est le lost + found d'ext4. Tout d'abord, je copie tout dans le répertoire partagé NFS, puis je supprime lost + found lorsque j'ai terminé.
# mkdir /tmp/raspbian; mount -o ro /dev/loop0p2 /tmp/raspbian && mount -o ro /dev/loop0p1 /tmp/raspbian/boot
# rsync -avr /tmp/raspbian/* /exports/os4pi/raspbian/buster/armhf/
・ ・ ・(Copier tous les fichiers)
# rm -Rf /exports/os4pi/raspbian/buster/armhf/lost+found
Lorsque vous avez terminé la copie, démontez-le et supprimez également le bouclage.
# umount /tmp/raspbian/boot; umount /tmp/raspbian
# losetup -d /dev/loop0
C'est tout pour Raspbian.
2.2. Ubuntu
Le noyau inclus dans l'image disque distribuée par Ubuntu ne peut pas être démarré en réseau tel quel car le module nfs n'est ** pas compilé avec l'état intégré. Par conséquent, vous devez créer votre propre noyau pour le rendre sans disque sans U-boot. Ensuite, ce n'est qu'un rapide coup d'œil, mais le processus de téléchargement du binaire U-boot inclus dans l'image de distribution avec tftp et de faire quelque chose avec ce U-boot semble être assez gênant, comme une enquête et des tests. En d'autres termes, si vous ne voulez pas perdre votre temps dans la situation actuelle, vous devez éviter d'utiliser cette distribution.
Par défaut, Ubuntu Server lance de nombreux services qui sont presque inutiles pour les nœuds sans disque Raspeye tels que snapd, apparmor, iscsi, lvm2 et mdadm. Par conséquent, il sera difficile de supprimer les services / packages inutiles après l'installation.
Je ne pense pas qu'il soit nécessaire de choisir cette distribution sauf pour ceux qui l'aiment, mais comme c'est une distribution majeure, je vais la couvrir.
Quand j'essaye de le télécharger sur le site officiel d'Ubuntu, il existe 5 types, 32 bits pour 2/64 bits pour 3/32 bits pour 3/64 bits pour 4/32 bits pour 4 Il existe des options de téléchargement et vous vous demanderez laquelle télécharger. Après enquête, concernant 20.04 (Focal Fossa), seule la notation des boutons est différente, et la situation réelle n'est que la différence entre 32 bits et 64 bits. Par conséquent, il suffit de télécharger la version 32 bits pour 2 et la version 64 bits pour 3. Aussi, pour 18.04 (Bionic Beaver), des fichiers image sont préparés pour chaque modèle, probablement parce qu'il était nécessaire de changer le binaire U-boot en fonction du modèle. Le système à construire cette fois n'utilise pas le U-boot fourni avec l'image disque, il suffit donc de télécharger à la fois la version 32 bits pour 2 et la version 64 bits pour 3.
Depuis le site ci-dessus
Téléchargez le dernier fichier xz avec le nom
Depuis le site ci-dessus
Téléchargez le dernier fichier xz avec le nom.
'$ VERSION' dans la commande doit être l'un des 20.04 / 18.04.
$ sudo mkdir -p /exports/os4pi/ubuntu/$VERSION/armhf
Étant donné que seul / boot / firmware doit être dans un dossier séparé, il peut être préférable de considérer overlayfs sous le dossier pour Pi2.
$ sudo mkdir -p /exports/os4pi/ubuntu/$VERSION/armhf_64
$ sudo mkdir -p /exports/os4pi/ubuntu/$VERSION/aarch64
Après avoir vérifié la somme de contrôle du fichier xz téléchargé, décompressez-le.
$ unxz ubuntu-20.04-preinstalled-server-arm64+raspi4.img.xz
(Résultat de sortie omis)
Vous devriez voir un fichier avec l'extension modifiée de img.xz à img (cette fois en utilisant la version 20.04 64bit raspi4 à partir du 06/08/2020). Étant donné que ce fichier est une image dd divisée en deux partitions, créez et vérifiez un périphérique de bouclage.
$ sudo losetup -P -f ubuntu-20.04-preinstalled-server-arm64+raspi4.img
$ losetup -a
/dev/loop0: []: (/tmp/ubuntu-20.04-preinstalled-server-arm64+raspi4.img)
$ ls /dev/loop0*
/dev/loop0 /dev/loop0p1 /dev/loop0p2
$
loop0p1 est équivalent à la 1ère partition microSD (FAT, / boot / firmware), et loop0p2 est équivalent à la 2ème partition (ext4, /). Créez un point de montage temporaire sous / tmp, montez les 2 partitions ci-dessus et copiez-le dans le dossier partagé NFS. Je ne veux pas copier ce dont je n'ai pas besoin depuis le début, mais la seule chose dont je n'ai pas besoin est le lost + found d'ext4. Tout d'abord, je copie tout dans le répertoire partagé NFS, puis je supprime lost + found lorsque j'ai terminé.
$ mkdir /tmp/ubuntu; sudo mount -o ro /dev/loop0p2 /tmp/ubuntu && sudo mount -o ro /dev/loop0p1 /tmp/ubuntu/boot/firmware
$ sudo rsync -avr /tmp/ubuntu/* /exports/os4pi/ubuntu/20.04/aarch64/
・ ・ ・(Copier tous les fichiers)
$ sudo rm -Rf /exports/os4pi/ubuntu/20.04/aarch64/lost+found
Lorsque vous avez terminé la copie, démontez-le et supprimez également le bouclage.
# umount /tmp/ubuntu/boot; umount /tmp/ubuntu
# losetup -d /dev/loop0
C'est tout pour Ubuntu.
2.3. ArchLinux ARM
Depuis 2020/06, la version 32 bits est prête pour un démarrage sans disque en réécrivant simplement le fichier /boot/config.txt.
Cependant, il est impossible de faire démarrer docilement la version 64 bits sans disque. J'ai vérifié la version aarch64 d'ArchLinux et j'ai trouvé que cette distribution démarre également avec u-boot (le contenu de kernel8.img est u-boot). J'ai donc téléchargé le noyau lui-même et le fichier initramfs que u-boot charge sur tftp, édité config.txt et lancé le tarte aux râpes sans disque. Grâce à bootcode.bin, il charge le noyau + initramfs depuis tftp. C'était possible. Ensuite, le contrôle a été transféré au noyau réel, et lors du démarrage d'initramfs en tant que système de fichiers racine temporaire, il a été dit qu'il n'y avait pas de réseau et il s'est arrêté. Apparemment, ce noyau n'a pas le pilote USB Ethernet (smsc95xx) intégré. En d'autres termes, il semble que le noyau doit également être recompilé ici. Une telle chose
Pour ArchLinux ARM, le fichier d'installation est au format tar.xz au lieu du fichier image dd, de sorte que le processus d'importation vers le serveur NFS n'est pas très différent de la méthode d'installation normale. Cependant, l'image de distribution (plutôt que le fichier d'arborescence des périphériques) est différente pour chaque modèle, et comme il s'agit d'une distribution de mise à jour progressive, il n'y a pas de numéro de version, donc d'autres distributions coupent le sous-répertoire en fonction de la version et de l'architecture du système d'exploitation. Je vais séparer l'endroit qui s'y trouvait par le numéro de modèle de la tarte aux râpes cible.
Référence: Manuel d'installation officiel (2B: version 32 bits / 3B: version 32/64 bits / plates-formes / armv8 / broadcom / raspberry-pi-3) / 4B: version 64 bits)
Comme dans le manuel officiel
Télécharger depuis vers / tmp.
ArchLinux est complet en exécutant simplement le one-liner suivant en tant que root. ** Attention **: BSD tar est utilisé à la place de GNU tar, donc si vous ne l'avez pas installé, veuillez l'installer à l'avance. [^ BSDTAR]
[^ BSDTAR]: Il peut être développé avec GNU tar, mais une erreur se produit lors de l'extraction car il contient un identifiant de sécurité non pris en charge.
# mkdir -p /exports/os4pi/archlinux; cd /exports/os4pi/archlinux; for N in `seq 2 4`; do if [ -f /tmp/ArchLinuxARM-rpi-$N-latest.tar.gz ]; then mkdir pi$N; bsdtar -xpf /tmp/ArchLinuxARM-rpi-$N-latest.tar.gz -C pi$N; fi; done
La prochaine fois personnalise le système d'exploitation à distribuer aux clients (fichiers sous / boot et / etc, limités à la plage qui peut être modifiée avec un éditeur de texte). Aller. Si vous n'utilisez pas qemu-static, vous ne pouvez pas aller dans la mauvaise plage.
Recommended Posts