diff --git a/domain_builder_1.8.sh b/domain_builder_1.8.sh index ab310cc..3046671 100755 --- a/domain_builder_1.8.sh +++ b/domain_builder_1.8.sh @@ -113,7 +113,7 @@ step_03_create_archive() { echo "$(date +%T) Создаем архив..." | tee -a "$LOG_FILE" SIZE_BYTES=$(sudo du -sb "$MOUNT_DIR" | cut -f1) - if sudo tar cf - --preserve-permissions --same-owner --acls --xattrs -C "$MOUNT_DIR" . | pv -s "$SIZE_BYTES" | bzip2 > "$ARCHIVE_PATH" 2>/dev/null; then + if sudo tar cf - --preserve-permissions --same-owner --acls --xattrs -C "$MOUNT_DIR" . | bzip2 > "$ARCHIVE_PATH"; then echo "$(date +%T) Архив успешно создан" | tee -a "$LOG_FILE" if [[ -f "$ARCHIVE_PATH" ]]; then ARCHIVE_SIZE=$(du -h "$ARCHIVE_PATH" | cut -f1) @@ -137,13 +137,26 @@ step_03_create_archive() { TEMP_DIR=$(mktemp -d) echo "📁 Временная папка: $TEMP_DIR" echo "📦 Распаковка tar.bz2..." - pv "$ARCHIVE_PATH" | tar -xj -C "$TEMP_DIR" - echo "🔨 Упаковка в zstd (используем все ядра)..." - if tar --help | grep -q zstd; then - tar -C "$TEMP_DIR" -cf "$BASE_DIR/obraz.tar.zst" --zstd . + if tar -xjf "$ARCHIVE_PATH" -C "$TEMP_DIR"; then + echo "✅ Распаковка успешно завершена" + + echo "🔨 Упаковка в zstd (используем все ядра)..." + if tar --help | grep -q zstd; then + tar -C "$TEMP_DIR" -cf "$BASE_DIR/obraz.tar.zst" --zstd . + else + tar -C "$TEMP_DIR" -cf - . | zstd -T0 -19 -o "$BASE_DIR/obraz.tar.zst" + fi + + if [[ $? -eq 0 ]]; then + echo "✅ Архив образ.tar.zst успешно создан" + ls -lh "$BASE_DIR/obraz.tar.zst" + else + echo "❌ Ошибка при создании архива zstd" + exit 1 + fi else - # Вариант 2: Классический способ через pipe - tar -C "$TEMP_DIR" -cf - . | zstd -T0 -19 -o "$BASE_DIR/obraz.tar.zst" + echo "❌ Ошибка при распаковке $ARCHIVE_PATH" + exit 1 fi rm "$ARCHIVE_PATH" rm -rf "$TEMP_DIR"