Submit Hint Search The Forums LinksStatsPollsHeadlinesRSS
14,000 hints and counting!


Click here to return to the 'Create a hard-drive based OS X installer' hint
The following comments are owned by whoever posted them. This site is not responsible for what they say.
Create a hard-drive based OS X installer
Authored by: lukasha on Jan 04, '06 09:33:33AM

Not to hijack this, but the last poster is correct about using Disk Utility. That's how I setup my disk. I did rename mine to Tiger and haven't had a problem yet. What I'm really curious about is whether someone has come up with a definitive guide to slipstreaming installs into the disc. I've found various hints, but so far I haven't had much luck with Tiger and it's still way too tedious and I just don't know enough to dig into all the .plists. If someone had a step by step guide, please point it out.

Jeff



[ Reply to This | # ]
Create a hard-drive based OS X installer
Authored by: heavyboots on Jan 04, '06 10:11:48AM

Well, this isn't exactly slipstreaming, but if you collect up all the installers, you can always use PackageMaker to make an metapackage out of them.

/Developer/Applications/Utilities/PackageMaker

This at least relieves the tedium of having to install 8 security updates, 3 DVD updates, a new iTunes, iPod software, etc etc etc as separate installs. One package to bind them, one click to install them all to paraphrase LOTR... :)



[ Reply to This | # ]
Create a hard-drive based OS X installer
Authored by: timrob on Jan 04, '06 08:54:53PM

I don't know what slipstreaming is, but if you check out the manpage for asr.

man asr

It explains in detail how to create an install image based on your current installation.



[ Reply to This | # ]
Adding software update packages to a hard-drive based OS X installer
Authored by: macworks on Jan 06, '06 11:26:01PM
Jeff:

I've been working this most of the day and found a working solution for some of the software updates that follow an installation. My solution involves setting up the hard drive based OS X (Tiger) installer (described in this thread) with a few minor modifications.

Here are the steps I used:
  1. Turn off the "Ignore ownership on this volume" option in the get info window for the hard drive based installer partition that you're working with. This prevents your additions/edits from getting different ownership/group permissions than the default installer uses on the installation volume (root:wheel).

  2. Remove any of the spaces in the package names that you wish to add to the installer process. I don't know if it's necessary, but I noticed that none of Apple's entries had spaces, so I felt it was safest to remove them.

  3. Place the software update packages that you wish to add to the Mac OS X installation process into /System/Installation/Packages/

  4. Navigate to /System/Installation/Packages/ and right-click (or control-click) on OSInstall.mpkg and choose "Show Package Contents" and open the "Contents" folder.

  5. Using a text editor that will allow you to over-ride ownership permissions (I used BBEdit) open the following items (within the Contents folder):
    • OSInstall.dist (drag onto the text editor to open, it's plain text file)
    • Info.plist
    • Resources/English.lproj/Localizable.strings


  6. Within Info.plist, add entries for each of the packages that you've added to the Packages folder. Note that if you removed spaces in the package names (see above) make sure you do NOT include spaces in your Info.plist entries. The entries must match the package names exactly! My new entries were placed just above the X11 entry and look like this:
    
    	<dict>
    		<key>IFPkgFlagPackageLocation</key>
    		<string>AirPortUpdate2005-001.pkg</string>
    	</dict>
    	<dict>
    		<key>IFPkgFlagPackageLocation</key>
    		<string>iPod2005-11-17.pkg</string>
    	</dict>
    	<dict>
    		<key>IFPkgFlagPackageLocation</key>
    		<string>iTunesPhoneDriver.pkg</string>
    	</dict>
    	<dict>
    		<key>IFPkgFlagPackageLocation</key>
    		<string>SecurityUpdate2005-009.pkg</string>
    	</dict>
    


  7. Within the OSInstall.dist file, locate the part the reads ...
    <line choice="X11"/>
    ... and add a group similar the the "Language Translations" section directly above X11. Modify the entries to match the packages that you've added. My entries look like this:
    
    <line choice="SoftwareUpdates">
      <line choice="AirPortUpdate2005-001"/>
      <line choice="iPod2005-11-17"/>
      <line choice="iTunesPhoneDriver"/>
      <line choice="SecurityUpdate2005-009"/>
    </line> 
    
    NOTE: I chose "SoftwareUpdates" as the name for my "Package Group" but you could choose anything you want. Again, don't use spaces. You'll see why in the next step.

  8. Within OSInstall.dist (further down), locate
    
    <choice 
    	id="X11"
    	title="X11_title"
    	description="X11_description"
    	start_enabled="upgrade_allowed()"
    	start_selected="false"
    >
    <pkg-ref id="com.apple.pkg.X11User"/>	
    </choice>
    
    Add entries for each of the packages you've added directly above the X11 entry. My entries look like this:
    
    <choice 
    	id="SoftwareUpdates"
    	title="SoftwareUpdates_title"
    	description="SoftwareUpdates_description"
    >
    </choice>
    
    <choice 
    	id="AirPortUpdate2005-001"
    	title="AirPortUpdate2005-001_title"
    	description="AirPortUpdate2005-001_description"
    	start_enabled="upgrade_allowed()"
    	start_selected="my.choice.enabled"
    >
    <pkg-ref id="com.apple.pkg.AirPortUpdate2005-001"/>	
    </choice>
    
    <choice 
    	id="iPod2005-11-17"
    	title="iPod2005-11-17_title"
    	description="iPod2005-11-17_description"
    	start_enabled="upgrade_allowed()"
    	start_selected="my.choice.enabled"
    >
    <pkg-ref id="com.apple.pkg.iPod2005-11-17"/>	
    </choice>
    
    <choice 
    	id="iTunesPhoneDriver"
    	title="iTunesPhoneDriver_title"
    	description="iTunesPhoneDriver_description"
    	start_enabled="upgrade_allowed()"
    	start_selected="my.choice.enabled"
    >
    <pkg-ref id="com.apple.pkg.iTunesPhoneDriver"/>	
    </choice>
    
    <choice 
    	id="SecurityUpdate2005-009"
    	title="SecurityUpdate2005-009_title"
    	description="SecurityUpdate2005-009_description"
    	start_enabled="upgrade_allowed()"
    	start_selected="my.choice.enabled"
    >
    <pkg-ref id="com.apple.pkg.SecurityUpdate2005-009"/>	
    </choice>
    
    Note the first entry, SoftwareUpdates, marks the "Package Group" that you're adding.

  9. Next, locate ...
    
    <pkg-ref id="com.apple.pkg.X11User" auth='root'>file:../X11User.pkg</pkg-ref>
    
    ... and add entries for the packages you've added directly above the X11 entry. My entries look like this:
    
    <pkg-ref id="com.apple.pkg.AirPortUpdate2005-001" auth='root'>file:../AirPortUpdate2005-001.pkg</pkg-ref>
    <pkg-ref id="com.apple.pkg.iPod2005-11-17" auth='root'>file:../iPod2005-11-17.pkg</pkg-ref>
    <pkg-ref id="com.apple.pkg.iTunesPhoneDriver" auth='root'>file:../iTunesPhoneDriver.pkg</pkg-ref>
    <pkg-ref id="com.apple.pkg.SecurityUpdate2005-009" auth='root'>file:../SecurityUpdate2005-009.pkg</pkg-ref>
    
    Make certain that your package names match exactly and that you DO NOT add the .pkg in the 'id' attribute of your tags, but DO include them in the 'file path' part of the tags.

  10. Locate the following entry (again further down in the OSInstall.dist file):
    
    <pkg-ref id='com.apple.pkg.X11User' installKBytes='91388' version='10.4.0.1780000.1733'/>
    
    Add entries for the packages you've added directly above the X11 entry. My entries look like this:
    
    <pkg-ref id="com.apple.pkg.AirPortUpdate2005-001" installKBytes='1297' />
    <pkg-ref id="com.apple.pkg.iPod2005-11-17" installKBytes='85064' />
    <pkg-ref id="com.apple.pkg.iTunesPhoneDriver" installKBytes='65' />
    <pkg-ref id="com.apple.pkg.SecurityUpdate2005-009" installKBytes='13283' />
    
    The installKBytes figures DO NOT have to be accurate but should be close. I think they just give the installer/user an idea how much space the package is going to take up. Furthermore, it helps the installer to determine whether or not the destination has enough space to install everything.

    To get my figures, I made copies of each of my packages to a temp folder on my desktop then pried them open, unarchived the Archive.pax.gz within them and then using the Finder's get info, I measured the size of the resulting files and divided the bytes by 1024 to convert to KB and rounded to the nearest integer. I know my numbers are not accurrate, but my installation works just fine anyway.

  11. Within Localizable.strings, add entries for the "user friendly" package names and descriptions that the installer shows to the user. I don't believe it matters where you place them within the file. My entries look like this:
    
    "SoftwareUpdates_title" = "Post-Install Software Updates";
    "SoftwareUpdates_description" = "Installs applicable software updates.";
    
    "AirPortUpdate2005-001_title" = "Airport Update 2005-001";
    "AirPortUpdate2005-001_description" = "Installs the Airport Update 001 for 2005.";
    
    "iPod2005-11-17_title" = "iPod Updater 2005-11-17";
    "iPod2005-11-17_description" = "Insalls the updated iPod software.";
    
    "iTunesPhoneDriver_title" = "iTunes Phone Driver";
    "iTunesPhoneDriver_description" = "Installs the iTunes phone driver.";
    
    "SecurityUpdate2005-009_title" = "Security Update 2005-009";
    "SecurityUpdate2005-009_description" = "Installs the security update 009 for 2005.";
    
    NOTE: You need the "SofwareUpdates" entry in order for the package section to have a name and description within the the "Customize" section of the installer.

  12. Save and close your files. If you're using BBEdit, it will want authorization in order to make changes to the files, but it WILL NOT change ownership on the files (which is exactly what you want).

CHECKING & CHANGING PERMISSIONS: If you failed to turn off the "Ignore ownership on this volume" (step 1), like I did, you'll need to change the file permissions on your hard drive based installer partition. If you DID do step one before any other steps, you might want to check the permissions anyway.

To check the permissions:

  • Open the terminal (located in /Applications/Utilities)
  • cd to the root level of your hard drive based installer partition (located inside /Volumes)
  • Type "ls -lan" (without the quotes) and press enter
  • Examine the file permissions. All owner and groups should be set to 0 (zero).
To change the permissions:
  • Open the terminal (located in /Applications/Utilities)
  • cd to the root level of your hard drive based installer partition (located inside /Volumes)
  • Type "sudo chown -R 0:0 *" (without quotes) and press enter. You will likely be required to type your admin password.
NOTE: Some groups may not want to change. I learned this because I failed to perform Step 1 before digging into the files. Despite all of my attempts, I could not get the group to go back to 0 on a few of my items like mach & etc. My installer works despite the invalid groups because everything is owned by root.

ABOUT MY STARTING POINT: I started with a Mac OS X 10.4.3 Installer DVD image, so I don't have a lot of additional software updates to apply and that's why my examples only show four added packages to my installation. Your mileage my vary.

I highly suggest that you use a partition that you can test install onto to make sure your modifications are working. I had to erase and install serveral times before I got it all figured out.

A NOTE ABOUT JAVA UPDATES: I tried to include the Java131and142Release2.pkg & J2SE50Release3.pkg packages in my installation, but the installation would fail, so I removed them.

---
Christopher Raymond, MacWorks owner/operator


[ Reply to This | # ]

Adding software update packages to a hard-drive based OS X installer
Authored by: Clownsun on Feb 17, '06 07:01:21PM

When I add Packages to the Installer then try to open the osinstall.mpkg
the installer says it can't open it Could someone tell me what I am doing wrong?

Thanks

Jeffrey Wilson



[ Reply to This | # ]
Adding software update packages to a hard-drive based OS X installer
Authored by: WhiteDog on Mar 20, '06 05:43:53AM

While this is an elegant solution, besides the awesome complexity of it, I see one serious problem. Apple releases OS related updates of one kind or another every week or so; an install disk image with the update packages included would quickly be out of date and you would have to make a new one regularly to maintain the utility of the process. Unless you do OS installs all day long, it's hard to see the advantage of going to so much trouble to expedite the process.

Having a Tiger install image on a FireWire drive would certainly be useful if you have to do Tiger upgrades frequently. Beyond that, the Combo updates usually make the various incremental updates obsolete. For instance, I recently upgraded an old iMac from X 10.4.2 to 10.4.5. At first Software Update had a slew of recommendations; after applying only the 10.4.5 Combo update, this list shrank to two: iTunes 6.0.4 and the latest security update, both of which, like the Combo update, I had on hand; each ran quickly, even on that sluggish old iMac.

For some time now I've used CDs to archive all the updates I need for Panther and Tiger. I have to update the files on them often; however, because new updates usually replace old ones, I've been able to keep the size down around 700 MBs for each one. I recently got one of those mini external FireWire/USB2 drives to use in place of CDs and, though it offers more capacity, I find I still need the CD versions of the updates from time to time so I continue to keep the update folders small enough to fit on a CD. In my experience doing tech support, flexibility is more important than efficiency.

---
WhiteDog

Don't anthropomorphize computers.
They hate that.



[ Reply to This | # ]