aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHimbeerserverDE <himbeerserverde@gmail.com>2023-04-11 18:57:20 +0200
committerHimbeerserverDE <himbeerserverde@gmail.com>2023-04-11 18:57:20 +0200
commit15044e014133d47cd643afa0b41fdbb6491d33e3 (patch)
tree3d48e486d4de3a4e716ef12328eae37ca1ccfec2
parent441ec023e8c54dde741bd42063196c15f93a504d (diff)
overwrite boot partition with zeroes before populating it
-rw-r--r--src/main.rs14
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)?;