# Best to align all partion start/ends on a cylinder boundary (fdisk prefers it)
# 512 bytes/sector
# 63 sectors/track
# 32 tracks/cylinder

# LBAs are in 'k', so...
# 1008 blocks (1k each) (1032192 bytes) / cylinder

device {

    path /dev/block/sda

    scheme mbr

    # bytes in a disk sector (== 1 LBA), must be a power of 2!
    sector_size 512

    # Start_lba should be on a cylindar boundary.
    start_lba 63

    # Autodetect disk size if == 0
    num_lba 0

    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
        boot {
            active y
            type linux
            # 8 cyls in length... about 8M
            len 8064
        }

        # /dev/sdX4
        # (extended partion begins)

        # /dev/sdX5
        cache {
            type linux
            len 512M
        }

        # /dev/sdX6
        system {
            type linux
            len 512M
        }

        # /dev/sdX7
        third_party {
            type linux
            len 512M
        }

        # /dev/sdX8
        data {
            type linux
            len -1
        }
    }
}
