Page 1 sur 1

Sauvegarde SD

Posté : lun. 27 nov. 2023 13:22
par CDBI30
comment lancer le SD Card Copier d'un Raspi en ligne de commande
pour ensuite pouvoir le lancer dans un Script Python
Merci d'avance

Re: Sauvegarde SD

Posté : lun. 27 nov. 2023 13:32
par mike913
Bonjour,
Installer rpi-clone https://github.com/billw2/rpi-clone

Re: Sauvegarde SD

Posté : mar. 2 janv. 2024 10:38
par SonopaalFounik
Pour lancer le SD Card Copier d'un Raspberry Pi en ligne de commande, utilisez la commande suivante :

sudo sh /usr/bin/sdcard-clone.sh
Cette commande clonera la carte SD actuelle du Raspberry Pi sur une nouvelle carte SD.

Pour lancer le SD Card Copier dans un script Python, vous pouvez utiliser la fonction suivante :

Python
import subprocess

def run_sdcard_clone():
subprocess.call(["sudo", "sh", "/usr/bin/sdcard-clone.sh"])

if __name__ == "__main__":
run_sdcard_clone()

Cette fonction lance la commande sudo sh /usr/bin/sdcard-clone.sh en utilisant la fonction subprocess.call().

Voici un exemple d'utilisation de la fonction dans un script Python :

Python
import subprocess

def run_sdcard_clone():
subprocess.call(["sudo", "sh", "/usr/bin/sdcard-clone.sh", "/dev/sda1", "/dev/sdb1"])

if __name__ == "__main__":
run_sdcard_clone("/dev/sda1", "/dev/sdb1")

Cette fonction clonera la partition /dev/sda1 de la carte SD actuelle sur la partition /dev/sdb1 de la nouvelle carte SD.

Vous pouvez également utiliser la fonction subprocess.Popen() pour lancer le SD Card Copier dans un script Python. Voici un exemple :

Python
import subprocess

def run_sdcard_clone():
proc = subprocess.Popen(["sudo", "sh", "/usr/bin/sdcard-clone.sh"], stdout=subprocess.PIPE)
output, err = proc.communicate()
print(output)

if __name__ == "__main__":
run_sdcard_clone()

Cette fonction affiche la sortie du SD Card Copier.

Re: Sauvegarde SD

Posté : jeu. 1 févr. 2024 12:52
par SangakaraMoory
Pour lancer le SD Card Copier d'un Raspberry Pi en ligne de commande, vous pouvez utiliser la commande suivante :

sudo rpi-clone [options] [source_image] [destination_card]
Les options disponibles sont les suivantes :

-v : Affiche des informations détaillées sur le processus de clonage.
-i : Indique l'image source à utiliser.
-o : Indique la carte de destination sur laquelle copier l'image.
Par exemple, pour cloner une image d'un Raspberry Pi 4 vers une carte SD de 16 Go, vous pouvez utiliser la commande suivante :

sudo rpi-clone -v -i 2022-07-20-raspios-bullseye-arm64-lite.img -o /dev/sdX
Où 2022-07-20-raspios-bullseye-arm64-lite.img est le nom de l'image source et /dev/sdX est le nom de la carte de destination.

Pour pouvoir lancer le SD Card Copier dans un script Python, vous pouvez utiliser la fonction subprocess.call(). Par exemple, le code suivant clonera l'image d'un Raspberry Pi 4 vers une carte SD de 16 Go :

import subprocess

def clone_sd_card(source_image, destination_card):
"""
Clone une image SD d'un Raspberry Pi.

Args:
source_image: Le chemin de l'image source.
destination_card: Le nom de la carte de destination.

Returns:
0 si le clonage est réussi, une valeur non nulle en cas d'erreur.
"""

command = ["sudo", "rpi-clone", "-v", "-i", source_image, "-o", destination_card]
return subprocess.call(command)

if __name__ == "__main__":
source_image = "2022-07-20-raspios-bullseye-arm64-lite.img"
destination_card = "/dev/sdX"
clone_sd_card(source_image, destination_card)

Ce code utilise la fonction subprocess.call() pour exécuter la commande rpi-clone. La fonction call() renvoie la valeur de retour de la commande exécutée. Dans ce cas, une valeur de retour de 0 indique que le clonage a réussi.