pub struct MkfsConfig {
pub fs_type: FsType,
pub block_size: u32,
pub label: Option<String>,
pub uuid: Option<[u8; 16]>,
pub journal: bool,
pub inode_size: u32,
}Expand description
Configuration for creating an ext4 filesystem.
Fields§
§fs_type: FsTypeFilesystem type (ext2, ext3, or ext4)
block_size: u32Block size in bytes (1024, 2048, or 4096)
label: Option<String>Volume label (max 16 characters)
uuid: Option<[u8; 16]>UUID for the filesystem
journal: boolEnable journaling (only for ext3/ext4)
inode_size: u32Inode size (128 or 256)
Implementations§
Source§impl MkfsConfig
impl MkfsConfig
Sourcepub fn new() -> Self
pub fn new() -> Self
Create a new configuration with default values.
Examples found in repository?
examples/mkfs_file.rs (line 30)
9fn main() -> Result<(), Box<dyn std::error::Error>> {
10 let path = "test_disk.img";
11 let size: u64 = 10 * 1024 * 1024; // 10 MB
12
13 println!("Creating disk image: {} ({} bytes)", path, size);
14
15 // Create and size the file
16 {
17 let mut file = File::create(path)?;
18 file.seek(SeekFrom::Start(size - 1))?;
19 file.write_all(&[0])?;
20 file.sync_all()?;
21 }
22
23 // Open for read/write
24 let file = OpenOptions::new().read(true).write(true).open(path)?;
25
26 // Create block device wrapper (512-byte sectors)
27 let device = IoBlockDevice::new(file, 512, size);
28
29 // Configure and create filesystem
30 let config = MkfsConfig::new()
31 .fs_type(FsType::Ext4)
32 .block_size(4096)
33 .label("test_volume");
34
35 println!("Formatting as ext4...");
36 mkfs(device, config)?;
37
38 println!("Done! You can verify with: file {} or dumpe2fs {}", path, path);
39
40 Ok(())
41}Sourcepub fn fs_type(self, fs_type: FsType) -> Self
pub fn fs_type(self, fs_type: FsType) -> Self
Set the filesystem type.
Examples found in repository?
examples/mkfs_file.rs (line 31)
9fn main() -> Result<(), Box<dyn std::error::Error>> {
10 let path = "test_disk.img";
11 let size: u64 = 10 * 1024 * 1024; // 10 MB
12
13 println!("Creating disk image: {} ({} bytes)", path, size);
14
15 // Create and size the file
16 {
17 let mut file = File::create(path)?;
18 file.seek(SeekFrom::Start(size - 1))?;
19 file.write_all(&[0])?;
20 file.sync_all()?;
21 }
22
23 // Open for read/write
24 let file = OpenOptions::new().read(true).write(true).open(path)?;
25
26 // Create block device wrapper (512-byte sectors)
27 let device = IoBlockDevice::new(file, 512, size);
28
29 // Configure and create filesystem
30 let config = MkfsConfig::new()
31 .fs_type(FsType::Ext4)
32 .block_size(4096)
33 .label("test_volume");
34
35 println!("Formatting as ext4...");
36 mkfs(device, config)?;
37
38 println!("Done! You can verify with: file {} or dumpe2fs {}", path, path);
39
40 Ok(())
41}Sourcepub fn block_size(self, size: u32) -> Self
pub fn block_size(self, size: u32) -> Self
Set the block size.
Examples found in repository?
examples/mkfs_file.rs (line 32)
9fn main() -> Result<(), Box<dyn std::error::Error>> {
10 let path = "test_disk.img";
11 let size: u64 = 10 * 1024 * 1024; // 10 MB
12
13 println!("Creating disk image: {} ({} bytes)", path, size);
14
15 // Create and size the file
16 {
17 let mut file = File::create(path)?;
18 file.seek(SeekFrom::Start(size - 1))?;
19 file.write_all(&[0])?;
20 file.sync_all()?;
21 }
22
23 // Open for read/write
24 let file = OpenOptions::new().read(true).write(true).open(path)?;
25
26 // Create block device wrapper (512-byte sectors)
27 let device = IoBlockDevice::new(file, 512, size);
28
29 // Configure and create filesystem
30 let config = MkfsConfig::new()
31 .fs_type(FsType::Ext4)
32 .block_size(4096)
33 .label("test_volume");
34
35 println!("Formatting as ext4...");
36 mkfs(device, config)?;
37
38 println!("Done! You can verify with: file {} or dumpe2fs {}", path, path);
39
40 Ok(())
41}Sourcepub fn label(self, label: impl Into<String>) -> Self
pub fn label(self, label: impl Into<String>) -> Self
Set the volume label.
Examples found in repository?
examples/mkfs_file.rs (line 33)
9fn main() -> Result<(), Box<dyn std::error::Error>> {
10 let path = "test_disk.img";
11 let size: u64 = 10 * 1024 * 1024; // 10 MB
12
13 println!("Creating disk image: {} ({} bytes)", path, size);
14
15 // Create and size the file
16 {
17 let mut file = File::create(path)?;
18 file.seek(SeekFrom::Start(size - 1))?;
19 file.write_all(&[0])?;
20 file.sync_all()?;
21 }
22
23 // Open for read/write
24 let file = OpenOptions::new().read(true).write(true).open(path)?;
25
26 // Create block device wrapper (512-byte sectors)
27 let device = IoBlockDevice::new(file, 512, size);
28
29 // Configure and create filesystem
30 let config = MkfsConfig::new()
31 .fs_type(FsType::Ext4)
32 .block_size(4096)
33 .label("test_volume");
34
35 println!("Formatting as ext4...");
36 mkfs(device, config)?;
37
38 println!("Done! You can verify with: file {} or dumpe2fs {}", path, path);
39
40 Ok(())
41}Sourcepub fn inode_size(self, size: u32) -> Self
pub fn inode_size(self, size: u32) -> Self
Set the inode size.
Trait Implementations§
Source§impl Clone for MkfsConfig
impl Clone for MkfsConfig
Source§fn clone(&self) -> MkfsConfig
fn clone(&self) -> MkfsConfig
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for MkfsConfig
impl Debug for MkfsConfig
Auto Trait Implementations§
impl Freeze for MkfsConfig
impl RefUnwindSafe for MkfsConfig
impl Send for MkfsConfig
impl Sync for MkfsConfig
impl Unpin for MkfsConfig
impl UnwindSafe for MkfsConfig
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more