# πŸ› οΈ RPi Seal β€” ΠœΠΎΠ΄ΡƒΠ»ΡŒΠ½Π°Ρ систСма создания ΠΈ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠΈ ΠΎΠ±Ρ€Π°Π·ΠΎΠ² Raspberry Pi ## πŸ“¦ НазначСниС - ΠœΠΎΠ½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ USB диски\\ - ΠœΠΎΠ½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ сСтСвой ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ (Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ€Π°ΡΡˆΠ°Ρ€Π΅Π½ Π½Π° Ρ†Π΅Π»Π΅Π²ΠΎΠΌ устройствС)\\ - ΠžΡ‡ΠΈΡ‰Π°Ρ‚ΡŒ систСму ΠΎΡ‚ мусора Π½Π° ΠΆΠΈΠ²ΠΎΠΉ систСмС ΠΈ Π·Π°Π±ΠΈΠ²Π°Ρ‚ΡŒ пустоС пространства нулями (Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΊΠ°ΠΊ Π½Π° ΠΆΠΈΠ²ΠΎΠΉ систСмС Ρ‚Π°ΠΊ ΠΈ Π² img Ρ„Π°ΠΉΠ»Π΅)\\ - Π‘ΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΎΠ±Ρ€Π°Π·Ρ‹ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ систСмы Raspberry Pi Π½Π° ΠΏΡ€ΠΈΠΌΠΎΠ½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ рСсурсы\\ - ΠŸΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ shrink (ΠΎΠ΄ΠΈΠ½Π°Ρ€Π½Ρ‹ΠΉ ΠΈΠ»ΠΈ Π΄Π²ΠΎΠΉΠ½ΠΎΠΉ, ΠΊΡ‚ΠΎ Π½Π΅ Π·Π½Π°Π΅Ρ‚ это ΠΎΠ±Ρ€Π΅Π·ΠΊΠ° Π½Π΅ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠΉ части ΠΎΠ±Ρ€Π°Π·Π°)\\ - ΠŸΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ shrink Π½ΠΎ с ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ΠΌ Π½Π° ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΈΡ‚ΠΎΠ³ΠΎΠ²ΠΎΠ³ΠΎ img (дСлалось для тСстов, Π½ΠΎ оставлСн)\\ - ΠΡ€Ρ…ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ `.img` Π² `.gz` ΠΈΠ»ΠΈ `.zst`\\ - ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€ диска, Π΄ΠΎ ΠΈΠ»ΠΈ послС восстановлСния\\ - ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π°ΠΌΠΈ свободноС/занятоС мСсто\\ - ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ систСмы с Pi3/4/5\\ - Π‘Π±ΠΎΡ€ΠΊΠ° ΡƒΡ‚ΠΈΠ»ΠΈΡ‚ Π² Π°Ρ€Ρ…ΠΈΠ² ΠΈ Π²Π½Π΅Π΄Ρ€Π΅Π½ΠΈΠ΅ Π°Ρ€Ρ…ΠΈΠ²Π° Π² скрипт установщика\\ - Π£ΠΏΠ°ΠΊΠΎΠ²ΠΊΠ° скрипта установщика Π² Π°Ρ€Ρ…ΠΈΠ²\\ - Π£ΠΏΠ°ΠΊΠΎΠ²Π°Ρ‚ΡŒ скачанный pishrink ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Π² Π°Ρ€Ρ…ΠΈΠ²\\ - Π’Π½Π΅Π΄Ρ€Π΅Π½ΠΈΠ΅ rpi_seal Π² img Ρ„Π°ΠΉΠ» (Π½Π° случай Ссли послС создания ΠΎΠ±Ρ€Π°Π·Π° вносились измСнСния Π² скрипты)\\ ВсС скрипты ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ Π°Π²Ρ‚ΠΎΠ½ΠΎΠΌΠ½Ρ‹ ΠΈ Π·Π°ΠΏΡƒΡΠΊΠ°ΡŽΡ‚ΡΡ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ ΠΈΠ»ΠΈ Ρ‡Π΅Ρ€Π΅Π· Π³Π»Π°Π²Π½Ρ‹ΠΉ Π»Π°ΡƒΠ½Ρ‡Π΅Ρ€ `qq.sh`. --- ## πŸ“œ Бписок скриптов ΠΈ Ρ€Π΅ΠΆΠΈΠΌΠΎΠ² запуска ### `01_mount_device.sh` Π’Ρ‹Π±ΠΎΡ€ ΠΈ ΠΌΠΎΠ½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ устройства с ΠΎΠ±Ρ€Π°Π·Π°ΠΌΠΈ ΠΈΠ»ΠΈ для сохранСния: ``` bash 01_mount_device.sh ``` _АвтоматичСски Π²Ρ‹Π±ΠΈΡ€Π°Π΅Ρ‚ `/mnt/rpi_targetX` для монтирования._ --- ### `02_create_image.sh` Π‘ΠΎΠ·Π΄Π°Ρ‘Ρ‚ ΠΎΠ±Ρ€Π°Π· Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ систСмы: ``` bash 02_create_image.sh ``` πŸ”§ ΠžΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ‚ слуТбы ΠΈ снимаСт ΠΊΠΎΠΌΠΏΠ°ΠΊΡ‚Π½Ρ‹ΠΉ `.img` ΠΈΠ· `/dev/mmcblk0` --- ### `03_prepare_image.sh` ΠžΡ‚ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π°Π²Ρ‚ΠΎΡ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅, добавляСт `stretch15.sh`, настраиваСт `systemd`: ``` bash 03_prepare_image.sh ``` _Π‘ΠΏΡ€Π°ΡˆΠΈΠ²Π°Π΅Ρ‚ ΠΎΠ±Ρ€Π°Π· ΠΈΠ· списка .img/.gz, ΠΌΠΎΠ½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚, ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΠ΅Ρ‚, ΠΎΡ‚ΠΌΠΎΠ½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚._ --- ### `04_shrink_image.sh` ΠŸΡ€ΠΈΠΌΠ΅Π½ΡΠ΅Ρ‚ `pishrink.sh` ΠΊ ΠΎΠ±Ρ€Π°Π·Ρƒ: ``` bash 04_shrink_image.sh ``` πŸ”Ή ΠžΠ΄ΠΈΠ½Π°Ρ€Π½Ρ‹ΠΉ ΠΈΠ»ΠΈ Π΄Π²ΠΎΠΉΠ½ΠΎΠΉ Ρ€Π΅ΠΆΠΈΠΌ ΠΏΠΎ Π²Ρ‹Π±ΠΎΡ€Ρƒ. --- ### `05_compress_image.sh` Π‘ΠΆΠΈΠΌΠ°Π΅Ρ‚ `.img` Π² `.gz` ΠΈΠ»ΠΈ `.zst`: ``` bash 05_compress_image.sh ``` _ΠŸΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ прогрСсс Ρ‡Π΅Ρ€Π΅Π· `pv`. Π‘ΠΏΡ€Π°ΡˆΠΈΠ²Π°Π΅Ρ‚ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ ΠΈ ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΈ пСрСзаписи._ --- ### `qq.sh` Π“Π»Π°Π²Π½Ρ‹ΠΉ Π»Π°ΡƒΠ½Ρ‡Π΅Ρ€. ΠžΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ мСню ΠΈ запускаСт Π½ΡƒΠΆΠ½Ρ‹ΠΉ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ: ``` bash qq.sh ``` --- ## 🧩 Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ - Π‘ΠΊΡ€ΠΈΠΏΡ‚Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ `sudo`, `lsblk`, `fdisk`, `pv`, `gzip`, `zstd`, `losetup`, `mount` β€” ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ всС зависимости установлСны. - `pishrink.sh` скачиваСтся автоматичСски ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π²ΠΎΠΌ запускС `04_shrink_image.sh`. --- ## πŸ›‘οΈ Π‘ΠΎΠ²Π΅Ρ‚Ρ‹ - РСкомСндуСтся Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ Π½Π° Ρ‚ΠΎΠΉ ΠΆΠ΅ систСмС, с ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ создаётся ΠΎΠ±Ρ€Π°Π·. - Для массового клонирования: создайтС ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π·, ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΡŒΡ‚Π΅ ΠΈ примСняйтС shrink. - ВсС ΠΏΡƒΡ‚ΠΈ ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Π²Π½ΡƒΡ‚Ρ€ΠΈ скриптов ΠΌΠΎΠΆΠ½ΠΎ ΠΌΠ΅Π½ΡΡ‚ΡŒ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ. --- **ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ RPi Seal β€” Π»Ρ‘Π³ΠΊΠΈΠΉ способ Π΄Π΅Π»Π°Ρ‚ΡŒ Π½Π°Π΄Ρ‘ΠΆΠ½Ρ‹Π΅, ΠΊΠΎΠΌΠΏΠ°ΠΊΡ‚Π½Ρ‹Π΅ ΠΈ самодостаточныС ΠΎΠ±Ρ€Π°Π·Ρ‹ Raspberry Pi.**