diff options
author | HimbeerserverDE <himbeerserverde@gmail.com> | 2023-04-11 18:57:20 +0200 |
---|---|---|
committer | HimbeerserverDE <himbeerserverde@gmail.com> | 2023-04-11 18:57:20 +0200 |
commit | 15044e014133d47cd643afa0b41fdbb6491d33e3 (patch) | |
tree | 3d48e486d4de3a4e716ef12328eae37ca1ccfec2 | |
parent | 441ec023e8c54dde741bd42063196c15f93a504d (diff) |
overwrite boot partition with zeroes before populating it
-rw-r--r-- | src/main.rs | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/src/main.rs b/src/main.rs index 31f22e4..a879449 100644 --- a/src/main.rs +++ b/src/main.rs @@ -15,7 +15,7 @@ use squashfs_ng::write::{ use std::collections::{BTreeMap, HashMap}; use std::ffi::{OsStr, OsString}; use std::fs::{File, OpenOptions}; -use std::io::{self, prelude::*}; +use std::io::{self, prelude::*, SeekFrom}; use std::os::unix::fs::PermissionsExt; use std::os::unix::io::AsRawFd; use std::path::{Path, PathBuf}; @@ -187,6 +187,18 @@ fn write_boot( _ => bail!("invalid architecture (supported: x86_64 rpi)"), } + println!("Zeroing boot partition..."); + + partition.seek(SeekFrom::End(0))?; + let partition_len = partition.stream_position()?; + + let mut zero = Vec::new(); + zero.resize(partition_len as usize, 0); + + partition.rewind()?; + partition.write_all(&zero)?; + partition.rewind()?; + let format_opts = FormatVolumeOptions::new().fat_type(FatType::Fat32); fatfs::format_volume(&mut *partition, format_opts)?; |