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

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


projects:img_cut

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слеваПредыдущая версия
projects:img_cut [2025/04/02 18:59] – удалено - внешнее изменение (Дата неизвестна) 127.0.0.1projects:img_cut [2025/04/02 18:59] (текущий) – ↷ Имя страницы projects:temp изменено на projects:img_cut
Строка 1: Строка 1:
 +====== Принудительная обрезка образа img ======
 +Если снять новый образ с sd карты raspberry которая ни разу не запускалась, то образ будет невозможно обрезать shrink, этот скрипт позволяет принудительно обрезать по размеру\\
 +
 +- находит последний сектор второго раздела (p2) в .img;\\
 +
 +- рассчитывает нужный размер;\\
 +
 +- делает безопасную обрезку .img с запасом.\\
 +
 +<code bash>
 +#!/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 МБ"
 +</code>
 +запуск
 +<code bash>
 +chmod +x hard_shrink_img.sh
 +./hard_shrink_img.sh /media/pi/DEXP_SSD/pi5_fresh.img
 +
 +</code>
  

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