[pbs-devel] [PATCH proxmox-backup 11/26] tools: disks: add uuid to PrtitionInfo

Hannes Laimer h.laimer at proxmox.com
Tue Jul 5 15:08:19 CEST 2022


Signed-off-by: Hannes Laimer <h.laimer at proxmox.com>
---
 src/tools/disks/mod.rs | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/src/tools/disks/mod.rs b/src/tools/disks/mod.rs
index e217ac87..b40c4f4d 100644
--- a/src/tools/disks/mod.rs
+++ b/src/tools/disks/mod.rs
@@ -57,6 +57,8 @@ pub struct LsblkInfo {
     /// File system label.
     #[serde(rename = "fstype")]
     file_system_type: Option<String>,
+    /// File system UUID.
+    uuid: Option<String>,
 }
 
 impl DiskManage {
@@ -559,7 +561,7 @@ pub struct BlockDevStat {
 /// Use lsblk to read partition type uuids and file system types.
 pub fn get_lsblk_info() -> Result<Vec<LsblkInfo>, Error> {
     let mut command = std::process::Command::new("lsblk");
-    command.args(&["--json", "-o", "path,parttype,fstype"]);
+    command.args(&["--json", "-o", "path,parttype,fstype,uuid"]);
 
     let output = proxmox_sys::command::run_command(command, None)?;
 
@@ -633,6 +635,8 @@ pub struct PartitionInfo {
     pub name: String,
     /// What the partition is used for
     pub used: PartitionUsageType,
+    /// UUID of the partition
+    pub uuid: Option<String>,
     /// Is the partition mounted
     pub mounted: bool,
     /// The filesystem of the partition
@@ -833,8 +837,10 @@ fn get_partitions_info(
 
             let mounted = disk.is_mounted().unwrap_or(false);
             let mut filesystem = None;
+            let mut uuid = None;
             if let (Some(devpath), Some(infos)) = (devpath.as_ref(), lsblk_infos.as_ref()) {
                 for info in infos.iter().filter(|i| i.path.eq(devpath)) {
+                    uuid = info.uuid.clone();
                     used = match info.partition_type.as_deref() {
                         Some("21686148-6449-6e6f-744e-656564454649") => PartitionUsageType::BIOS,
                         Some("c12a7328-f81f-11d2-ba4b-00a0c93ec93b") => PartitionUsageType::EFI,
@@ -853,6 +859,7 @@ fn get_partitions_info(
                 name: disk.sysname().to_str().unwrap_or("?").to_string(),
                 devpath,
                 used,
+                uuid,
                 mounted,
                 filesystem,
                 size: disk.size().ok(),
-- 
2.30.2






More information about the pbs-devel mailing list