Create a Leopard to Snow Leopard Upgrade NetInstall Image

UPDATE (10/15/09): I’ve gotten mixed results from some individuals who’ve tried the workaround with 10.6.1. I’m working on and testing an extended workaround that should fix the problem for everyone. Look for that info soon.

— — — —

UPDATE (10/13/09): I’ve updated the article (and posted it as new) with a workaround for the issue that prevented additional packages from being installed. I submitted the bug that this workaround avoids to Apple — id #7247968 — on September 23, 2009.

— — — —

This post is a Snow Leopard update to a process I wrote about when Leopard (10.5) came out. This post will tell you how to create a NetInstall image that will upgrade a Mac running Leopard to the latest version of Snow Leopard in one step. It will also work to upgrade a Mac running Tiger to the latest version of Snow Leopard.

What You’ll Need

  1. A 10.6 software license, or individual retail copy of Leopard, for each computer you are upgrading from Leopard or Tiger to Snow Leopard — this is easily overlooked, so let’s keep things legal.
  2. A read/write disk image (.dmg) of a Mac OS X v10.6 Snow Leopard Install DVD (i.e. not shipped with a computer). You’ll convert this to read-only after making a small modification to one of the files.
  3. One build computer running Snow Leopard with the latest version of Snow Leopard’s Server Admin Tools installed (10.6.0 as of this writing).
  4. A computer running OS X Server providing NetBoot services — Tiger, Leopard, and Snow Leopard Server will all work
  5. A copy of the OSUpgrade.pkg found on the Install DVD at /Volumes/Mac OS X Install DVD/System/Installation/Packages. This is a hidden folder, so use Go to Folder from the Finder’s Go menu to reveal it.
  6. Optional: the latest Combo Updater — 10.6.1 as of this writing. (Yes, it’s not a Combo Update, but only because it’s a .1 updater.)

I. Make a Read-Write Installer Disk Image

As of Mac OS 10.5.7, there has been a bug in in the OS installer that prevents you from successfully adding sizeable packages to your System Image Utility. Fortunately, there is a workaround. I’ll walk you through how to implement it here.

  1. Insert the OS Install DVD into your drive and then launch Disk Utility (found in /Applications/Utilities).
  2. Select the Install DVD from the list on the left, then click the New Image icon in the toolbar.Disk Utility
  3. Rename the image if you like, choose a location to save it, and change the Image Format option to read/write. Click Save to create the read/write disk image.Disk Utility Save
  4. When the disk image is done, eject the DVD, select the disk image on the left side of the window, and click the Open icon in the toolbar to mount it.

II. Modify the Disk Image

The reason we need to modify the disk image is because, since 10.5.7, the System Image Utility can’t properly handle additional packages that you add into your workflow. During startup — whether from DVD or via NetBoot — the installer creates a RAM disk to hold the contents of the /private/var directory. This is where additional packages get placed. The RAM disk size specified by Apple’s installer is too small to hold anything but payloadless packages. The following instructions walk you through changing the size of this RAM disk to better accommodate additional packages.

  1. Open Terminal, navigate to the /etc/ directory on the disk image and open the rc.cdrom file in your favorite text editor. This file is marked as read-only, so I like to use vi as it allows you to easily write to read-only files. This command will open the file in vi:
    vi /Volumes/Mac\ OS\ X\ Install\ DVD/etc/rc.cdrom
  2. The line you’ll need to modify is ‘RAMDisk /var/run 1024’. Change 1024 to 1048576and force vi to write the read-only file. 1048576 is equivalent to 512mb — we’re specifying sectors, which are 512 bytes each — which should be sufficient for any additional packages you want to include in your upgrade NetInstall image. If your vi skills are rusty or missing, follow these step to make this change.
    1. Use the arrow keys to move the cursor down to the ‘RAMDisk /var/run 1024’ line and onto the 1 in 1024.
    2. Type cw — short for “change word”. The 1024 will disappear and vi will enter insert mode, which allows you to add characters to the file.
    3. Type 1048576
    4. Press the Esc key to exit insert mode.
    5. Type :x! to force the read-only file to be saved and exit vi.
  3. Exit Terminal.

III. Convert the Disk Image to Read-only/Compressed

  1. Go back to Disk Utility, select the mounted disk image on the left side of the window and click the Unmount icon in the toolbar.
  2. Select the disk image and click the Convert icon in the toolbar.
  3. Choose compressed from the Image Format menu. Rename the disk image so you know it’s the one you’ve modified, or save it in a different location from your read/write image. Click Save to begin the conversion.
  4. Exit Disk Utility after the conversion is complete.

Keep this disk image in a safe place as you’ll be able to re-use it when you want to create an updated NetInstall image — say when the 10.6.2 Combo Update is released.

IV. Build your NetInstall Image

If you haven’t yet made a DMG from the Mac OS X v10.6 Leopard Install DVD, do it now. (I use Disk Utility to create a default compressed image.) Mount the disk image and then launch the System Image Utility found in /Applications/Server. The program will auto-detect the mounted disk image as a source and select the NetInstall Image build option.

LtoSL1

Click Customize at the bottom of the window to bring up the workflow assembly interface.

LtoSL2

The idea here is to drag and drop the components you want from the Automator Library window to the workflow area. The Define Image Source item is added for you at the top, with the Create Image item below it. We’re going to build the simplest possible custom upgrade image, so we’ll add only one more item to our workflow.

First, select the Add Packages and Post-Install Scripts item and drag it over in between the two existing items. Now go to the Finder and locate the OSUpgrade package. and the latest Combo Updater for Snow Leopard. You’ll have to grab the package from the mounted update dmg. (10.6.1 isn’t a combo update since there are no previous updates, but it will work just fine.) Drag the package into the list area of the Add Packages and Post-Install Scripts item.

LtoSL3.1

Then, in the Create Image item at the bottom of your workflow, make sure the NetInstall option is selected in the Type section. Click the Save To drop down and select Other. Select your boot drive from the Devices list in the sidebar and click Open. (You can save directly to a network volume if you want to save yourself a step later, but I like to save mine locally so a network hiccup won’t interrupt the image build process.)

LtoSL4

You can probably ignore the Installed Volume field since we’re working on an upgrade, but you can supply the standard volume name of the Macs you manage here. In the Image Name field, enter a descriptive name. In the Network Disk field, enter a name that you’d like the NetInstall set to be advertised as on the network. (If your network is set up to advertise your NetBoot server across the network, your NetBoot/NetInstall volumes will appear in the Startup Disk preferences pane of all the Macs on your network.) Enter a Description if you wish, and then enter a unique Index number. Choose a number between 1-4095 if you have a single NetBoot server. Choose a number between 4096-65335 if you have more than one NetBoot server in a load-balanced configuration.

Now click Save to save the workflow. When a new Combo Updater comes out later, you’ll be able to use this workflow and just drag that package in — removing any older Combo Updaters, of course.

To build the image, click Run. In a few moments, you’ll be asked for your admin credentials, after which the build process will begin. If you want to track the progress, go to the View menu and select Show Log. This is a relatively quick build, so hang around unless you really need a coffee. It should take well under 30 minutes, and as little as 10 with recent hardware.

It’s done! Now what?

Ok, so your NetInstall image was created successfully. All that’s left to do now is to copy it to your server’s (or servers’) NetBootSPx share(s). (I have mine shared via AFP, but your environment may be different.) After you’ve transferred it, use Server Admin to enable the new NetBoot image. Assuming your network is set up in a NetBoot-friendly way, you should now be able to upgrade any Mac under your control from Leopard (or Tiger) to Snow Leopard by booting it with this NetInstall image.

Don’t forget to test, test, test before using this in production.

Advertisements

42 thoughts on “Create a Leopard to Snow Leopard Upgrade NetInstall Image

  1. Have you tested the packages post-install add-in under Snow Leo? I have had many instances where it fails to include them – including most recently under 10.5.7 over the summer…

  2. Cheers for this guide. I’m happy to report that I could successfully update a 10.5.x client to 10.6.0, but the 10.6.1 Update was not applied. The server is running Mac OS X 10.5.8 Server.

    Best regards, Oliver

    • I also noticed that the 10.6.1 update didn’t get applied. Perhaps this method isn’t going to work for an all-at-once upgrade from Leopard to to 10.6.x. That’s an unfortunate turn of events if true.

  3. Excellent workaround trick. I’m disheartened that this bug made its way through, but glad to know that (hopefully) they’re on top of fixing it. Nice catch!

  4. i did same as above except i didnot include macosx10.6.1.pkg

    when i netboot from client i get a globe icon flashing for a minute and later boots normally from hard disk

    please help me im struck

  5. I’m getting failures on the PostInstall attempts on either the 10.6.1 update or the 10.6.2 combo. The SIU adds the package to the OSInstall.collection, when the OS Installer gets to the 10.6.x update package, it logs in the install.log (OSInstaller: Failed install preflight: Error Domain=PKInstallErrorDomain Code=102 “The package “MacOSXUpdCombo10.6.2.pkg” is untrusted.”) then gives an underlying error “CSSMERR_TP_NOT_TRUSTED”

    Looking at the rc.install script on the NetInstall image, it looks like the version of SIU that I’m using might have recently changed the way it sets up customized NetImage Installs to use OS Installer, but the OS Installer doesn’t seem to trust Apple’s 10.6 update packages.

    Any suggestions?

  6. I’m looking to add iLife 09 along with the Snow Leopard install. The file size for iLife is significant larger than any of the combo updates. Will that cause a problem?

  7. Have you had any luck with customized Netinstall images in 10.6.2? I can’t seem to get the enable automated installation working. I’ve got my own packages that work fine on my 10.5.X netboot setup.

    • Many people have complaining about this apparent bug in SIU on various email lists (macenterprise and apple’s macos-x-server), and a few have submitted bugs to Apple about this. My work responsibilities are elsewhere now so I don’t have time to troubleshoot it myself.

  8. Do the computers need to already boot from the Netboot server and have an image on the server for this to work or can you update a stand alone computer with this? All of our machines have a standard install locally on the computer. Thanks!

  9. Thanks for the guide but I get the following error upon installation:

    “The installer could not start up the computer from the disk Macintosh HD. Try selecting your disk using the Startup Disk utility.”

    What could I be doing wrong?

    • What model of Mac are you doing this on? Also, when you say “upon installation” do you mean that the computer successfully NetBoots, but then won’t do the install?

      • Intel macbook running 10.5.8

        Yes, it successfully NetBoots. I will start the install and it will sit there for a few minutes giving an approximate time remaining and then give me that error.

    • I’ve actually not seen that error before. If you’re already using the latest version of the Admin Tools, I’m not sure what to tell you. Can you open up the installer log while it’s going?

  10. A bit off topic, but… Once a client is NetInstall booted, can that client be controlled remotely by ARD? I’d like to setup the server and then update our 10.5 clients to 10.6 while everyone (including myself) is at home.

  11. Would this process work with a Mac OS Snow Leopard CPU Drop-in DVD. Everything has worked up until the client mac mini starts the restore process. After 43 minutes remaining it fails. Any thoughts? I figured the Drop-in DVD would be a problem but wanted to try.

  12. Does this work using server 10.6.4 NetBoot? I have tried creating a Netinstall workflow using these instructions with 10.6.1 update package and 10.6.4 combo with no luck. I also tried using the vanilla 10.6 install with the 10.6.1 & 10.6.4 update with no luck.

  13. Having some major difficulty. Followed you steps to the T…I’m trying to create a Leopard Netinstall image for additional servers we are adding to our “forest.” These will only be running Leopard Server and not Snow Leopard, but the DC is a Snow Leopard server, it is also the machine we are creating the images on. The problem occurs when I mount the DMG. System Image Utility does not detect the DMG. Nor does it detect that physical media when inserted in the DVD drive in the server. Thus, it does not allow me to proceed with building the image. I tried to step around this by manually selecting the Source, but when I enter all the options and then click Run, the log shows that it has successfully created the image, but it does not. It also takes about 10 seconds to execute the run. Where am I going wrong? Your help is appreciated! M

    • Mark, you cannot build a NetInstall image for 10.5 using 10.6 tools. As you’ve discovered, System Image Utility on 10.6.x will not see anything other than a 10.6.x OS install disc/image as valid. You will have to create your image on a computer running 10.5.

  14. Yup! That worked…we have Tiger (PPC), Leopard (PPC/Intel) & Snow Leopard workstations hanging around. I was looking to re-purpose some of the older DP G5 Xserve’s we have as Leopard servers. Now I can! Thanks so much for your help. Cheers!

  15. Slightly off topic, but if you have a Mac OS X Snow Leopard Server (unlimited client license) can you upgrade your 10.5.8 clients to Snow Leopard from it, or do you still have to buy individual client Snow Leopard licenses?

    • The server license is separate from client licenses. Unlimited simply means that any number of clients can use the server simultaneously. You will need to purchase a client license for each computer you upgrade to Snow Leopard.

  16. sorry for the possibly silly question, but following these steps, where do I find the “OSUpgrade” pkg???

  17. I have used the stellar drive clone to create image of my Mac disk. I can save it at desired location on the network and can restore this image from there. The most significant feature of this image is – I can use it for recovery of data even after a hard drive crash.

Comments are closed.