diff --git a/README.md b/README.md index d8eb9d0..8090b91 100644 --- a/README.md +++ b/README.md @@ -499,30 +499,7 @@ sudo mv somedir/mac_hdd_ng.img . # Use an Old Docker-OSX Disk in a Fresh Container (Replication) -You do not have to reinstall everything, you can simply: - -- start a new container - -- overwrite the .img in the new container with your big old one - -```bash - -# start a new docker-osx container -# you can start with ssh, without, or vnc, because they are all interchangable. - -# get the NEW container id -docker ps - -# docker cp your OLD disk into the NEW container -docker cp ./mac_hdd_ng.img newcontainerid:/home/arch/OSX-KVM/mac_hdd_ng.img - -# kill the NEW container -docker kill newcontainerid - -# start the NEW container and it just works -docker start newcontainerid - -``` +[Use the sickcodes/docker-osx:naked image.](https://github.com/sickcodes/Docker-OSX/tree/custom-identity#quick-start-own-image) # DESTROY: Wipe old images to free disk space diff --git a/custom/generate-unique-machine-values.sh b/custom/generate-unique-machine-values.sh index d754d04..aef200b 100755 --- a/custom/generate-unique-machine-values.sh +++ b/custom/generate-unique-machine-values.sh @@ -18,14 +18,16 @@ General options: --model, -m Device model, e.g. 'iMacPro1,1' --csv Optionally change the CSV output filename. --tsv Optionally change the TSV output filename. + --output-bootdisk Optionally change the bootdisk qcow output filename. Useless when count > 1. + --output-env Optionally change the bootdisk env filename. Useless when count > 1. --output-dir Optionally change the script output location. --help, -h, help Display this help and exit --plists Create corresponding config.plists for each serial set. - --qcows [SLOW] Create corresponding boot disk images for each serial set. + --bootdisks [SLOW] Create corresponding boot disk images for each serial set. Example: - ./generate-unique-machine-values.sh --count 1 --model='iMacPro1,1' --plists --qcows + ./generate-unique-machine-values.sh --count 1 --model='iMacPro1,1' --plists --bootdisks The above example will generate a - serial @@ -100,6 +102,26 @@ while (( "$#" )); do shift ;; + --output-bootdisk=* ) + export OUTPUT_QCOW="${1#*=}" + shift + ;; + --output-bootdisk* ) + export OUTPUT_QCOW="${2}" + shift + shift + ;; + + --output-env=* ) + export OUTPUT_ENV="${1#*=}" + shift + ;; + --output-env* ) + export OUTPUT_ENV="${2}" + shift + shift + ;; + --model=* | -m=* ) export DEVICE_MODEL="${1#*=}" shift @@ -114,7 +136,7 @@ while (( "$#" )); do export CREATE_PLISTS=1 shift ;; - --qcows ) + --bootdisks ) export CREATE_QCOWS=1 shift ;; @@ -199,8 +221,9 @@ generate_serial_sets () { printf "${DEVICE_MODEL}\t${Serial}\t${BoardSerial}\t${SmUUID}\t${MacAddress}\n" >> "${TSV_SERIAL_SETS_FILE}" fi - touch "${OUTPUT_DIRECTORY}/envs/${Serial}.env.sh" - cat < "${OUTPUT_DIRECTORY}/envs/${Serial}.env.sh" + OUTPUT_ENV_FILE="${OUTPUT_ENV:-"${OUTPUT_DIRECTORY}/envs/${Serial}.env.sh"}" + touch "${OUTPUT_ENV_FILE}" + cat < "${OUTPUT_ENV_FILE}" export Type=${DEVICE_MODEL} export Serial=${Serial} export BoardSerial=${BoardSerial} @@ -208,10 +231,10 @@ export SmUUID=${SmUUID} export MacAddress=${MacAddress} EOF - # plist required for qcows, so create anyway. + # plist required for bootdisks, so create anyway. if [[ "${CREATE_PLISTS}" ]] || [[ "${CREATE_QCOWS}" ]]; then mkdir -p "${OUTPUT_DIRECTORY}/plists" - source "${OUTPUT_DIRECTORY}/envs/${Serial}.env.sh" + source "${OUTPUT_ENV_FILE}" ROM_VALUE="${MacAddress//\:/}" ROM_VALUE="${ROM_VALUE,,}" sed -e s/{{DEVICE_MODEL}}/"${Type}"/g \ @@ -226,7 +249,7 @@ EOF mkdir -p "${OUTPUT_DIRECTORY}/qcows" ./opencore-image-ng.sh \ --cfg "${OUTPUT_DIRECTORY}/plists/${Serial}.config.plist" \ - --img "${OUTPUT_DIRECTORY}/qcows/${Serial}.OpenCore-nopicker.qcow2" || exit 1 + --img "${OUTPUT_QCOW:-${OUTPUT_DIRECTORY}/qcows/${Serial}.OpenCore-nopicker.qcow2}" || exit 1 fi done