#!/usr/bin/env python
"""
extract a ramdisk from a boot image.
Usage:  getramdisk.py boot.img
Outputs to "ram"
"""

import sys, struct

if len(sys.argv) != 2 :
    print "usage:  %s fn" % sys.argv[0]
    raise SystemExit(1)
fn = sys.argv[1]

pgsz = 2048
f = file(fn, "rb")
hdr = f.read(pgsz)
kernlen,dummy,ramlen = struct.unpack("<III", hdr[8:20])
kernpg = (kernlen + pgsz - 1) / pgsz
rampg = (ramlen + pgsz - 1) / pgsz

f.seek(pgsz * (1+kernpg))
d = f.read(pgsz * rampg)
of = file("ramdisk.img", "wb")
of.write(d)
of.close() 


