Создание нового раздела с меткой в ​​Rust - PullRequest
0 голосов
/ 26 апреля 2019

Я пытаюсь разбить диск на моей машине с Linux с помощью Rust.

Для форматирования и создания нового раздела я использую утилиту 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. Если я вызываю ту же команду в сценарии оболочки, она работает.

...