| .. SPDX-License-Identifier: GPL-2.0+ | |
| .. index:: | |
| single: mbr (command) | |
| mbr command | |
| =========== | |
| Synopsis | |
| -------- | |
| :: | |
| mbr verify [interface] [device no] [partition list] | |
| mbr write [interface] [device no] [partition list] | |
| Description | |
| ----------- | |
| The mbr command lets users create or verify the MBR (Master Boot Record) | |
| partition layout based on the provided text description. The partition | |
| layout is alternatively read from the 'mbr_parts' environment variable. | |
| This can be used in scripts to help system image flashing tools to ensure | |
| proper partition layout. | |
| The syntax of the text description of the partition list is similar to | |
| the one used by the 'gpt' command. | |
| Supported partition parameters are: | |
| * name (currently ignored) | |
| * start (partition start offset in bytes) | |
| * size (in bytes or '-' to expand it to the whole free area) | |
| * bootable (boolean flag) | |
| * id (MBR partition type) | |
| If one wants to create more than 4 partitions, an 'Extended' primary | |
| partition (with 0x05 ID) has to be explicitly provided as a one of the | |
| first 4 entries. | |
| Here is an example how to create a 6 partitions (3 on the 'extended | |
| volume'), some of the predefined sizes: | |
| :: | |
| => setenv mbr_parts 'name=boot,start=4M,size=128M,bootable,id=0x0e; | |
| name=rootfs,size=3072M,id=0x83; | |
| name=system-data,size=512M,id=0x83; | |
| name=[ext],size=-,id=0x05; | |
| name=user,size=-,id=0x83; | |
| name=modules,size=100M,id=0x83; | |
| name=ramdisk,size=8M,id=0x83' | |
| => mbr write mmc 0 | |
| To check if the layout on the MMC #0 storage device matches the provided | |
| text description one has to issue following command (assuming that | |
| mbr_parts environment variable is set): | |
| :: | |
| => mbr verify mmc 0 | |
| The verify sub-command is especially useful in the system update scripts: | |
| :: | |
| => if mbr verify mmc 0; then | |
| echo MBR layout needs to be updated | |
| ... | |
| fi | |
| The 'mbr write' command returns 0 on success write or 1 on failure. | |
| The 'mbr verify' returns 0 if the layout matches the one on the storage | |
| device or 1 if not. | |
| Configuration | |
| ------------- | |
| To use the mbr command you must specify CONFIG_CMD_MBR=y. | |
| Return value | |
| ------------ | |
| The variable *$?* takes the following values | |
| +---+------------------------------+ | |
| | 0 | mbr write was succesful | | |
| +---+------------------------------+ | |
| | 1 | mbr write failed | | |
| +---+------------------------------+ | |
| | 0 | mbr verify was succesful | | |
| +---+------------------------------+ | |
| | 1 | mbr verify was not succesful | | |
| +---+------------------------------+ | |
| |-1 | invalid arguments | | |
| +---+------------------------------+ |