J'aimerais construire une image Raspberry Pi en interne basée sur Raspbian Lite qui est déjà configurée avec les paramètres régionaux, le fuseau horaire, etc. Malheureusement pour moi, les versions actuelles des images Raspbian redimensionnent automatiquement le système de fichiers, puis redémarrent.
Je veux éviter les tracas de la réduction de taille du système de fichiers en empêchant le redimensionnement de se produire. Comment modifier l'image après la gravure de manière à désactiver temporairement le redimensionnement automatique du système de fichiers?
Modifié pour clarifier les effets devrait être réversible; c'est-à-dire que je veux que mon image personnalisée se développe au premier démarrage.
raspbian
raspi-config
patricktokeeffe
la source
la source
raspi-config
est exécuté au premier démarrage, et serait facile à désactiver. Je peux y jeter un œil mais je vais devoir télécharger une nouvelle image, la dernière que j'ai est de mai. Revenez dans quelques heures.Réponses:
Il existe un mécanisme en deux parties qui en assume la responsabilité sur Raspbian; la meilleure idée est probablement de prendre soin des deux parties si elles sont activées.
La première est que l'original
/boot/cmdline.txt
comprend ceci:En se référant à un script de ce chemin sur la partition principale, qui sera utilisé comme initialisation processus au démarrage. Sans ce bit, il prendrait par défaut une valeur intégrée au noyau
/sbin/init
, qui sur Raspbian est un lien symbolique vers/lib/systemd/systemd
.En supprimant cette partie de
cmdline.txt
, le système devrait alors démarrer normalement.Ce que fait réellement ce script est de redimensionner la partition sur la carte SD. Il s'agit d'un processus distinct du redimensionnement du système de fichiers dans la partition 1, ce qui se produit ensuite.
La façon dont cela se produit est que le système est immédiatement redémarré normalement (c'est-à-dire via systemd) et qu'un
init.d
script est configuré pour se déclencher tôt, qui devrait être supprimé de la deuxième partition:Et le lien symbolique vers celui-ci, qui devrait également être supprimé:
Vous pouvez conserver une copie pour une utilisation ultérieure si vous le souhaitez, mais vous
raspi-config
pouvez la recréer pour vous (elle est intégrée dans leraspi-config
script shell). S'il s'exécute réellement, il se supprime, donc cela ne se reproduira plus.Il redimensionne également le système de fichiers dans la partition nouvellement redimensionnée.
Aucun mal ne doit être fait si une seule ou l'autre partie se produit; dans le premier cas vous vous retrouvez avec un système de fichiers qui ne remplit pas la partition agrandie, dans le second rien ne se passera, car le système de fichiers remplit déjà la partition.
Si vous utilisez plus tard
raspi-config
pour agrandir le système de fichiers, il redimensionne immédiatement la partition, puis configure le script init (comme déjà mentionné).L'édition
cmdline.txt
sur la première partition est simple sur n'importe quel ordinateur car il s'agit d'une partition VFAT. La suppression duinit.d
fichier nécessite un système qui peut accéder et modifier les systèmes de fichiers ext4.Les deux tâches peuvent à la place être effectuées sur le fichier image lui-même avant de graver la carte; pour monter et modifier une image Raspbian sur un système GNU / Linux, voir ici . Il existe un Q & A parallèle pour Windows .
Ceci est également réversible, mais vous devrez remettre les deux parties du mécanisme comme décrit ci-dessus, car la première n'inclut pas automatiquement la mise en scène du second.
la source
init=/usr/lib/raspi-config/init_resize.sh
d'/boot/cmdline.txt
œuvres sur ubuntu accouple aussi , et semble assez par lui - même. J'ai une image ubuntu mate de 4 Go flashée sur une carte SD 32 Go et son maintien des tailles de partition à la taille d'image d'origine. Aussi/etc/init.d/resizefs_once
et/etc/rc3.d/S01resizefs_once
n'existent pas après le premier démarrage sur ubuntu mate.cmdline.txt
etinit.d
etrc3.d
et le lien permettront-ils au prochain démarrage de se redimensionner tout seul ou dois-je l'exécuterraspi-config
et l'exécuter manuellement?cmdline.txt
. J'ai cependant démarré l'image Raspbian en utilisantsystemd-nspawn
et j'ai toujours des journaux d'erreurs essayant de redimensionner après avoir supprimécmdline.txt
quelque chose.