X

BootCD creates custom bootable CD with a Finder!; Related bootable CD and copy volume follow-ups

BootCD creates custom bootable CD with a Finder!; Related bootable CD and copy volume follow-ups

CNET staff
5 min read
Following up on our recent item (Apple! Are you listening?) requesting a utility to make customized bootable CDs that launch applications the user selects:

Use BootCD Ask and ye shall receive! Charles Srstka had already created a utility that does almost everything we asked for! It's called BootCD. To use it:

  1. Mount a copy of the Mac OS X Install CD in your drive.
  2. Launch BootCD. Type in the desired Volume Name and click the "Create bootable CD image" button.
  3. The utility will walk you through the steps of what do to next. Eventually, you will be asked to select to add Terminal plus whatever other utilities you want to be included on the CD. The last step will be to create the disk image file.
  4. After quitting the utility, launch Disk Copy to Burn Image of the image file you created.
  5. Next boot from the CD (holding down the C key at startup). It will actually launch the Finder and load the Dock. The Dock will contain all the applications you previously selected. You have root user status at this point. [Note: This is the first instance we have seen of an OS X bootable CD that contains a Finder!]
  6. The present version of this utility does not mount any volume except the CD itself. Still, even at this point, you can use it with utilities, such as most repair utilities, that can work with an unmounted volume.
    For example, we used the First Aid component of Disk Utility to verify and repair our internal drive. We presume that other OS X repair utilities, such as the soon-to-be-released DiskWarrior for OS X, will work similarly. If so, this would allow you to create an updated CD for these utilities, as needed.
  7. Still, if you want to mount your hard drive, you probably can do it. Charles offered this suggestion (which worked for us): From Terminal, type:
    <mount_hfs [/dev/disk?s?] [some folder]>
    where [some folder] is any empty folder on the CD (there are some in /var/tmp/) and [/dev/disk?s?] is the entry of the partition you want to mount (which you can find by typing <df> in the Terminal when you're booted from the hard disk). For example, we typed:
    <mount_hfs /dev/disk0s9 /private/var/tmp/Mount01>
  8. While this worked, the drive still did not appear in the Finder. To get it to appear, we additionally needed to go to the Finder window for the CD, ideally in column view, and navigate to the /var/tmp/ directory. From here, double-click the Mount01 icon and the volume/partition should mount.
    With the full contents of the hard drive now accessible, we could work with most applications as the root user. For example, we could play Chess or create a document in TextEdit.
  9. The Restart, Shut Down, or Log Out commands in the Apple menu do not work. So, to reboot again from your hard drive, use the <reboot> command in Terminal. To make sure you do not reboot from the CD, hold down the Eject button on your keyboard until the CD ejects.

Charles offered this further information:

Why hard drive volumes do not automount at startup: "In its current incarnation, the autodiskmount script wants to be able to create a folder in /Volumes. If it can't, it aborts with an error. Thanks to this fact, none of the standard Apple mounting stuff will work."

Why Drive 10 may not work: "Some applications will require a disk to be mounted to /tmp in order to work. Notable among these is are applications that use Security.framework. Drive 10 is one such utility. I am still trying to figure out how to modify the image that BootCD creates to enable Security.framework." If you have suggestions, please contact Charles.

Why a RAM disk would be helpful: "I could easily solve these problems if OS X had a RAM disk - then I could put a RAM disk on both /Volumes and /tmp. Then things would work just like if they were booted from the hard disk. Unfortunately, I've never been able to find anyone who know how to make a working RAM disk, and I don't know of another way to make a standardized disc that would put something there mounted read-write. I could detect the /dev entries of people's disks when making the disc, but the problem is that those sometimes change."

Use Disk Copy Bruce McLaughlin notes that you can make a customizable CD of any bootable CD, using the procedure we previously posted for creating a customized OS X Install CD. This might work, in terms of replacing an older version of DiskWarrior with a newer one - starting from a DiskWarrior CD; we'd have to test this out. However, it does not allow you to select which utilities are accessible from the CD, as the Boot CD method does.

Addition to the wish list While we are the subject of "wish lists" for bootable CDs, Stephen Hart offers this additional request:

"Add a 'Rebuild system on new drive' option to the Installer utility. This would copy all user files (or all the user files that are not fatally damaged) from an old install into a new install on a new drive, freshly installing all OS X files. This would make migrating to a new drive or reformatting a drive much easier. Even if you had to run Software update after this process, it would at least allow a user to move to a new drive."

Use Terminal for copying a volume The same recent posting also discussed a related matter: Using the Finder and DiskWarrior to make a bootable copy of a volume. To this, William Kucharski suggests: "Perhaps I am way too much of a Unix geek, but it never even occurred to me to try to use the Finder or any other utility to duplicate a volume when two simple shell commands do it nicely." They are:

# cd <old partiton mount point>
# find . -depth -print | cpio -pdm <new partition mount point>

However, William had not tried this to see if it really worked to make a full copy (including resource forks) and was actually bootable.

Update: James Grinter suggests: "I think you'd need to use <ditto> with its <-rsrcFork> switch rather than <cpio> to effect the copy, so that the resource forks were copied If I remember correctly, ditto is aware of and will copy them when used with that command line switch."