pub enum RecoveryRequest {
InitSystemPartitionTable {
partitions: Vec<PartitionInfo>,
responder: RecoveryInitSystemPartitionTableResponder,
},
WriteDataFile {
filename: String,
payload: Vmo,
responder: RecoveryWriteDataFileResponder,
},
WipeStorage {
blobfs_root: Option<ServerEnd<DirectoryMarker>>,
blob_creator: Option<ServerEnd<BlobCreatorMarker>>,
responder: RecoveryWipeStorageResponder,
},
}
Expand description
Special functionality that is only intended to be used in recovery and device bringup. All methods require fuchsia.fshost.Netboot to be set, unless otherwise indicated.
Variants§
InitSystemPartitionTable
Wipes and re-initializes the system partition table. This is a destructive operation!
WriteDataFile
Writes filename
into the data partition with contents from payload
, formatting the data
partition if it isn’t already formatted. Overwrites file if it already exists.
This can only be called while the data partition isn’t already mounted, which is typically
in recovery builds where fshost is running with the ramdisk_image
flag set.
WipeStorage
Reprovision the first non-ramdisk FVM volume, and format/mount the blob partition.
The formatted Blobfs instance can be accessed via the client end of blobfs_root
; if no
handle is provided, then blobfs won’t be formatted.
If fxblob is configured, blob_creator will be connected with the fxfs BlobCreator protocol,
which should be used instead of creating blobs in the blobfs_root
. blobfs_root
will
still be connected and can be used to read blobs. If fxblob is configured, but no handle is
provided for blob_creator or for blobfs_root, the blob volume won’t be formatted. If a
handle is provided for blob_creator but fxblob is not configured, the channel will be
closed.
This function will pause the fshost block watcher regardless of success or failure.
Requires fshost to be started with the ramdisk_image
config option set to true.
WARNING: This will cause irreversible data loss. Use with caution.
TODO(https://fxbug.dev/42063480): This function unbinds all child drivers of the volume to be wiped. This can race with the fshost block device manager, which attempts to bind the FVM driver and unseal the zxcrypt volume.
Fields
blobfs_root: Option<ServerEnd<DirectoryMarker>>
blob_creator: Option<ServerEnd<BlobCreatorMarker>>
responder: RecoveryWipeStorageResponder
Implementations§
Source§impl RecoveryRequest
impl RecoveryRequest
pub fn into_init_system_partition_table( self, ) -> Option<(Vec<PartitionInfo>, RecoveryInitSystemPartitionTableResponder)>
pub fn into_write_data_file( self, ) -> Option<(String, Vmo, RecoveryWriteDataFileResponder)>
pub fn into_wipe_storage( self, ) -> Option<(Option<ServerEnd<DirectoryMarker>>, Option<ServerEnd<BlobCreatorMarker>>, RecoveryWipeStorageResponder)>
Sourcepub fn method_name(&self) -> &'static str
pub fn method_name(&self) -> &'static str
Name of the method defined in FIDL