Monday, November 2, 2009

How to create OpenSolaris Live USB Stick using 'dd' utility

Several months ago, I wrote tiny utility which enable to make OpenSolaris Live USB stick on Windows box. However some of expert user asked how to create Live USB stick with 'dd' utility on one's UNIX-like OS.

OpenSolaris's USB image file ( which often distributed with '.usb' extention ) is just 'dd' image of root partition. But it is not enough to create bootable USB stick since do not contain required data such as MBR, Grub and Partition Tables.

'usbcopy' shell-script on OpenSolaris generate such data using 'grub', 'fdisk' and 'format' command internally. I have to generate using other way on Windows box.

When developing v0.02 of USB Creator, I made some pattern of required data ( I call this 'head image' ) and flash it before USB image. Header images included in OsolLiveUSB002.zip may be useful for 'dd'-command user.

Please try to flash following procedure below;
  1. Download .usb image ( this example is for Ohta-san's b123 image )
  2. $ wget http://kohju.justplayer.com/docs/mirror/OpenSolaris/eeepc-special/osol-1002-b123-x86-WC-EeePC.usb -O osol-1002-b123-x86-WC-EeePC.usb
  3. Download OsolLiveUSB002.zip ( not v0.03 !! ) and extract
  4. $ wget 'http://devzone.sites.pid0.org/OpenSolaris/opensolaris-liveusb-creator/OsolLiveUSB002.zip?attredirects=0' -O OsolLiveUSB002.zip
    ...
    $ unzip OsolLiveUSB002.zip
    Archive: OsolLiveUSB002.zip
    inflating: OsolLiveUSB002/headimg/0.dat
    inflating: OsolLiveUSB002/headimg/1.dat
    inflating: OsolLiveUSB002/headimg/2.dat
    inflating: OsolLiveUSB002/headimg/3.dat
    inflating: OsolLiveUSB002/OsolLiveUSB.exe
  5. De-compress header images
  6. $ gzip -dc OsolLiveUSB002/headimg/0.dat > 1gb_headimg.dat
    $ gzip -dc OsolLiveUSB002/headimg/1.dat > 2gb_headimg.dat
    $ gzip -dc OsolLiveUSB002/headimg/2.dat > 4gb_headimg.dat
    $ gzip -dc OsolLiveUSB002/headimg/3.dat > 8gb_headimg.dat
  7. Flash your USB stick with concatinating header and .usb image
  8. I used 2GB-Stick of head image this time;
    (become superuser)
    # cat 2gb_headimg.dat osol-1002-b123-x86-WC-EeePC.usb | \
    dd of=(USB Device) (Additional Options)

5 comments:

jhol said...

Thank you!

Robert said...

ah.. so that's why simply dd'ing the image to disk didn't work, thanks :)

casaubon said...

thank you very much, i've been looking all over the net for this.

by the way, i simply can't understand why the folks at genunix don' generate dd'able usb images..

chonan said...

Hi jhol, Robert, casaubon,

Thanks for visiting my blog.
And I am happy that you got over some difficulty :)

Anonymous said...

you're a lifesaver. i finally was able to install opensolaris. unfortunately i found that it is not yet ready for laptop usage. it's at the stage where linux was some five years ago. wpa and bt mouse was a pain to get working. i think i will stick with linux for a few years more until it (hopefully) catches up.

Post a Comment