Creating ISO Images from the OSX Command Line

A super fast way to create ISO images (or any kind of bit for bit copies) from the OS X (or linux, or unix) command line is to use the DD command. This isn't without it's risks since the DD command will duplicate byte for byte all data from one location to another, but once you've found the necessary information you can easily replicate data.

I needed to create a copy of my Windows XP installation CD to use for setting up new virtual machines. Since it's quicker to install VMs from an ISO image rather than from the installation media I wanted an ISO of my CD. The built in OS X disk utility can make this work... in theory. My copy of disk utility (on Snow Leopard) didn't want to recognize the CD. So I turned to my command line knowledge.

I should also note that before you can read the CD using DD, you will need to unmount it:

sudo umount /dev/disk1s0

You'll be prompted for your administrator password, then you're in business.

To create an image of a CD (or DVD or anything else...) use the following:

dd if=/dev/disk1s0 of=/Users/kdmurray/Desktop/WindowsXP.iso bs=64k

  • if= input file, in this case our Windows XP CD
  • of= output file, the actual ISO file you want created
  • bs= block size, the size of chunks the tool will work with I did a few speed tests at 16k, 32k, 64k, 128k, 256k and 1M and found that the 64k seemed to be the ideal block size on my machine. This will vary by CPU, and possibly by hard drive controller, so do a few contolled tests first. To do a test, start the copy process, then stop it after 20-30s (ctrl-c). Whichever one copied the most in 30s is the one you should use.

That's all she wrote, folks. Happy command-lining. 🙂

Build it or Buy it — The Technologist’s Dilemma

The time has finally come for me to pick up a new system. This is usually a very happy moment in a geek's life; the time when you get to spec out a new system with some of the latest tech. Reading product reviews, selecting components... it's fun!

One of the true marks of geekdom is the ability to build your own machines from the ground up. Everything from ordering the parts, to gingerly placing in the CPU and glopping on just the right amount of thermal-conductive paste right through to powering up the system for the first time then installing and pimping out the OS of your choice. I've been there, its a ton of fun when you finally get everything working just right. It's also a fair bit of work.

The more pragmatic geek can also buy a system, spec'd to order from companies like Dell or Lenovo. These systems still have pretty much everything you want, professionally assembled and sent to your door. These usually take a few weeks to ship so you need to be a bit more patient but there's a lot less work involved.

So, what about price? Most of the time the price is pretty comparable for a complete system. I priced out a system with the following basic requirements from both Dell and a local computer retailer:

  • Intel Core i7 860
  • 8GB of Memory
  • Windows 7 Pro

The two systems came out less than $80 apart with some minor differences in specs, hard drive size, optical drive, video card etc. For the most part it was the same system, and essentially the same price.

So what does it come down to? Is one option truly better than any other? The best advice I can give is that you need to get yourself a system you can trust. If that means you want professionals to put the system together for you and certify it, then that's the route you need to take. If, however, you're the Richard Stallman of computer builds and you feel that you need to free each of the components and build a computer that's independent of "the man" and that's where you derive the most value, then that should be your choice.