mirror of
https://git.proxmox.com/git/proxmox-backup
synced 2025-08-14 07:21:56 +00:00
disks: add UUID to partition info
Signed-off-by: Hannes Laimer <h.laimer@proxmox.com>
This commit is contained in:
parent
01bbaef7fa
commit
936ec6b69e
@ -57,6 +57,8 @@ pub struct LsblkInfo {
|
|||||||
/// File system label.
|
/// File system label.
|
||||||
#[serde(rename = "fstype")]
|
#[serde(rename = "fstype")]
|
||||||
file_system_type: Option<String>,
|
file_system_type: Option<String>,
|
||||||
|
/// File system UUID.
|
||||||
|
uuid: Option<String>,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl DiskManage {
|
impl DiskManage {
|
||||||
@ -615,7 +617,7 @@ pub struct BlockDevStat {
|
|||||||
/// Use lsblk to read partition type uuids and file system types.
|
/// Use lsblk to read partition type uuids and file system types.
|
||||||
pub fn get_lsblk_info() -> Result<Vec<LsblkInfo>, Error> {
|
pub fn get_lsblk_info() -> Result<Vec<LsblkInfo>, Error> {
|
||||||
let mut command = std::process::Command::new("lsblk");
|
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)?;
|
let output = proxmox_sys::command::run_command(command, None)?;
|
||||||
|
|
||||||
@ -701,6 +703,8 @@ pub struct PartitionInfo {
|
|||||||
pub size: Option<u64>,
|
pub size: Option<u64>,
|
||||||
/// GPT partition
|
/// GPT partition
|
||||||
pub gpt: bool,
|
pub gpt: bool,
|
||||||
|
/// UUID
|
||||||
|
pub uuid: Option<String>,
|
||||||
}
|
}
|
||||||
|
|
||||||
#[api(
|
#[api(
|
||||||
@ -891,8 +895,10 @@ fn get_partitions_info(
|
|||||||
|
|
||||||
let mounted = disk.is_mounted().unwrap_or(false);
|
let mounted = disk.is_mounted().unwrap_or(false);
|
||||||
let mut filesystem = None;
|
let mut filesystem = None;
|
||||||
|
let mut uuid = None;
|
||||||
if let Some(devpath) = devpath.as_ref() {
|
if let Some(devpath) = devpath.as_ref() {
|
||||||
for info in lsblk_infos.iter().filter(|i| i.path.eq(devpath)) {
|
for info in lsblk_infos.iter().filter(|i| i.path.eq(devpath)) {
|
||||||
|
uuid = info.uuid.clone();
|
||||||
used = match info.partition_type.as_deref() {
|
used = match info.partition_type.as_deref() {
|
||||||
Some("21686148-6449-6e6f-744e-656564454649") => PartitionUsageType::BIOS,
|
Some("21686148-6449-6e6f-744e-656564454649") => PartitionUsageType::BIOS,
|
||||||
Some("c12a7328-f81f-11d2-ba4b-00a0c93ec93b") => PartitionUsageType::EFI,
|
Some("c12a7328-f81f-11d2-ba4b-00a0c93ec93b") => PartitionUsageType::EFI,
|
||||||
@ -915,6 +921,7 @@ fn get_partitions_info(
|
|||||||
filesystem,
|
filesystem,
|
||||||
size: disk.size().ok(),
|
size: disk.size().ok(),
|
||||||
gpt: disk.has_gpt(),
|
gpt: disk.has_gpt(),
|
||||||
|
uuid,
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
.collect()
|
.collect()
|
||||||
|
Loading…
Reference in New Issue
Block a user