#!/usr/bin/bash set -euo pipefail cleanup() { set +e umount -l "$MOUNT_DIR/dev" "$MOUNT_DIR/sys" "$MOUNT_DIR/proc" 2>/dev/null umount -l "$MOUNT_DIR/boot" "$MOUNT_DIR" 2>/dev/null [ -n "${LOOPDEV:-}" ] && losetup -d "$LOOPDEV" 2>/dev/null } trap cleanup EXIT IMG_URL="https://downloads.raspberrypi.org/raspios_lite_armhf_latest" IMG_FILE="raspios_lite.img" COMPR_IMG="raspios_lite.img.xz" MOUNT_DIR="/mnt/rpi" SSH_PORT=888 WIFI_SSID="$1" WIFI_PASS="$2" ROOT_PASS="$3" if [ ! -e $IMG_FILE ] ; then if [ ! -e $COMPR_IMG ] ; then wget -O ${COMPR_IMG} "$IMG_URL" wget -O "${IMG_FILE}.sha256" "${IMG_URL}.sha256" cd $(dirname "$IMG_FILE") sha256sum -c "${COMPR_IMG}.sha256" --status if [ $? -ne 0 ]; then echo "SHA256 mismatch ! Aborting." exit 1 else echo "shasum ok" fi cd - fi unxz -f "$COMPR_IMG" fi apt-get install qemu-user-static binfmt-support cp /usr/bin/qemu-arm-static $MOUNT_DIR/usr/bin/ # 2. Associer l’image à un loop device LOOPDEV=$(losetup --find --partscan --show "$IMG_FILE") BOOTPART="${LOOPDEV}p1" ROOTPART="${LOOPDEV}p2" parted --script "$LOOPDEV" resizepart 2 100% e2fsck -f -y "$ROOTPART" resize2fs "$ROOTPART" mkdir -p "$MOUNT_DIR" mount "$ROOTPART" "$MOUNT_DIR" mount "$BOOTPART" "$MOUNT_DIR/boot" mount --bind /dev "$MOUNT_DIR/dev" mount --bind /sys "$MOUNT_DIR/sys" mount --bind /proc "$MOUNT_DIR/proc" cp /etc/resolv.conf "$MOUNT_DIR/etc/" chroot "$MOUNT_DIR" /bin/bash < /etc/wpa_supplicant/wpa_supplicant.conf < /etc/systemd/system/run_ssh.service <