device {
    scheme mbr

    # bytes in a disk "block", must be a power of 2!
    sector_size 512

    # What LBA should the partitions start at?
    start_lba 2048

    # Autodetect disk size if == 0
    num_lba 800000

    partitions {
        # /dev/sdX1
        sysloader {
            active y
            type linux
            # 8 cyls in length... about 8M
            len 8064
        }

        # /dev/sdX2
        recovery {
            active y
            type linux
            # 8 cyls in length... about 8M
            len 8064
        }

        # /dev/sdX3
        inst_boot {
            active y
            type linux
        }

        # /dev/sdX4
        # (extended partion begins)

        # /dev/sdX5
        third_party {
            type linux
            len 8064
        }

        # /dev/sdX6
        inst_system {
            type linux
        }
    }
}
