prepare-raspbian-sd permet dâinitialiser une SD pour votre Raspberry, entre autres, avec Raspbian ou Raspbian lite, puis dans un second temps dây ajouter une configuration personnalisĂ©e et donc de faire le premier dĂ©marrage de votre Raspberry avec une prĂ©-configuration adaptĂ©e Ă vos besoins.
Une nouvelle version de prepare-raspbian-sd est disponible.
prepare-raspbian-sd permet Ă©galement dâinstaller des images dont vous connaissez lâURL ou mĂȘme de crĂ©er une image Ă partir dâune carte SD.
Cet outil est principalement conçu pour les personnes qui ont de nombreux Raspberry Pis
et qui souhaitent ensuite reconstruire avec un processus automatisé.
- Les versions prĂšs Ă lâemploi,
- La derniĂšre release au moment de la publication de ce billet.
- Le code source (en anglais)
Les derniÚres évolutions (pas nécessairement sur la derniÚre publication) :
- prend en compte les archives au format
xz
ce qui est indispensable pour les nouvelles versions deRaspi-OS
, - prend en compte les partitions nommées
boot
etbootfs
, - prend en charge la crĂ©ation de lâutilisateur initial.
Initialisez vos cartes SD pour vos Raspberry PI
Les prérequis :
- Une machine sous
GNU Linux
(entiÚrement testé sousLinux Mint
, et devrait fonctionner sans problÚme sur les Linux basés sur Ubuntu ou Debian), - La commande
git
si vous souhaitez partir du code source, - Un environnement
bash 4
complet, - Une paire de clés
ssh
correctement initialisé, si vous souhaitez préconfigurer votre clé publique pour accéder à votre PI en ssh sans mot de passe dÚs le premier démarrage.
Ce que fait lâoutil :
- TĂ©lĂ©charge la derniĂšre version de lâimage
Raspbian
ouRaspbian lite
si nĂ©cessaire, - TĂ©lĂ©charge une image Ă partir de son URL (nâest pas limitĂ© aux
Raspberry PI
) , - Initialise la carte SD,
- Personnalise la carte SD (facultatif)Â :
- DĂ©finir le partage de la mĂ©moire (Configuration Ă lâaide GPU_MEM)
- PrĂ©pare lâespace de travail BCM (facultatif),
- Active
ssh
au dĂ©marrage du PI (facultatif), - CrĂ©er le premier utilisateur (diffĂ©rent de lâutilisateur
pi
)(facultatif), - Ajoutez des clés publiques (<INITIAL_USER_HOME>/.ssh/authorized_keys) (facultatif),
- Sauvegarde le contenu dâune carte SD dans un fichier image.
Installation :
Installation depuis la derniÚre « release »
Depuis un terminal :
wget https://www.cclaude.rocks/releases/prepare-raspbian-sd/prepare-raspbian-sd-v2023-02-24.tar.gz &&
tar -zxf prepare-raspbian-sd-v2023-02-24.tar.gz &&
cd prepare-raspbian-sd/ &&
sudo ./prepare-raspbian-sd-install.sh
Installation depuis le code source
-
Lâinstallation depuis le code source implique de maĂźtriser de git
Ce projet utilise des sous-modules
git
, il est donc nĂ©cessaire de les prendre en compte :Comment cloner le rĂ©fĂ©rentiel. Ătant donnĂ© que ce rĂ©fĂ©rentiel utilise des sous-modules
git
, vous devez utiliser le paramĂštre--recurse-submodules
Ă la commandegit clone
. Ensuite utilisez la commandeprepare-raspbian-sd-install
.# cd "${home}/Sources" # Adapter Ă votre guise. git clone --recurse-submodules https://git.cclaude.rocks/raspberry/prepare-raspbian-sd.git cd prepare-raspbian-sd sudo bash prepare-raspbian-sd-install.sh
Mise Ă jour depuis le code source
Ce projet utilise des sous-modules
git
. Lors dâune mise-Ă -jour vous devez Ă©galement initialiser les sous-modules (cas dâajout dâun nouveau modules) et les mettre Ă jour :git fetch --verbose --prune # Mise Ă jour des rĂ©fĂ©rences git git pull --ff-only # Mise Ă jour de la branche courante (si nĂ©cessaire) # Ne fusionnez pas avec vos modifications (le cas Ă©chĂ©ant) git submodule init # Initialiser des sous-modules git (si nĂ©cessaire) git submodule update # Mettre Ă jour des sous-modules git (si nĂ©cessaire) git status # Affiche de lâĂ©tat actuel
Exécutez ensuite à nouveau
prepare-raspbian-sd-install.sh
pour mettre Ă niveau votre installation.sudo bash prepare-raspbian-sd-install.sh
DĂ©sinstallation
Dour dĂ©sinstaller lâapplication, vous devez utiliser :
sudo bash /usr/local/share/prepare-raspbian-sd/prepare-raspbian-sd-remove
Utilisation
Lâaide :
-
Aide en français
prepare-raspbian-sd --help prepare-raspbian-sd ACTION [OPTIONS]⊠Actions : -h, --help Affiche le message dâaide et quitte. -I, --put-image FILE Initialise la carte SD Ă lâaide du fichier image FILE. -D, --put-default-image Initialise la carte SD en utilisant lâimage dĂ©finie par RASPBIAN_DEFAULT_IMG. -L, --put-last-image Initialise la carte SD en utilisant la derniĂšre version disponible de lâimage Raspbian. TĂ©lĂ©charge lâimage Ă partir du site Web de Raspbian si nĂ©cessaire. --configure Appliquer la configuration de lâutilisateur sur la carte SD. -F, --full-clone CrĂ©er une image de la carte SD dans le rĂ©pertoire dĂ©fini par RASPBIAN_DEFAULT_BACKUP_DIRECTORY (un nom de fichier sera gĂ©nĂ©rĂ© Ă partir de la date). -T, --full-clone-to FILE CrĂ©er une image de la carte SD dans le fichier FILE. --compute-sd-dev-name Localise la carte SD et affiche le nom des pĂ©riphĂ©riques associĂ©s, puis quitte. Options : --arch ARCH DĂ©fini le type de processeur de la machine (optionnel). --arch '' : TĂ©lĂ©charge et installe la version Raspbian --arch armhf : TĂ©lĂ©charge et installe la version 32 bits de « Raspberry Pi OS » --arch arm32 : Identique Ă 'armhf' --arch arm64 : TĂ©lĂ©charge et installe la version 64 bits de "Raspberry Pi OS" --auto-umount DĂ©montage automatique de la carte SD (Attention essayez d'abord en ajoutant --dry-run la premiĂšre fois) --debug Affiche des messages supplĂ©mentaires --desktop Alias pour --full --dev-name DEVNAME Force le nom du pĂ©riphĂ©rique Ă utiliser pour la carte SD. --download-to DIR TĂ©lĂ©chargez une nouvelle image si nĂ©cessaire dans le RĂ©pertoire donnĂ©. Si la valeur de lâoption est omise la valeur dĂ©finie par RASPBIAN_DEFAULT_DOWNLOAD_IMAGE_DIRECTORY sera utilisĂ©e. --dry-run Affiche le nom des pĂ©riphĂ©riques associĂ©s Ă la carte SD, puis quitte. --expected-img IMG Nom de fichier dâimage attendu (sans chemin). Obligatoire avec action --url permet de ne pas tĂ©lĂ©charger le fichier distant si un fichier local est prĂ©sent. --full TĂ©lĂ©chargez la version de bureau au lieu de la version allĂ©gĂ©e (version serveur). --gui Alias pour --full (obsolĂšte) --unzip Unzip le fichier aprĂšs le tĂ©lĂ©chargement, et utilise le fichier 'unzippĂ©' comme fichier image. (gzip et unzip sont supportĂ©s)
Sécurité :
Pour Ă©crire sur SD (Ă lâexception de lâaction --configure), lâoutil vĂ©rifie que la carte SD nâest PAS montĂ©. Soit Ă lâaide de la commande umount, soit Ă lâaide de lâinterface graphique, soit en utilisant avec prudence le paramĂštre
--auto-umount
Lâusage typique consiste Ă mettre une image sur la carte SD, dans le cas de Raspberry Pi OS
64 bits en mode serveur (sans interface graphique), on fera :
prepare-raspbian-sd -L --arm64
Pour cette opĂ©ration la carte SD doit ĂȘtre connectĂ©e Ă votre ordinateur mais ne doit pas ĂȘtre montĂ©e. Depuis le bureau, vous pouvez dĂ©monter lâimage ou les lâimages liĂ©s Ă cette carte SD.
Ensuite si vous souhaitez customiser la carte, utilisez :
prepare-raspbian-sd --configure # Nécessite que vous ayez paramétré votre configuration
Pour cette opĂ©ration la carte SD doit ĂȘtre connectĂ©e Ă votre ordinateur et doit ĂȘtre montĂ©e.
Configuration
En option, vous pouvez utiliser prepare-raspbian-sd
pour personnaliser la SD.
Vous avez deux options pour personnaliser le rĂ©pertoire de tĂ©lĂ©chargement par dĂ©faut, qui est lâemplacement oĂč les images seront stockĂ©es. Vous pouvez dâabord utiliser prepare-raspbian-sd-config
par exemple :
_DOWNLOAD_="$( xdg-user-dir DOCUMENTS )/raspbian-images/download" # Défini le répertoire qui recevra les images téléchargées
_BACKUP_="$( xdg-user-dir DOCUMENTS )/raspbian-images/backups" # Défini le répertoire qui recevra les sauvegardes de vos SD
# Créer les répertoires (si nécessaire)
mkdir -vp "${_DOWNLOAD_}" "${_BACKUP_}"
# Configuration (optionnel, mais recommandé)
prepare-raspbian-sd-config RASPBIAN_DEFAULT_BACKUP_DIRECTORY "${_BACKUP_}"
prepare-raspbian-sd-config RASPBIAN_DEFAULT_DOWNLOAD_IMAGE_DIRECTORY "${_DOWNLOAD_}"
prepare-raspbian-sd-config SSH_AUTHORIZED_KEYS "$( cat ~/.ssh/id_rsa.pub )"
prepare-raspbian-sd-config --set-boolean BCM_WORKSPACE true
prepare-raspbian-sd-config --set-boolean SSH_ENABLE true
prepare-raspbian-sd-config --set-boolean SSH_CONFIGURE true
Pour définir un utilisateur personnalisé, ajoutez :
prepare-raspbian-sd-config --set RASPBIAN_USER_NAME 'monutilisateur'
prepare-raspbian-sd-config --set RASPBIAN_USER_PASSWORD 'le mot de passe'
Configuration optionnelle : si vous utiliser ce code assurez-vous que cela soit adapté à vos besoins.
prepare-raspbian-sd-config DEFAULT_SD_DEV_NAME 'mmcblk0' # Facultatif plus
prepare-raspbian-sd-config --set-integer GPU_MEM '16' # Pour un serveur cela peut ĂȘtre pratique.
prepare-raspbian-sd-config RASPBIAN_DEFAULT_IMG "${_DOWNLOAD_}/2019-07-10-raspbian-buster-lite.img" # TrÚs facultatif !
- Si la valeur
RASPBIAN_DEFAULT_DOWNLOAD_IMAGE_DIRECTORY
nâest pas dĂ©finie, votre dossierTĂ©lĂ©chargement
sera utilisé. - Si la valeur
RASPBIAN_DEFAULT_BACKUP_DIRECTORY
nâest pas dĂ©finie, votre dossierDocuments
sera utilisé.
Résumé :
Nom de variable | Description de lâutilisation | Valeurs typiques |
---|---|---|
BCM_WORKSPACE | Facultatif, par défaults à true . si défini à false , le dossier /home/pi/.bcm-workspace ne sera pas créé. | true (boolean) |
DEFAULT_SD_DEV_NAME | Facultatif, utilisé pour écrire sur la carte SD. | mmcblk0 (string) |
GPU_MEM | Facultatif, utilisĂ© par --configure. Permet de configurer le partage de mĂ©moire. Si la valeur nâest pas dĂ©finie ou si elle vaut 0, la configuration de partage de mĂ©moire est ignorĂ©e. | 16 (integer) |
RASPBIAN_DEFAULT_BACKUP_DIRECTORY | Requis pour pouvoir utiliser --full-clone. La variable doit contenir le chemin complet dâun rĂ©pertoire existant oĂč seront stockĂ©es vos sauvegardes SD. | /home/username/Documents/ (string) |
RASPBIAN_DEFAULT_DOWNLOAD_IMAGE_DIRECTORY | Simplifie lâutilisation de --download de prepare-raspbian-sd-download-image ou de --put-last-image de prepare-raspbian-sd . | /home/username/Documents/raspbian-images (string) |
RASPBIAN_DEFAULT_IMG | Requis pour pouvoir utiliser --put-default-image. La variable doit contenir le chemin dâaccĂšs complet Ă votre fichier local raspbian-stretch-lite.img . | /path/to/2018-10-09-raspbian-stretch-lite.img (string) |
RASPBIAN_USER_GROUP_ID | Facultatif, value par défaut 1000 | 1000 (integer) |
RASPBIAN_USER_ID | Facultatif, value par défaut 1000 | 1000 (integer) |
RASPBIAN_USER_NAME | Facultatif, si dĂ©fini lâutilisateur sera crĂ©e et utilisĂ© Ă la place de lâutilisateur pi (RASPBIAN_USER_PASSWORD sera nĂ©cessaire). Fonctionne avec les versions de Raspi-OS aprĂšs april 2022. | myuser (string) |
RASPBIAN_USER_PASSWORD | Facultatif, dĂ©fini le mot de passe pour lâutilisateur RASPBIAN_USER_NAME . | mypassword (string) |
SSH_AUTHORIZED_KEYS | Requis pour pouvoir utiliser --configure. La variable doit contenir le contenu de /home/pi/.ssh/authorized_keys que vous souhaitez ajouter. | La valeur donnée par "$( cat ~/.ssh/id_rsa.pub )" (string) |
SSH_CONFIGURE | Facultatif, si défini à true crée le dossier ~/.ssh directory | true (boolean) |
SSH_ENABLE | Facultatif, si défini à true active le serveur sshd au démarrage du Pi. | true (boolean) |
La prise en charge de la crĂ©ation dâun utilisateur durant la sĂ©quence de dĂ©marrage initiale, il y a quelques modifications :
RASPBIAN_PI_GROUP_ID
nâest plus pris en compte, utilisezRASPBIAN_USER_GROUP_ID
Ă la place,RASPBIAN_PI_USER_ID
nâest plus pris en compte, utilisezRASPBIAN_USER_ID
Ă la place.
Cas concret dâutilisations
Initialisation de votre carte SD
Pour télécharger (si nécessaire) la derniÚre version de Raspbian
, puis initialiser votre carte SDÂ :
prepare-raspbian-sd -L --arch armhf # Pour Raspberry PI « inférieur » au PI4
ou
prepare-raspbian-sd -L --arch arm64 # Pour un Raspberry PI 4
Sauvegarde de votre carte SD
Pour sauvegarder lâimage complĂšte de votre carte SD (toutes les partitions seront sauvegardĂ©es dans le mĂȘme fichier), il suffit dâutiliser la syntaxe suivante :
prepare-raspbian-sd -T "${HOME}/ma-carte-sd.img'
኿