Skip to content

Instantly share code, notes, and snippets.

@ravenclaw900
Created November 1, 2021 01:45
Show Gist options
  • Star 2 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ravenclaw900/940f4f8da0a3137e67e882d4ce187b0b to your computer and use it in GitHub Desktop.
Save ravenclaw900/940f4f8da0a3137e67e882d4ce187b0b to your computer and use it in GitHub Desktop.
How to upgrade through every version of macOS

How to upgrade through every version of macOS

I was inspired by this YouTube video to try to upgrade through every version of macOS, starting with System Software 1 all the way through macOS 12. I ran into some pitfalls, and decided to document my steps here for anyone else who wants to do this to follow. This guide is intended for running on an actual (Intel) Mac. You need a fairly powerful computer (probably not a MacBook Air), and at least 100GB of free hard drive

Setup

Emulators

To begin, you'll need a few emulators. To be specific, one for the m68k architecture, two for PowerPC, and one for x86_64. I recommend Mini vMac, SheepShaver, QEMU, and VirtualBox, respectively. For QEMU and VirtualBox, look to their respective documentations for instructions on installing them. For Mini vMac and SheepShaver, just download and put them into a directory.

ROMs

You will also need a couple of ROMs, specifically for the Mac Plus and PowerMacintosh. These hold the boot code for the computers/emulators. Since distributing ROMs is a violation of copyright law, I'm not going to link any here, even though Apple has seemed to stop caring. However, if you want to find some, just look around the web. For SheepShaver, I recommend searching "redundant robot sheepshaver" and downloading the "Old World 4mb ROM". For Mini vMac, you'll probably be fine just searching "mac plus rom" and downloading whatever comes up (the worst that can happen is that it won't work and you'll have to get another one). Once downloaded, rename the Mac Plus ROM to "vMac.ROM", and the SheepShaver ROM to "Mac OS ROM", and move them to the directory with the emulators.

Operating Systems

You'll also obviously need the operating systems that you'll be upgrading to as well. Four good websites for this, ordered in how much I trust them, are Apple themselves, WinWorldPC, MacintoshGarden, and Archive.org. I have compiled the files onto IPFS, at /ipfs/bafybeigkgizgd7egjff7tvfh54bli22hdeh3cjbg3hbgu3dhzsze5h266y. I promise the files have not been modified, except for renaming some of the "InstallMacOSX.dmg" files, zipping the macOS installer apps, and using "InstallAssistant.pkg" instead of installer apps when possible. In this gist there's also a list of files that I used. In general, my numbering system for System Software 1.x - 6.x was "use the highest patch version of the lowest minor version", and from then on I pretty much just upgraded through everything.

Virtual Hard Disk

Finally, you'll need a virtual hard disk for storing your operating system. Running dd if=/dev/zero of=HD.img count=2048 in the terminal will create a 1 MiB hard drive, which should be plenty for now. It will be in your home directory, so move it to your emulation folder.

System 1.0

Open up Mini vMac. If you've done everything correctly, you should see a floppy disk with a flashing question mark. Decompress the file for System 1.0, and drag the .img file into the Mini vMac window. You should now have a copy of System Software 1.0 up and running. Now, drag your virtual hard drive into the window as well. You should get a message saying "This is not a Macintosh disk: Do you want to initialize it?". Select "Initialize" and name it "Macintosh HD". Now move everything in the "Mac System Software" drive over to the "Macintosh HD" drive. Select "OK" when you get the prompt saying "Replace items with the same names with the selected items?", all it's overwriting is an empty folder. Once it finishes copying, shut down the machine. Since this version of the System Software doesn't have a formal shutdown mechanism, close the application by holding ctrl + Q + Y. Now, open Mini vMac again, but instead of dragging in the System Software image, drag in your hard drive image instead. The system software should boot there too.

System 2.0 - 5.0

The procedures for updating through System Softwares 2 - 5 are very similar. Decompress the file for that operating system, and then drag the System Tools image into the Mini vMac window. Then drag your hard drive image into the window as well. After that, find and run the "Installer" application ("Install 4.2" in the case of System 2.0), make sure that your virtual hard drive and "Macintosh Plus" are selected, and then click "Install". If you get an error, just quit the installer and try again. Finally, select "Special > Shut Down" to shut down the emulator. If you want, you can drag your virtual hard drive back in to play around with it, otherwise repeat for the next update. Note that unlike the other emulators, Mini vMac cannot run in the background.

System 6.0.8

Boot up the System Software 6 image like the rest, using the "System Startup" image.

Hard drive update 1

System Software 1 uses a completely different filesystem then anything else, and support is dropped for that in version 6. Because of that, you have to change the file system your virtual drive uses. Create another drive using dd if=/dev/zero of=HD1.img count=1048576, this one will be 500 MiB. Drag it into the window and initialize it, again calling it "Macintosh HD". Drag the files from the other drive into it, and then eject the other drive by dragging it to the trash can.

Now install like normal, with the "Installer" application. Whenever it asks for another floppy disk, insert it by dragging it to the window.

MacOS 7.0.1 - 7.5.5

Since System Software 6, you've been able to install new operating systems onto the same disk that you're booted off of. The procedure is basically the same, just put your virtual hard drive in first, then the install drive. As for which drive to use:

MacOS 7.0.1

  • Use the "Install 1" drive.

MacOS 7.5.3

  • Use the "Install 01" drive. You can mount up to 6 drives in Mini vMac at once, so mounting the first 5 install drives (+ your startup drive) at once can give you less work.

MacOS 7.5.5

  • Use the "DISK01" drive.

Emulator update 1

After version 7.5.5, support for many Macintosh computers, including the Mac Plus, was dropped. Therefore, we have to move to another emulator. After decompressing the MacOS 8 file, start up SheepShaver. If you've done everything right, you should again see a floppy disk with a flashing question mark. Open the SheepShaver preferences ("SheepShaver > Preferences..."), and click "Add..." to add a virtual disk. Select your virtual hard disk, and then repeat for the extracted MacOS 8 .iso file. Also, change the "RAM Size (MB)" to 64. Finally, if you want internet, go to the "Miscellaneous" tab and change "Ethernet Interface" to slirp. Select "Save and Quit" at the bottom and then press ctrl + esc to actually quit the emulator.

MacOS 8 - 9.0.4

Open SheepShaver, then run the "Mac OS Install"/"Update to <version>" application in the CD image. Go through the installer, and when it finishes, after rebooting, decompress the file for the next version. Start up SheepShaver, open the preferences, remove the old file, and add the new one. Then click "Save and Quit", and shut down the emulated computer. Start it up again, go through the setup assistant, but quit at the end before setting up internet. Then, repeat for the next update. If it doesn't boot, reset the NVRAM by running rm ~/.sheepshaver_nvram. If you want internet, you can set it up in " > Control Panels > TCP/IP"; make sure "Configure" is set to "Using DHCP Server", then reboot.

Emulator update 2

MacOS 9.0.4 was the last version that SheepShaver could support, so it's time to switch to another emulator. Download the qemu9.command file, move it to your emulation folder, and then type chmod +x in the terminal, but don't press enter. Drag the qemu9.command file to the window, and then press enter. Finally, open the qemu9.command file with TextEdit (ctrl + click on the file, then "Open With" > "TextEdit"). Delete the <REPLACE ME>, and then drag the MacOS 9.1 .iso file into the window, between the quotes (where the <REPLACE ME> was).

Hard drive update 2

The MacOS 9.1 CD doesn't seem to recognize any hard disk not initialized with it, so we have to create a new one. Run qemu-img create -f qcow2 HD2.qcow2 8G to create an 8 GiB virtual hard disk. Move it to your emulation folder, then run the qemu9.command file. In the CD image, open the Drive Setup app ("Utilities" > "Drive Setup") and select the entry called <not mounted> or <not initialized>. Initialize it and then rename it by clicking on its name (untitled) on the desktop. Then shut down the emulated computer. Open SheepShaver and add the new hard disk to your emulated computer in the preferences. Shut the emulated computer down, and then start SheepShaver back up. Transfer all of your files over by copying them in Finder. Once done, shut down SheepShaver.

MacOS 9.1 - 9.2.1

Run the qemu9.command file, then run the "Mac OS Install" application in the CD image. Go through the installer, and when it finishes decompress the file for MacOS 9.2.1. In the qemu9.command file, remove the old CD entry in quotes, and drag the .iso file between the quotes. If you want to run the new operating system on the virtual hard disk, replace the -boot d in the qemu9.command file with -boot c. Shut down the emulated computer.

Emulator update 3

QEMU does still support these versions of Mac OS X, however we have to change command files. Follow the exact same steps that were in Emulator Update 2, replacing qemu9.command with qemu.command and the MacOS 9.1 .iso with the Mac OS X 10.0 .iso.

Mac OS X 10.0 - 10.3

Run the installer, but when it gets to "Installation Type" click "Customize" and deselect everything that you can (you can keep some of these, but it will take more time, additional CDs, and you might need a bigger hard disk). When it finishes decompress the file for the next version. In the qemu.command file, remove the old CD entry in quotes, and drag the first .iso file for the next version between the quotes. If you want to run the new operating system on the virtual hard disk (recommended so that you can go through the setup assistant), replace the -boot d with -boot c, and switch it back when installing. Shut down the emulated computer.

Mac OS X 10.4

Run the installer, but when it gets to "Installation Type" click "Customize" and deselect everything that you can. When it finishes replace the -boot d in the qemu.command file with -boot c. Remove the old CD entry in quotes, and drag the second CD for that same version between the quotes. Run the qemu.command file, and go through the last part of the installer. If you want to run the new operating system on the virtual hard disk, again replace the -boot d with -boot c, and switch it back when installing.

Mac OS X 10.5

In the qemu.command file, change -M mac99 to -M mac99,via=pmu, and then run the file. It might take a while to boot up, just let it run. Go through the installer, but when it gets to "Installation Type" click "Customize" and deselect everything that you can. After the installer finishes, you will get an error that it has failed. Ignore that, and click restart. After it restarts, quit QEMU. If you want to run the new operating system on the virtual hard disk, again replace the -boot d with -boot c, and switch it back when installing.

Emulator update 4

Mac OS X 10.6 dropped support for PowerPC devices, so we have to switch to emulating Intel macs. Open VirtualBox, and select "New" in the top bar. Name it whatever you want, but set "Type" to "Mac OS X" and "Version" to "Mac OS X (64-bit)". On the next page, give it 4096 MB of memory. Create a virtual hard disk, with format "VDI", dynamically allocated, and a size of 40.00 GB. Now, open the settings for that VM, go to the display tab, and set "Video Memory" to 128 MB. Then, go to the "Storage" tab, click on the 💾 with a plus icon, then click on "Hard Disk". Click on "Add", and then select your HD2.qcow2 image. After that, click on ":cd: Empty", and click on the :cd: icon next to "Optical Drive". Click "Choose a disk file", and select the Snow Leopard install disk. Now, click on the "Audio" tab and disable audio. Then, click on the "Network" tab, and change "Attached to" to "Bridged Adapter". Finally, click "OK" and then "Start" to start the virtual machine. If it opens an EFI shell, type FS1:\System\Library\CoreServices\boot.efi to boot the installer. Select the language, but before installing click "Utilities > Disk Utility..." in the top bar. Click on "42.95 GB VBOX HARDDISK MEDIA", and then click "Partition". Set "Volume Scheme" to "1 Partition" and "Name" to "Macintosh HD", then click "Apply". Finally, click the "Restore" tab. Set "Source" to the "Macintosh HD" under "8.59 GB VBOX HARDDISK MEDIA", and "Destination" to the "Macintosh HD" under "42.95 GB VBOX HARDDISK MEDIA". Also, make sure to check "Erase Destination". When that's done, quit Disk Utility.

Mac OS X 10.6

Go through the installer, and make sure to select the larger disk. Also, when it gets to "Installation Type", click "Customize" and deselect everything that you can. When it's done, it should restart and boot in to the virtual computer. On the virtual computer, open System Preferences and go to "Sharing". Check "File Sharing", and note the link beginning with afp://. Now, shut down the virtual machine, and go to the storage tab in settings. Click on HD2.qcow2, and then click the 💾 with an X icon to remove it.

Mac OS X 10.6.8

On the host machine, go into Finder, and select "Go > Connect to Server" in the menu bar. Then, type in the link that you got when enabling file sharing (beginning with afp://). When it asks you to select the volumes that you want to mount, click "<Your User>'s Public Folder". Log in with your username and password on the virtual computer. Finally, drag and drop the Combo Updater .zip file into the public folder. (As an alternative to this, copy the file to a USB drive and mount it in the virtual machine). Now, in the virtual computer, go to the "Public" folder inside of your home folder. Decompress the file, and open the contained .dmg file. After that, run the MacOSXUpdCombo10.6.8.pkg file, and go through the installer. Note that you can also use the Software Update utility in " > Software Update"

Mac OS X 10.7 - OS X 10.8

Log in to the virtual computer, and then drag and drop the .dmg file for the next version in the public folder. Now, in the virtual computer, open System Preferences, go to "Date and Time", and change the date to 10/1/2019. Now, go to the "Public" folder inside of your home folder. Open the .dmg file, and run the InstallMacOSX.pkg file. After going through that installer, it will create an installer app in your Applications folder. Run that app and follow its instructions.

OS X 10.9

Decompress the .zip file, and then log into the virtual computer. Drag and drop the decompressed .app file into the public folder. Now, go to the "Public" folder inside of your home folder. Run the app and follow its instructions. After the installation is done, you'll have to delete the app manually from the public folder.

OS X 10.10 - OS X 10.11

Log in to the virtual computer, and then drag and drop the .dmg file for the next version in the public folder. Now, in the virtual computer, go to the "Public" folder inside of your home folder. Open the .dmg file, and run the .pkg file. After going through that installer, it will create an installer app in your Applications folder. Run that app and follow its instructions.

macOS 10.12

Run VBoxManage setextradata "<VM NAME>" "VBoxInternal/Devices/efi/0/Config/DmiBoardProduct" "Mac-F22589C8", and change the "Paravirtualization Interface" to "None" in the "System > Acceleration" tab in the VM settings. Now, Log in to the virtual computer, and then drag and drop the .dmg file for the next version in the public folder. Now, in the virtual computer, go to the "Public" folder inside of your home folder. Open the .dmg file, and run the .pkg file. After going through that installer, it will create an installer app in your Applications folder. Run that app and follow its instructions.Once it finishes installing, change the "Paravirtualization Interface" back to "Default".

macOS 10.13

Decompress the .zip file, and then log into the virtual computer. Drag and drop the decompressed .app file into the public folder. Now, go to the "Public" folder inside of your home folder. Run the app and follow its instructions. After the installation is done, you'll have to delete the app manually from the public folder.

macOS 10.14

Reboot the virtual machine, and press esc repeatedly while it's booting up. Use the arrow keys to navigate to "Boot Manager", select it, and then select "EFI Internal Shell". Now, type FS2:com.apple.recovery.boot\boot.efi, and when that boots up, select "Disk Utility". Select the "Macintosh HD" disk, and unmount it. Now, go to "Edit > Convert to APFS". Once that's done, reboot the machine. After that, Decompress the .zip file, and then log into the virtual computer. Drag and drop the decompressed .app file into the public folder. Now, go to the "Public" folder inside of your home folder. Run the app and follow its instructions. After the installation is done, you'll have to delete the app manually from the public folder.

macOS 10.15

In the virtual machine, open System Preferences and go to "Sharing". Turn "File Sharing" off and back on, and note the link beginning with smb://. Use that link to connect to the server. Decompress the .zip file, and drag and drop the decompressed .app file into the public folder. Now, go to the "Public" folder inside of your home folder. Run the app and follow its instructions. After the installation is done, you'll have to delete the app manually from the public folder.

macOS 11 - 12

Log into the virtual computer, and drag and drop the .pkg file into the public folder. Now, go to the "Public" folder inside of your home folder. After going through that installer, it will create an installer app in your Applications folder. Run that app and follow its instructions. (If using your own downloaded apps, follow the instructions for 10.13).

That's it!

[WinWorldPC]
[System Software 1.x - 6.x]
Apple Mac OS (System 1.0 (.97) Finder 1.0) (Macintosh System Disk) (Jan 1984) (3.5-400k)
Apple Mac OS (System 2.0 Finder 4.1) (Macintosh System Disk) (Apr 1985) (3.5-400k)
Apple Mac OS (System 3.0 Finder 5.1) (System Tools 1.0 Mac Plus) (Jan 1986) (3.5-800k)
Apple Mac OS (System 4.1 Finder 5.5) (System Tools 2.0.1) (Aug 1987) (3.5-800k)
Apple Mac OS (System 4.2 Finder 6.0) (System Software 5.0) (Oct 1987) (3.5-800k)
Apple Mac OS 6.0.8 (3.5-1.44mb)
[Mac OS 7]
Apple Mac OS 7.0.1 (3.5-1.44mb)
Apple Mac OS 7.5 (3.5)
Apple Mac OS 7.5.3 Revision 2 (3.5-1.44mb)
Apple Mac OS 7.5.5 Update (3.5-1.44mb)
[Mac OS 8]
Apple Mac OS 8.0 (ISO)
Apple Mac OS 8.1 (ISO)
Apple Mac OS 8.5 (ISO)
[Mac OS 9]
Apple Mac OS 9.0.4 (ISO)
Apple Mac OS 9.1 (ISO) (Bad?)
Apple Mac OS 9.2.1 (ISO)
[Mac OS X]
Apple Mac OS X 10.0 (''Cheetah'' 10.0.4K78)
Apple Mac OS X 10.1 (''Puma'' 10.1.5G64)
Apple Mac OS X 10.2.0 (Build 6C115)
Apple Mac OS X 10.3.0 - Disk 1
[MacintoshGarden]
[Mac OS X for PPC (Mac OS 10)]
Tiger_CD1.toast_.zip
Tiger_CD2.toast_.zip
[Archive.org]
[OsxLeopardInstall]
ISO Image
[SnowLeopardInstall] (use the last one when searching)
ISO Image
[install-os-x-mavericks.app] (use the last one when searching)
zip
[Apple]
[Apple Support]
Mac OS X Lion Installer
Mac OS X Mountain Lion Installer
Mac OS X 10.6.8 Update Combo v1.1
[How to get old versions of macOS]
OS X Yosemite 10.10
OS X El Capitan 10.11
macOS Sierra 10.12
macOS High Sierra 10.13
macOS Mojave 10.14
macOS Catalina 10.15
macOS Big Sur 11
[App Store]
macOS Monterey
#!/bin/bash
cd "$(dirname "$0")"
qemu-system-ppc \
-L pc-bios \
-boot d \
-M mac99 \
-m 1024 \
-drive file="<REPLACE ME>",format=raw,media=cdrom \
-drive file=HD2.img,format=qcow2,media=disk \
-g 1024x768x32
#!/bin/bash
cd "$(dirname "$0")"
qemu-system-ppc \
-L pc-bios \
-boot d \
-M mac99,via=pmu \
-m 256 \
-drive file='<REPLACE ME>',format=raw,media=cdrom \
-drive file=HD2.img,format=qcow2,media=disk \
-device usb-mouse
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment