From 1acdd67fd996751b6699b1809f3064f6eff9646a Mon Sep 17 00:00:00 2001 From: Aiden McClelland Date: Fri, 29 Mar 2024 13:41:41 -0600 Subject: [PATCH] chown volume mountpoints --- .../src/service/persistent_container.rs | 30 ++++++++++++++----- 1 file changed, 22 insertions(+), 8 deletions(-) diff --git a/core/startos/src/service/persistent_container.rs b/core/startos/src/service/persistent_container.rs index a3756b37a..038661ace 100644 --- a/core/startos/src/service/persistent_container.rs +++ b/core/startos/src/service/persistent_container.rs @@ -116,6 +116,16 @@ impl PersistentContainer { .await?; let mut volumes = BTreeMap::new(); for volume in &s9pk.as_manifest().volumes { + let mountpoint = lxc_container + .rootfs_dir() + .join("media/startos/volumes") + .join(volume); + tokio::fs::create_dir_all(&mountpoint).await?; + Command::new("chown") + .arg("100000:100000") + .arg(&mountpoint) + .invoke(crate::ErrorKind::Filesystem) + .await?; let mount = MountGuard::mount( &IdMapped::new( Bind::new(data_dir(&ctx.datadir, &s9pk.as_manifest().id, volume)), @@ -123,10 +133,7 @@ impl PersistentContainer { 100000, 65536, ), - lxc_container - .rootfs_dir() - .join("media/startos/volumes") - .join(volume), + mountpoint, MountType::ReadWrite, ) .await?; @@ -134,6 +141,16 @@ impl PersistentContainer { } let mut assets = BTreeMap::new(); for asset in &s9pk.as_manifest().assets { + let mountpoint = lxc_container + .rootfs_dir() + .join("media/startos/assets") + .join(asset); + tokio::fs::create_dir_all(&mountpoint).await?; + Command::new("chown") + .arg("100000:100000") + .arg(&mountpoint) + .invoke(crate::ErrorKind::Filesystem) + .await?; assets.insert( asset.clone(), MountGuard::mount( @@ -145,10 +162,7 @@ impl PersistentContainer { ) .join(asset), ), - lxc_container - .rootfs_dir() - .join("media/startos/assets") - .join(asset), + mountpoint, MountType::ReadWrite, ) .await?,