Инструменты пользователя

Инструменты сайта


Action unknown: copypageplugin__copy
projects:img_cut

Принудительная обрезка образа img

Если снять новый образ с sd карты raspberry которая ни разу не запускалась, то образ будет невозможно обрезать shrink, этот скрипт позволяет принудительно обрезать по размеру

- находит последний сектор второго раздела (p2) в .img;

- рассчитывает нужный размер;

- делает безопасную обрезку .img с запасом.

#!/bin/bash
set -euo pipefail
 
IMG="$1"
SAFETY_MB=4
 
[[ ! -f "$IMG" ]] && echo "❌ Файл не найден: $IMG" && exit 1
 
echo "📂 Анализируем: $IMG"
END_SECTOR=$(fdisk -l "$IMG" | awk '/img2/ {print $3}')
SECTOR_SIZE=$(fdisk -l "$IMG" | awk '/Sector size/ {print $4}')
SECTOR_SIZE=${SECTOR_SIZE:-512}
 
FINAL_BYTES=$(( (END_SECTOR + 1 + (SAFETY_MB * 1024 * 1024 / SECTOR_SIZE)) * SECTOR_SIZE ))
FINAL_MB=$(( FINAL_BYTES / 1024 / 1024 ))
 
echo "📏 Конец rootfs в секторе: $END_SECTOR"
echo "📦 Новый размер: $FINAL_MB МБ"
 
read -rp "✅ Обрезать .img до $FINAL_MB МБ? [y/N] " confirm
[[ "$confirm" =~ ^[Yy]$ ]] || { echo "❎ Отменено."; exit 1; }
 
truncate -s "$FINAL_BYTES" "$IMG"
echo "✅ Готово: образ обрезан до $FINAL_MB МБ"

запуск

chmod +x hard_shrink_img.sh
./hard_shrink_img.sh /media/pi/DEXP_SSD/pi5_fresh.img
projects/img_cut.txt · Последнее изменение: 2025/04/02 18:59 —

Если не указано иное, содержимое этой вики предоставляется на условиях следующей лицензии: CC Attribution 4.0 International
CC Attribution 4.0 International Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki