在Rust中使用标签创建新分区

时间:2019-04-26 09:41:02

标签: linux rust filesystems disk-partitioning

我正在尝试使用Rust在Linux机器上对磁盘进行分区。

我要使用sgdisk实用程序来格式化和创建新分区。

#[derive(Deserialize, Debug)]
pub struct Drives {
    system: PathBuf,
    home: Option<PathBuf>,
}

impl Drives {

  fn create_partitions(&self) -> Result<()> {

  cmd!("sgdisk", "--new=0:0:+256MiB --typecode=0:ef00 -c 0:\"efi\"", &self.system).run().context("Failed to create EFI partition")?;
  Ok(())
  }
 }

该命令成功创建了一个新分区,但不幸的是标签丢失了。

sgdisk -p /dev/sda
...
Number  Start (sector)    End (sector)  Size       Code  Name
   1            2048          526335   256.0 MiB   8300  

cmd!宏来自duct板条箱,该板条箱将内容传递到下面的std::process::Command。即使我直接调用外部进程,也不会给分区加上标签。

我认为问题可能在于将字符串传递给sgdisk,期望以结尾的ASCII字符串。如果我在shell脚本中调用相同的命令,它将起作用。

0 个答案:

没有答案