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

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


projects:linux:manual_backup_scripts:shrink_img

Различия

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

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

Следующая версия
Предыдущая версия
projects:linux:manual_backup_scripts:shrink_img [2025/04/07 10:51] – создано projects:linux:manual_backup_scripts:shrink_img [2025/04/11 17:46] (текущий)
Строка 1: Строка 1:
 ====== Shrink Image ====== ====== Shrink Image ======
 +//**Входит в набор [[projects:linux:manual_backup_scripts|rPi Seal]]**//
  
 +Обрезает размер образа до фактически занимаемого данными размера.\\
 +После записи на SD карты при первом запуске система зразворачивается на весь доступный объем карты.\\
  
 <code bash shrink_image.sh> <code bash shrink_image.sh>
Строка 8: Строка 11:
 # ==DIS/AUTOEXEC== # ==DIS/AUTOEXEC==
 # ===Shrink image=== # ===Shrink image===
-shrink_image.sh — применить pishrink к образу Raspberry Pi, с возможностью двойного прохода и сохранением оригинала+05_shrink_image.sh — применить pishrink к образу Raspberry Pi, с возможностью двойного прохода и сохранением оригинала
 # #
  
Строка 50: Строка 53:
  
 TEMP_MOUNTED=false TEMP_MOUNTED=false
 +trap '[[ $TEMP_MOUNTED == true ]] && sudo umount "$TARGET_DIR"' EXIT
 +
 if [[ "$DEV_NAME" == "$NAS_PATH" ]]; then if [[ "$DEV_NAME" == "$NAS_PATH" ]]; then
   TARGET_DIR="$NAS_PATH"   TARGET_DIR="$NAS_PATH"
Строка 84: Строка 89:
 if [[ ${#IMG_LIST[@]} -eq 0 ]]; then if [[ ${#IMG_LIST[@]} -eq 0 ]]; then
   echo "❌ Не найдено .img файлов в $TARGET_DIR"   echo "❌ Не найдено .img файлов в $TARGET_DIR"
-  $TEMP_MOUNTED && sudo umount "$TARGET_DIR" 
   exit 1   exit 1
 fi fi
Строка 97: Строка 101:
 echo "0 - Отмена" echo "0 - Отмена"
 read -rp "👉 Выберите образ: " img_choice read -rp "👉 Выберите образ: " img_choice
-[[ "$img_choice" == "0" || -z "$img_choice" ]] && echo "❎ Отменено." && $TEMP_MOUNTED && sudo umount "$TARGET_DIR" && exit 0+[[ "$img_choice" == "0" || -z "$img_choice" ]] && echo "❎ Отменено." && exit 0
 (( img_choice < 1 || img_choice > ${#IMG_LIST[@]} )) && echo "❌ Неверный выбор." && exit 1 (( img_choice < 1 || img_choice > ${#IMG_LIST[@]} )) && echo "❌ Неверный выбор." && exit 1
 IMGFILE="${IMG_LIST[$((img_choice-1))]}" IMGFILE="${IMG_LIST[$((img_choice-1))]}"
Строка 126: Строка 130:
 fi fi
  
-# 🧪 Создание резервной копии+# 🧪 Создание резервной копии (неактивно по умолчанию)
 # BACKUP_IMG="${IMGFILE%.img}_original.img" # BACKUP_IMG="${IMGFILE%.img}_original.img"
 # if [[ -f "$BACKUP_IMG" ]]; then # if [[ -f "$BACKUP_IMG" ]]; then
-  # echo "⚠️ Резервная копия уже существует: $BACKUP_IMG"+  echo "⚠️ Резервная копия уже существует: $BACKUP_IMG"
 # else # else
-  # echo "📁 Создание резервной копии образа..." +  echo "📁 Создание резервной копии образа..." 
-  # cp --reflink=auto --sparse=always "$IMGFILE" "$BACKUP_IMG" || { +  cp --reflink=auto --sparse=always "$IMGFILE" "$BACKUP_IMG" || { 
-    # echo "❌ Не удалось создать копию." +    echo "❌ Не удалось создать копию." 
-    # exit 1 +    exit 1 
-  # } +  
-  # echo "✅ Резервная копия сохранена: $BACKUP_IMG"+  echo "✅ Резервная копия сохранена: $BACKUP_IMG"
 # fi # fi
  
Строка 144: Строка 148:
 echo "0 - Отмена" echo "0 - Отмена"
 read -rp "👉 Выбор: " shrink_choice read -rp "👉 Выбор: " shrink_choice
-[[ "$shrink_choice" == "0" ]] && echo "❎ Отменено." && $TEMP_MOUNTED && sudo umount "$TARGET_DIR" && exit 0+[[ "$shrink_choice" == "0" ]] && echo "❎ Отменено." && exit 0
  
 # 📏 Размер до # 📏 Размер до
Строка 162: Строка 166:
  
 echo "✅ Завершено: Shrink выполнен$([[ "$shrink_choice" == "2" ]] && echo " дважды")" echo "✅ Завершено: Shrink выполнен$([[ "$shrink_choice" == "2" ]] && echo " дважды")"
 +# echo "📁 Резервная копия: $BACKUP_IMG"
 echo "📦 Размер: $SIZE_BEFORE → $SIZE_AFTER" echo "📦 Размер: $SIZE_BEFORE → $SIZE_AFTER"
-echo "📁 Резервная копия: $BACKUP_IMG" 
  
-$TEMP_MOUNTED && sudo umount "$TARGET_DIR" 
 </code> </code>
 +===== ******* =====
 +[[https://boosty.to/takraztak/donate|Поддержать через Boosty]]
projects/linux/manual_backup_scripts/shrink_img.1744012299.txt.gz · Последнее изменение: 2025/04/07 10:51 —

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