diff --git a/tools/CREATE-ISO-macOS.command b/tools/CREATE-ISO-macOS.command index 49279b3..643a163 100755 --- a/tools/CREATE-ISO-macOS.command +++ b/tools/CREATE-ISO-macOS.command @@ -1,34 +1,81 @@ #!/bin/bash + # -# Script: create-iso-macOS -# Goal: create "ISO" file for use in the Proxmox VE Environment +# Script: create-iso-macOS.sh +# Goal: Create macOS ISO-like image for use in Proxmox VE # # Author: Gabriel Luchina -# https://luchina.com.br -# 20211116T2245 +# https://luchina.com.br +# Updated: 2025-04-06 +# + +# ANSI Colors +RED='\033[0;31m' +GREEN='\033[0;32m' +YELLOW='\033[0;33m' +NC='\033[0m' # No Color clear -echo -e "\nAutomate script for create \"ISO\" file of macOS Install in Proxmox VE Environament" -echo -e "BY: https://luchina.com.br" -echo -e "SUPPORT: https://osx-proxmox.com" +echo -e "${GREEN}Automate script for creating macOS Install ISO for Proxmox VE${NC}" +echo -e "BY: ${YELLOW}https://luchina.com.br ${NC}" +echo -e "SUPPORT: ${YELLOW}https://osx-proxmox.com ${NC}" -echo -n -e "\nPath to temporary files (work dir): " -read TEMPDIR +# Check for root +if [ "$EUID" -ne 0 ]; then + echo -e "${YELLOW}[!] Рекомендуется запускать от root для корректной работы.${NC}" + echo -e "Продолжить как обычный пользователь? (y/n)" + read -r answer + if [[ ! "$answer" =~ ^[Yy]$ ]]; then + echo "Выход." + exit 1 + fi +fi -echo -n -e "Path to macOS Installation (.app) file: " -read APPOSX +# Ask for temp directory +read -p $'\n'"Введите путь к рабочей директории (work dir): " TEMPDIR +if [ ! -d "$TEMPDIR" ]; then + echo -e "${RED}[!] Указанная директория не существует.${NC}" + exit 1 +fi -echo " " +# Ask for macOS app path +read -p "Введите путь к macOS Installer (.app): " APPOSX +if [ ! -d "$APPOSX" ]; then + echo -e "${RED}[!] Указанный .app файл не найден.${NC}" + exit 1 +fi -## Core -cd ${TEMPDIR} > /dev/null 2> /dev/null -rm -rf macOS-install* > /dev/null 2> /dev/null -hdiutil create -o macOS-install -size 16g -layout GPTSPUD -fs HFS+J > /dev/null 2> /dev/null -hdiutil attach -noverify -mountpoint /Volumes/install_build macOS-install.dmg > /dev/null 2> /dev/null -sudo "${APPOSX}/Contents/Resources/createinstallmedia" --volume /Volumes/install_build --nointeraction -hdiutil detach -force "/Volumes/Install macOS"* > /dev/null 2> /dev/null && sleep 3s > /dev/null 2> /dev/null -hdiutil detach -force "/Volumes/Shared Support"* > /dev/null 2> /dev/null -mv macOS-install.dmg macOS-install.iso > /dev/null 2> /dev/null +cd "$TEMPDIR" || { echo -e "${RED}[!] Не могу перейти в указанную директорию.${NC}"; exit 1; } -echo " " +# Clean up previous files +echo -e "\n${YELLOW}[*] Очистка старых файлов...${NC}" +rm -rf macOS-install.dmg* > /dev/null 2>&1 + +# Create DMG +echo -e "${YELLOW}[*] Создание временного дискового образа...${NC}" +hdiutil create -o macOS-install.dmg -size 16g -layout GPTSPUD -fs HFS+J > /dev/null 2>&1 + +# Mount DMG +echo -e "${YELLOW}[*] Подключение образа...${NC}" +hdiutil verify macOS-install.dmg > /dev/null 2>&1 +hdiutil mount macOS-install.dmg > /dev/null 2>&1 +MOUNT_POINT="/Volumes/install_build" + +# Run createinstallmedia +echo -e "${YELLOW}[*] Заливка macOS установщика в образ... Это может занять несколько минут.${NC}" +sudo "$APPOSX/Contents/Resources/createinstallmedia" --volume "$MOUNT_POINT" --nointeraction + +# Unmount volumes +echo -e "${YELLOW}[*] Отключение томов...${NC}" +diskutil list | grep "Install macOS" | awk '{print $1}' | xargs -I {} hdiutil detach {} > /dev/null 2>&1 +sleep 3 + +# Convert to ISO-style file +echo -e "${YELLOW}[*] Конвертация в формат ISO...${NC}" +mv macOS-install.dmg macOS-install.iso + +# Final message +echo -e "\n${GREEN}[✓] Готово! Образ создан:${NC}" +echo "Файл: macOS-install.iso" +echo "Теперь вы можете загрузить его в Proxmox как CD-ROM (VirtIO или IDE)."