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 | ||
| + | ./ | ||
| + | |||
| + | </ | ||
