cClaude.rocks ☕ Le blog

[Nouvelles technologies, sciences et coups de gueule…]

Menu

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 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 de Raspi-OS,
  • prend en compte les partitions nommĂ©es boot et bootfs,
  • 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Ă© sous Linux 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 ou Raspbian 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 commande git clone. Ensuite utilisez la commande prepare-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 dossier TĂ©lĂ©chargement sera utilisĂ©.
  • Si la valeur RASPBIAN_DEFAULT_BACKUP_DIRECTORY n’est pas dĂ©finie, votre dossier Documents 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, utilisez RASPBIAN_USER_GROUP_ID Ă  la place,
  • RASPBIAN_PI_USER_ID n’est plus pris en compte, utilisez RASPBIAN_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'

኿


â„č 2006 - 2023 | 🏠 Accueil du domaine | 🏡 Accueil du blog