myspaghetti / macos-virtualbox

Push-button installer of macOS Catalina, Mojave, and High Sierra guests in Virtualbox on x86 CPUs for Windows, Linux, and macOS
GNU General Public License v2.0
13.53k stars 1.12k forks source link

Question about other macOS versions #382

Closed enigma0456 closed 3 years ago

enigma0456 commented 3 years ago

Xubuntu 20.04. Created all the machines available in your script. Catalina upgraded to Big Sur - no issue. Big Sur upgraded to 11.1 no issue. Printed script to read. Haven't coded in years but I recognize well written code when I see it. Good job! My question. Apparently older versions of macOS are still available from Apple. Reading the script, I am trying to determine what would prevent it from downloading and creating an earlier version - even as far back as Snow Leopard? I see there is some hard coding in the script but is there a technical issue that would prevent it from working if the code were revised? Side note: I did notice that a couple of the machines had an extra, small vdi file. I removed it with no impact on the machine function. I also noticed some of the machines (Big Sur and maybe Catalina had some "panic code" in the nvram files. I cleared the nvram from terminal and rebooted. That stopped the message "the last time you shut down there was a problem" and the machine continues to work well. Any tips on what to revise to grab an older version of macOS would be appreciated if you have a moment.

myspaghetti commented 3 years ago

well written code

Thanks for the laugh. The code lacks correctness on many inputs as the script is not engineered but cobbled together. Its only saving grace is the copious amounts of documentation and comments that make it straightforward to understand and modify.

As for earlier versions of macOS, modifying the script to install Sierra is almost trivial, but versions earlier than Sierra require more tinkering. I can confirm the method used in the script works, with some modification, for Snow Leopard, and may work for versions as early as Tiger (10.4)

Panther (10.3) and earlier run on PowerPC.

I'm willing to accept pull requests. I suggest you start with Sierra and work your way back.

Mind that it is far easier to create macOS or "OS X" installers from within the virtual machine or any working copy of macOS, and it can be done with simple one-liners with asr restore or createinstallmedia. The script is generally only useful when a working copy of macOS is not available.

enigma0456 commented 3 years ago

Hi Jack - Twenty years a toolmaker (programmer) then twenty years a tool user (network admin). Started playing with vmware when it first came out and off and on over time. Next Linux back in the days when you got Slackware in the back of a thick book. In my last five years I virtualized all our servers in VirtualBox running on Linux hosts. Fun stuff but no serious coding since VisualBasic in the late 90's. Your script may be "cobbled together" but as someone that has spent many hours of "forensic program maintenance" the existence of good documentation is the most important thing!! I fear that at this point I have nothing to contribute to your project (but who knows going forward). What I do have is a crippled (bad keyboard)Macbook 2008 Snow Leopard un-upgradable and a very functional virtual Big Sur (thanks to you). Both have demonstrated they can pull down a macOS installer. What I have been trying to tease out of your script is:

  1. the code to correctly configure the virtualbox settings. The generic ones don't seem to work and following other instructions on the net always fail to boot. I have spent hours in uefi hell trying to figure out where the boot is.
  2. how to load a virtualbox machine by starting the installer. On a Windows or Linux vm I would just make a cd image and point the cd drive at it and boot the machine and installation starts. Mac does not appear to work that way and I have no real experience to fall back on. I had thought to make a clone of a working vm and use the installer to overwrite it but don't know how to initiate the installer. I was able to clone the drive on the Snow Leopard machine and the do a virtualbox physical to virtual conversion. I was hopeful that would work but again I think not knowing all the correct settings (question 1 above) prevented it from working. It actually began booting the macos but then stopped to wait for something and wouldn't proceed.

So - I'm sure you have a job and a life but any tidbits you care to throw my way would be appreciated. I have a hard time learning things when I don't have an objective but studying your script has caused me to drag out my O'Reilly Classic Shell Scripting book and start working at it. I will be seventy next month so I'm ok with taking shortcuts to get things done haha.

Regards,

Don

On Thu, Jan 14, 2021 at 2:08 AM Jack notifications@github.com wrote:

well written code

Thanks for the laugh. The code lacks correctness https://en.wikipedia.org/wiki/Correctness_(computer_science) on many inputs as the script is not engineered but cobbled together. Its only saving grace is the copious amounts of documentation and comments that make it straightforward to understand and modify.

As for earlier versions of macOS, https://github.com/myspaghetti/macos-virtualbox/issues/206 modifying the script to install Sierra is almost trivial, but versions earlier than Sierra require more tinkering. I can confirm the method used in the script works, with some modification, for Snow Leopard, and may work for versions as early as Tiger (10.4)

Panther (10.3) and earlier run on PowerPC.

I'm willing to accept pull requests. I suggest you start with Sierra and work your way back.

Mind that it is far easier to create macOS or "OS X" installers from within the virtual machine or any working copy of macOS, and it can be done with simple one-liners with asr restore or createinstallmedia. The script is generally only useful when a working copy of macOS is not available.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/myspaghetti/macos-virtualbox/issues/382#issuecomment-759973735, or unsubscribe https://github.com/notifications/unsubscribe-auth/ASOTEB52OXVHSTRVGBNMLSLSZ2J6XANCNFSM4WBKQKAQ .

myspaghetti commented 3 years ago

Thanks for all the compliments!

  1. the code to correctly configure the virtualbox settings.

The only hardware-specific configuration is the CPU and unfortunately I don't plan on keeping a database of which CPU requires which profile or CPUID. The "known issues" on the release page pretty much sums up what I know.

  1. how to load a virtualbox machine by starting the installer

Copy the contents of the bootable_installer.vdi to a FAT32 or EXFAT USB storage device, press and hold Option when the Mac boot chime sounds, then select the USB drive.

Originally I created the script exactly for this purpose - to create USB installation drives for MacBooks with a missing/failed recovery volume, so you're actually using the script for what in my eyes is its primary purpose. (Most people seem to use it to connect Xcode to an iPhone)

I've also had success imaging a fully-installed macOS VDI onto a physical hard drive and booting it on a MacBook but I imagine this process is fragile because of the unknown NVRAM and SMC state on the physical Mac, far easier to use a USB installer.

I will be seventy next month

That's the best thing anyone has ever posted on my issue tracker!