feat: erofs layers
This commit is contained in:
699
Cargo.lock
generated
699
Cargo.lock
generated
File diff suppressed because it is too large
Load Diff
@@ -65,7 +65,7 @@ pub async fn bootstrap(cfg: Config) {
|
||||
})
|
||||
.await;
|
||||
|
||||
retry_or_ignore(async || apply::files(&sys_cfg.files, "/system").await).await;
|
||||
retry_or_ignore(async || apply::files(&sys_cfg.files, "/system", false).await).await;
|
||||
|
||||
apply_groups(&sys_cfg.groups, "/system").await;
|
||||
apply_users(&sys_cfg.users, "/system").await;
|
||||
@@ -210,6 +210,12 @@ async fn mount_system(cfg: &dkl::Config, bs_dir: &str, verifier: &Verifier) {
|
||||
})
|
||||
.await;
|
||||
|
||||
let fstype = if src.get(1024..1028) == Some(&0xE0F5E1E2u32.to_le_bytes()) {
|
||||
"erofs"
|
||||
} else {
|
||||
"squashfs"
|
||||
};
|
||||
|
||||
let tgt = &format!("{mem_dir}/{layer}.fs");
|
||||
retry(async || {
|
||||
info!("copying layer {layer}");
|
||||
@@ -222,7 +228,7 @@ async fn mount_system(cfg: &dkl::Config, bs_dir: &str, verifier: &Verifier) {
|
||||
.await;
|
||||
|
||||
let layer_dir = &format!("{layers_dir}/{layer}");
|
||||
mount(Some(tgt), layer_dir, "squashfs", None).await;
|
||||
mount(Some(tgt), layer_dir, fstype, None).await;
|
||||
|
||||
if !lower_dir.is_empty() {
|
||||
lower_dir.push(':');
|
||||
|
||||
Reference in New Issue
Block a user