Refactored the code to make it more maintainable.
- Redid the code for the cloud to be able to specify subnets, with the default based on bridge number. It now adds a bridge every time you run it. - The creating if the VM now prompts you for a bridge to select if there is more than one, and prompts you to select storage if there is more than 1 - The No Subcriber nag removal will now last through Proxmox updates
This commit is contained in:
parent
f5bcd709ac
commit
8c72476379
|
@ -61,6 +61,7 @@ sudo spctl --master-disable
|
|||
## ☁️ Cloud Support (Run Hackintosh in the Cloud!)
|
||||
- [🌍 VultR](https://www.vultr.com/?ref=9035565-8H)
|
||||
- [📺 Video Tutorial](https://youtu.be/8QsMyL-PNrM) (Enable captions for better understanding)
|
||||
- Now has configurable bridges, and can add as many bridges and sprcify the subnet for them.
|
||||
|
||||
---
|
||||
|
||||
|
|
101
install.sh
101
install.sh
|
@ -3,45 +3,80 @@
|
|||
#########################################################################################################################
|
||||
#
|
||||
# Script: install
|
||||
#
|
||||
# https://luchina.com.br
|
||||
# Purpose: Install OSX-PROXMOX
|
||||
# Source: https://luchina.com.br
|
||||
#
|
||||
#########################################################################################################################
|
||||
|
||||
clear
|
||||
# Exit on any error
|
||||
set -e
|
||||
|
||||
if [ -e /root/OSX-PROXMOX ]; then rm -rf /root/OSX-PROXMOX; fi;
|
||||
if [ -e /etc/apt/sources.list.d/pve-enterprise.list ]; then rm -rf /etc/apt/sources.list.d/pve-enterprise.list; fi;
|
||||
if [ -e /etc/apt/sources.list.d/ceph.list ]; then rm -rf /etc/apt/sources.list.d/ceph.list; fi;
|
||||
# Is this better?
|
||||
echo "Waiting to install OSX-PROXMOX..."
|
||||
echo " "
|
||||
|
||||
apt update > /tmp/install-osx-proxmox.log 2>> /tmp/install-osx-proxmox.log
|
||||
|
||||
if [ $? -ne 0 ]
|
||||
then
|
||||
echo " "
|
||||
echo "Error with 'apt-get update' ..."
|
||||
echo "Trying to change /etc/apt/sources.list"
|
||||
echo " "
|
||||
# Always using a Brazilian server will not be fast...
|
||||
# I suggest using the users home country, As it will always be faster.
|
||||
Country=$(curl -s https://ipinfo.io/country | tr '[:upper:]' '[:lower:]')
|
||||
sed -i "s/ftp.$Country.debian.org/ftp.debian.org/g" /etc/apt/sources.list
|
||||
|
||||
echo "Retrying 'apt-get update' ..."
|
||||
echo " "
|
||||
|
||||
apt-get update >> /tmp/install-osx-proxmox.log 2>> /tmp/install-osx-proxmox.log
|
||||
|
||||
if [ $? -ne 0 ]; then echo "Error with 'apt-get update' ..."; exit; fi
|
||||
# Check if running as root
|
||||
if [ "$EUID" -ne 0 ]; then
|
||||
echo "This script must be run as root."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
apt install git -y >> /tmp/install-osx-proxmox.log 2>> /tmp/install-osx-proxmox.log
|
||||
# Define log file
|
||||
LOG_FILE="/root/install-osx-proxmox.log"
|
||||
|
||||
git clone https://github.com/luchina-gabriel/OSX-PROXMOX.git >> /tmp/install-osx-proxmox.log 2>> /tmp/install-osx-proxmox.log
|
||||
# Function to log messages
|
||||
log_message() {
|
||||
echo "$1" | tee -a "$LOG_FILE"
|
||||
}
|
||||
|
||||
if [ ! -e /root/OSX-PROXMOX ]; then mkdir -p /root/OSX-PROXMOX; fi;
|
||||
# Function to check command success
|
||||
check_status() {
|
||||
if [ $? -ne 0 ]; then
|
||||
log_message "Error: $1"
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
/root/OSX-PROXMOX/setup
|
||||
# Clear screen
|
||||
clear
|
||||
|
||||
# Clean up existing files
|
||||
log_message "Cleaning up existing files..."
|
||||
[ -d "/root/OSX-PROXMOX" ] && rm -rf "/root/OSX-PROXMOX"
|
||||
[ -f "/etc/apt/sources.list.d/pve-enterprise.list" ] && rm -f "/etc/apt/sources.list.d/pve-enterprise.list"
|
||||
[ -f "/etc/apt/sources.list.d/ceph.list" ] && rm -f "/etc/apt/sources.list.d/ceph.list"
|
||||
|
||||
log_message "Preparing to install OSX-PROXMOX..."
|
||||
|
||||
# Update package lists
|
||||
log_message "Updating package lists..."
|
||||
apt-get update >> "$LOG_FILE" 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
log_message "Initial apt-get update failed. Attempting to fix sources..."
|
||||
|
||||
# Use main Debian mirror instead of country-specific
|
||||
sed -i 's/ftp\.[a-z]\{2\}\.debian\.org/ftp.debian.org/g' /etc/apt/sources.list
|
||||
|
||||
log_message "Retrying apt-get update..."
|
||||
apt-get update >> "$LOG_FILE" 2>&1
|
||||
check_status "Failed to update package lists after source modification"
|
||||
fi
|
||||
|
||||
# Install git
|
||||
log_message "Installing git..."
|
||||
apt-get install -y git >> "$LOG_FILE" 2>&1
|
||||
check_status "Failed to install git"
|
||||
|
||||
# Clone repository
|
||||
log_message "Cloning OSX-PROXMOX repository..."
|
||||
git clone https://github.com/luchina-gabriel/OSX-PROXMOX.git /root/OSX-PROXMOX >> "$LOG_FILE" 2>&1
|
||||
check_status "Failed to clone repository"
|
||||
|
||||
# Ensure directory exists and setup is executable
|
||||
if [ -f "/root/OSX-PROXMOX/setup" ]; then
|
||||
chmod +x "/root/OSX-PROXMOX/setup"
|
||||
log_message "Running setup script..."
|
||||
/root/OSX-PROXMOX/setup 2>&1 | tee -a "$LOG_FILE"
|
||||
check_status "Failed to run setup script"
|
||||
else
|
||||
log_message "Error: Setup script not found in /root/OSX-PROXMOX"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
log_message "Installation completed successfully"
|
|
@ -1,16 +1,20 @@
|
|||
#!/bin/bash
|
||||
#
|
||||
# Script: check-iommu-enabled.sh
|
||||
# Goal: Check if IOMMU are Enabled in your system
|
||||
# Goal: Check if IOMMU is enabled on your system
|
||||
#
|
||||
# Author: Gabriel Luchina
|
||||
# https://luchina.com.br
|
||||
# 20220128T1112
|
||||
|
||||
if [ `dmesg | grep -e DMAR -e IOMMU | wc -l` -gt 0 ]
|
||||
then
|
||||
# Check for IOMMU or DMAR messages in dmesg
|
||||
iommu_check=$(dmesg | grep -E 'DMAR|IOMMU')
|
||||
|
||||
if [ -n "$iommu_check" ]; then
|
||||
echo "IOMMU Enabled"
|
||||
else
|
||||
echo "IOMMU NOT Enabled"
|
||||
echo "Check file /etc/default/grub contains 'intel_iommu=on' in 'GRUB_CMDLINE_LINUX_DEFAULT' line"
|
||||
echo "Ensure 'intel_iommu=on' or 'amd_iommu=on' is present in the 'GRUB_CMDLINE_LINUX_DEFAULT' line of /etc/default/grub"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
|
|
|
@ -7,6 +7,8 @@
|
|||
# https://luchina.com.br
|
||||
# 20211116T2245
|
||||
|
||||
set -e
|
||||
|
||||
clear
|
||||
|
||||
echo -e "\nAutomate script for create \"ISO\" file of macOS Install in Proxmox VE Environament"
|
||||
|
@ -14,21 +16,27 @@ echo -e "BY: https://luchina.com.br"
|
|||
echo -e "SUPPORT: https://osx-proxmox.com"
|
||||
|
||||
echo -n -e "\nPath to temporary files (work dir): "
|
||||
read TEMPDIR
|
||||
read -r TEMPDIR
|
||||
|
||||
echo -n -e "Path to macOS Installation (.app) file: "
|
||||
read APPOSX
|
||||
read -r APPOSX
|
||||
|
||||
echo " "
|
||||
|
||||
## 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
|
||||
if [ -d "$TEMPDIR" ]; then
|
||||
cd "$TEMPDIR" || exit 1
|
||||
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
|
||||
else
|
||||
echo "The temporary directory does not exist!"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo " "
|
||||
|
||||
|
|
|
@ -5,15 +5,15 @@
|
|||
#
|
||||
# Author: Gabriel Luchina
|
||||
# https://luchina.com.br
|
||||
# 20211118T0010
|
||||
# 20250627T2331
|
||||
|
||||
#!/bin/bash
|
||||
shopt -s nullglob
|
||||
|
||||
for group in `ls /sys/kernel/iommu_groups/ | sort -V`
|
||||
do
|
||||
echo "IOMMU Group ${group##*/}:"
|
||||
for device in /sys/kernel/iommu_groups/$group/devices/*
|
||||
do
|
||||
echo -e "\t$(lspci -nns ${device##*/})"
|
||||
for iommu_group in $(ls /sys/kernel/iommu_groups/ | sort -V); do
|
||||
echo "IOMMU Group ${iommu_group}:"
|
||||
for pci_device in /sys/kernel/iommu_groups/$iommu_group/devices/*; do
|
||||
echo -e "\t$(lspci -nns ${pci_device##*/})"
|
||||
done
|
||||
done
|
||||
|
||||
|
|
Loading…
Reference in New Issue