diff --git a/build_library/disk_layout.json b/build_library/disk_layout.json index 7f5c75fddd..2b20e54677 100644 --- a/build_library/disk_layout.json +++ b/build_library/disk_layout.json @@ -29,7 +29,8 @@ "blocks":"2097152", "fs_blocks":"262144", "fs_type":"ext2", - "mount":"/usr" + "mount":"/usr", + "features": ["prioritize"] }, "4":{ "label":"USR-B", diff --git a/build_library/disk_util b/build_library/disk_util index dd0054564d..a561b604e6 100755 --- a/build_library/disk_util +++ b/build_library/disk_util @@ -278,6 +278,7 @@ def WritePartitionTable(options, config=None, partitions=None): syslinux = False hybrid = None + prioritize = [] for partition in partitions.itervalues(): if partition['type'] != 'blank': Cgpt('add', '-i', partition['num'], @@ -293,6 +294,8 @@ def WritePartitionTable(options, config=None, partitions=None): hybrid = partition['num'] if 'syslinux' in features: syslinux = True + if 'prioritize' in features: + prioritize.append(partition) if hybrid: # Enable legacy boot flag and generate a hybrid MBR partition table @@ -314,6 +317,10 @@ def WritePartitionTable(options, config=None, partitions=None): with open(options.disk_image, 'r+') as image_fd: image_fd.write(mbr_code) + prioritize.reverse() + for i, partition in enumerate(prioritize): + Cgpt('add', '-i', partition['num'], '-S1', '-P', i+1, options.disk_image) + Cgpt('show', options.disk_image)