projects:img_cut
Различия
Показаны различия между двумя версиями страницы.
Предыдущая версия справа и слеваПредыдущая версия | |||
projects:img_cut [2025/04/02 18:59] – удалено - внешнее изменение (Дата неизвестна) 127.0.0.1 | projects:img_cut [2025/04/02 18:59] (текущий) – ↷ Имя страницы projects:temp изменено на projects:img_cut | ||
---|---|---|---|
Строка 1: | Строка 1: | ||
+ | ====== Принудительная обрезка образа img ====== | ||
+ | Если снять новый образ с sd карты raspberry которая ни разу не запускалась, | ||
+ | |||
+ | - находит последний сектор второго раздела (p2) в .img;\\ | ||
+ | |||
+ | - рассчитывает нужный размер; | ||
+ | |||
+ | - делает безопасную обрезку .img с запасом.\\ | ||
+ | |||
+ | <code bash> | ||
+ | #!/bin/bash | ||
+ | set -euo pipefail | ||
+ | |||
+ | IMG=" | ||
+ | SAFETY_MB=4 | ||
+ | |||
+ | [[ ! -f " | ||
+ | |||
+ | echo "📂 Анализируем: | ||
+ | END_SECTOR=$(fdisk -l " | ||
+ | SECTOR_SIZE=$(fdisk -l " | ||
+ | SECTOR_SIZE=${SECTOR_SIZE: | ||
+ | |||
+ | FINAL_BYTES=$(( (END_SECTOR + 1 + (SAFETY_MB * 1024 * 1024 / SECTOR_SIZE)) * SECTOR_SIZE )) | ||
+ | FINAL_MB=$(( FINAL_BYTES / 1024 / 1024 )) | ||
+ | |||
+ | echo "📏 Конец rootfs в секторе: | ||
+ | echo "📦 Новый размер: | ||
+ | |||
+ | read -rp "✅ Обрезать .img до $FINAL_MB МБ? [y/N] " confirm | ||
+ | [[ " | ||
+ | |||
+ | truncate -s " | ||
+ | echo "✅ Готово: | ||
+ | </ | ||
+ | запуск | ||
+ | <code bash> | ||
+ | chmod +x hard_shrink_img.sh | ||
+ | ./ | ||
+ | |||
+ | </ | ||