u-boot/doc/usage/cmd/part.rst
Simon Glass 125194e6a1 part: Allow setting the partition-table type
Some devices have multiple partition types available on the same media.
It is sometimes useful to see these to check that everything is working
correctly.

Provide a way to manually set the partition-table type, avoiding the
auto-detection process.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
2023-07-17 17:12:06 +08:00

228 lines
6.6 KiB
ReStructuredText

.. SPDX-License-Identifier: GPL-2.0+:
part command
===============
Synopis
-------
::
part uuid <interface> <dev>:<part> [varname]
part list <interface> <dev> [flags] [varname]
part start <interface> <dev> <part> <varname>
part size <interface> <dev> <part> <varname>
part number <interface> <dev> <part> <varname>
part set <interface> <dev> <part> <type>
part type <interface> <dev>:<part> [varname]
part types
Description
-----------
The `part` command is used to manage disk partition related commands.
The 'part uuid' command prints or sets an environment variable to partition UUID
interface
interface for accessing the block device (mmc, sata, scsi, usb, ....)
dev
device number
part
partition number
varname
an optional environment variable to store the current partition UUID value into.
The 'part list' command prints or sets an environment variable to the list of partitions
interface
interface for accessing the block device (mmc, sata, scsi, usb, ....)
dev
device number
part
partition number
flags
-bootable
lists only bootable partitions
varname
an optional environment variable to store the list of partitions value into.
The 'part start' commnad sets an environment variable to the start of the partition (in blocks),
part can be either partition number or partition name.
interface
interface for accessing the block device (mmc, sata, scsi, usb, ....)
dev
device number
part
partition number
varname
a variable to store the current start of the partition value into.
The 'part size' command sets an environment variable to the size of the partition (in blocks),
part can be either partition number or partition name.
interface
interface for accessing the block device (mmc, sata, scsi, usb, ....)
dev
device number
part
partition number
varname
a variable to store the current size of the partition value into.
The 'part number' command sets an environment variable to the partition number using the partition name,
part must be specified as partition name.
interface
interface for accessing the block device (mmc, sata, scsi, usb, ....)
dev
device number
part
partition number
varname
a variable to store the current partition number value into
The 'part set' command sets the type of a partition. This is useful when
autodetection fails or does not do the correct thing:
interface
interface for accessing the block device (mmc, sata, scsi, usb, ....)
dev
device number
part
partition number
type
partition type to use (see 'part types') to check available types
The 'part type' command prints or sets an environment variable to the partition type UUID.
interface
interface for accessing the block device (mmc, sata, scsi, usb, ....)
dev
device number
part
partition number
varname
a variable to store the current partition type UUID value into
The 'part types' command list supported partition table types.
Examples
--------
::
=> host bind 0 ./test_gpt_disk_image.bin
=> part uuid host 0:1
24156b69-3378-497f-bb3e-b982223de528
=> part uuid host 0:1 varname
=> env print varname
varname=24156b69-3378-497f-bb3e-b982223de528
=>
=> part list host 0
Partition Map for HOST device 0 -- Partition Type: EFI
Part Start LBA End LBA Name
Attributes
Type GUID
Partition GUID
1 0x00000800 0x00000fff "second"
attrs: 0x0000000000000000
type: ebd0a0a2-b9e5-4433-87c0-68b6b72699c7
(data)
guid: 24156b69-3378-497f-bb3e-b982223de528
2 0x00001000 0x00001bff "first"
attrs: 0x0000000000000000
type: ebd0a0a2-b9e5-4433-87c0-68b6b72699c7
(data)
guid: 5272ee44-29ab-4d46-af6c-4b45ac67d3b7
=>
=> part start host 0 2 varname
=> env print varname
varname=1000
=>
=> part size host 0 2 varname
=> env print varname
varname=c00
=>
=> part number host 0 2 varname
=> env print varname
varname=0x2
=>
=> part type host 0:1
ebd0a0a2-b9e5-4433-87c0-68b6b72699c7
=> part type host 0:1 varname
=> env print varname
varname=ebd0a0a2-b9e5-4433-87c0-68b6b72699c7
=>
=> part types
Supported partition tables: EFI, AMIGA, DOS, ISO, MAC
This shows looking at a device with multiple partition tables::
=> virtio scan
=> part list virtio 0
Partition Map for VirtIO device 0 -- Partition Type: EFI
Part Start LBA End LBA Name
Attributes
Type GUID
Partition GUID
1 0x00000040 0x0092b093 "ISO9660"
attrs: 0x1000000000000001
type: ebd0a0a2-b9e5-4433-87c0-68b6b72699c7
guid: a0891d7e-b930-4513-94d8-f629dbd637b2
2 0x0092b094 0x0092d7e7 "Appended2"
attrs: 0x0000000000000000
type: c12a7328-f81f-11d2-ba4b-00a0c93ec93b
guid: a0891d7e-b930-4513-94db-f629dbd637b2
3 0x0092d7e8 0x0092da3f "Gap1"
attrs: 0x1000000000000001
type: ebd0a0a2-b9e5-4433-87c0-68b6b72699c7
guid: a0891d7e-b930-4513-94da-f629dbd637b2
=> ls virtio 0:3
=> part types
Supported partition tables: EFI, DOS, ISO
=> part set virtio 0 dos
Partition Map for VirtIO device 0 -- Partition Type: DOS
Part Start Sector Num Sectors UUID Type
1 1 9624191 00000000-01 ee
=> part set virtio 0 iso
Partition Map for VirtIO device 0 -- Partition Type: ISO
Part Start Sect x Size Type
1 3020 4 512 U-Boot
2 9613460 10068 512 U-Boot
=> part set virtio 0 efi
Partition Map for VirtIO device 0 -- Partition Type: EFI
Part Start LBA End LBA Name
Attributes
Type GUID
Partition GUID
1 0x00000040 0x0092b093 "ISO9660"
attrs: 0x1000000000000001
type: ebd0a0a2-b9e5-4433-87c0-68b6b72699c7
guid: a0891d7e-b930-4513-94d8-f629dbd637b2
2 0x0092b094 0x0092d7e7 "Appended2"
attrs: 0x0000000000000000
type: c12a7328-f81f-11d2-ba4b-00a0c93ec93b
guid: a0891d7e-b930-4513-94db-f629dbd637b2
3 0x0092d7e8 0x0092da3f "Gap1"
attrs: 0x1000000000000001
type: ebd0a0a2-b9e5-4433-87c0-68b6b72699c7
guid: a0891d7e-b930-4513-94da-f629dbd637b2
=>
Return value
------------
The return value $? is set to 0 (true) if the command succededd. If an
error occurs, the return value $? is set to 1 (false).