feat(utils): add FUSE partition and volume mounting utilities
Metadata
Current evaluation
⚠️ This summary may be outdated — the issue content or evaluation prompts have changed since this evaluation was made.
Adds FUSE-based partition and composite volume mounting utilities under imagecraft.utils.mount for zero-copy unprivileged ext4/FAT/GPT mounting in LXD. Approved by 2 reviewers, CI green, 3 unresolved review comments.
Suggested action: needs review
Reason: PR is approved by 2 reviewers with all CI checks passing, but has 3 unresolved review comments that need addressing before landing. The author's note that a test failure is unrelated (loop device to be removed in IMAGECRAFT-192) suggests the remaining work is minor.
Impact:
55
Quick Win:
16.5
Staleness:
5
Complexity:
70
Confidence:
80
Issue body
## Description
Adds FUSE-based partition and volume mounting utilities under `imagecraft.utils.mount` using `fuse2fs`, `fusefat`, and `fusefile`, enabling mounting of ext4, FAT, and composite GPT/MBR volume hierarchies without kernel loop devices.
Also fixes a race condition where `/dev/loopXpY` partition device nodes are accessed before udev finishes creating them after `losetup --partscan`.
### Key Changes
- **FUSE Mounts (`imagecraft.utils.mount`)**: `mount_partition()` and `mount_volume()` context managers supporting ext4 (`fuse2fs`), FAT (`fusefat`), and partition offsets via `fusefile`.
- **Loop Device Partition Sync (`imagecraft.services.image`)**: Polls for `/dev/loopXpY` nodes after `losetup --partscan`.
- **Packaging & Tests**: Stages FUSE utilities in snapcraft and adds unit and integration tests.
IMAGECRAFT-176
---
- [x] I've followed the [contribution guidelines](https://github.com/canonical/imagecraft/blob/main/CONTRIBUTING.md).
- [x] I've signed the [CLA](http://www.ubuntu.com/legal/contributors/).
- [x] I've successfully run `make lint && make test`.
- [ ] I've added or updated any relevant documentation.
- [ ] In documents I changed, I [added a meta description](https://canonical-starflow.readthedocs-hosted.com/how-to/add-a-page-meta-description/) if one was missing.
Evaluation history
| Date | Model | Scores | Action | Summary |
|---|---|---|---|---|
| qwen/qwen3.8-27b |
Impact:
55
Quick Win:
16.5
Staleness:
5
Complexity:
70
Confidence:
80
|
needs review | Adds FUSE-based partition and composite volume mounting utilities under imagecraft.utils.mount for zero-copy unprivileged ext4/FAT/GPT mounting in LXD. Approved by 2 reviewers, CI green, 3 unresolved review comments. | |
| qwen/qwen3.8-27b |
Impact:
55
Quick Win:
16.5
Staleness:
5
Complexity:
70
Confidence:
85
|
needs review | Adds FUSE-based partition and composite volume mounting utilities (ext4, FAT, GPT/MBR) under imagecraft.utils.mount, with snap packaging and root-gated tests. Approved by 2 reviewers, all CI green, 3 unresolved comments; loop-device removal tracked in IMAGECRAFT-192. | |
| qwen/qwen3.8-27b |
Impact:
55
Quick Win:
16.5
Staleness:
5
Complexity:
70
Confidence:
80
|
needs review | Adds FUSE-based partition and composite volume mounting utilities under imagecraft.utils.mount, snap packaging for fuse binaries, and unit/integration tests. Approved by 1 reviewer; 2 unresolved comments; CI green with 2 spread checks pending. | |
| qwen/qwen3.8-27b |
Impact:
55
Quick Win:
13.75
Staleness:
5
Complexity:
75
Confidence:
78
|
needs review | Adds FUSE-based partition and composite volume mounting utilities (ext4, FAT, GPT/MBR) under imagecraft.utils.mount, snap packaging for fuse binaries, and unit/integration tests. CI mostly green with 2 checks pending; review pending with 2 unresolved comments. | |
| qwen/qwen3.8-27b |
Impact:
55
Quick Win:
19.25
Staleness:
5
Complexity:
65
Confidence:
80
|
needs review | Adds FUSE-based partition and composite volume mounting utilities under imagecraft.utils.mount for unprivileged ext4/FAT mounting in LXD containers. Fresh PR (3 days old), all CI passing, 3 unresolved review comments, 0 reviewers assigned, pending snap build jobs. | |
| qwen/qwen3.8-27b |
Impact:
50
Quick Win:
15.0
Staleness:
5
Complexity:
70
Confidence:
80
|
needs review | Adds FUSE-based partition and composite volume mounting utilities under imagecraft.utils.mount for unprivileged LXD mounting, plus fuse2fs/fusefat/fusefile snap packaging and tests. CI green, 3 checks pending; 4 unresolved review comments, 0 reviewers. | |
| qwen/qwen3.8-27b |
Impact:
55
Quick Win:
15.4
Staleness:
5
Complexity:
72
Confidence:
80
|
needs review | Adds FUSE-based partition and volume mounting utilities under imagecraft.utils.mount with context managers, factories, snap packaging for fuse2fs/fusefat/fusefile, and unit/integration tests. 3 days old, all CI green, pending first review. | |
| qwen/qwen3.6-35b-a3b |
Staleness:
5
Complexity:
65
Confidence:
90
|
needs review | Adds FUSE-based mounting utilities for ext4, FAT, and composite volumes under imagecraft.utils.mount, including context managers, factory functions, and snap packaging updates. Currently pending maintainer review with 0 approvals and 1 unresolved comment. | |
| qwen/qwen3.6-35b-a3b |
Staleness:
5
Complexity:
65
Confidence:
90
|
needs review | Adds FUSE-based partition and volume mounting utilities to imagecraft.utils, including context managers, factory functions, and snap packaging. Currently pending maintainer review with all CI checks passing. | |
| qwen/qwen3.6-35b-a3b |
Staleness:
5
Complexity:
65
Confidence:
90
|
needs review | Adds FUSE-based mounting utilities for ext4, FAT, and composite volumes with context managers and factory functions. Includes snap packaging updates and comprehensive tests. Currently pending maintainer review with CI checks in progress. | |
| qwen/qwen3.6-35b-a3b |
Staleness:
5
Complexity:
65
Confidence:
85
|
needs review | Adds FUSE-based partition and volume mounting utilities to imagecraft.utils, including context managers, factory functions, and snap dependencies. Currently pending maintainer review with minor CI failures on specific platforms noted as unrelated. | |
| qwen/qwen3.6-35b-a3b |
Staleness:
5
Complexity:
65
Confidence:
85
|
needs review | Adds FUSE-based partition and volume mounting utilities for ext4, FAT, and composite GPT/MBR volumes, including context managers, factory functions, snap packaging updates, and comprehensive tests. Currently awaiting maintainer review with CI checks pending. | |
| qwen/qwen3.6-35b-a3b |
Staleness:
5
Complexity:
65
Confidence:
90
|
needs review | Adds FUSE-based mounting utilities for ext4, FAT, and composite volumes with context managers and factory functions. Includes snap packaging updates and comprehensive tests. Currently awaiting maintainer review with mostly passing CI. | |
| qwen/qwen3.6-35b-a3b |
Staleness:
5
Complexity:
65
Confidence:
85
|
needs review | Adds FUSE-based partition and volume mounting utilities with context managers, factory functions, and snap packaging. Includes comprehensive unit and integration tests. Currently pending maintainer review with one failing ARM test and several pending CI jobs. | |
| qwen/qwen3.6-35b-a3b |
Staleness:
5
Complexity:
65
Confidence:
85
|
needs review | Adds FUSE-based mounting utilities for ext4, FAT, and composite volumes with context managers, factory functions, and snap packaging updates. Currently awaiting maintainer review with most CI checks passing. | |
| qwen/qwen3.6-35b-a3b |
Staleness:
5
Complexity:
65
Confidence:
90
|
needs review | Adds FUSE-based partition and volume mounting utilities with context managers, factory functions, and snap packaging. Includes unit and integration tests. Currently awaiting maintainer review with some root-required tests failing. | |
| qwen/qwen3.6-35b-a3b |
Staleness:
5
Complexity:
65
Confidence:
85
|
needs review | Adds FUSE-based mounting utilities for ext4, FAT, and composite volumes with context managers, factory functions, and snap packaging updates. Currently awaiting maintainer review with most CI checks passing. | |
| qwen/qwen3.6-35b-a3b |
Staleness:
5
Complexity:
65
Confidence:
85
|
needs review | Adds FUSE-based utilities for mounting ext4, FAT, and composite volumes in unprivileged environments. Includes new mount context managers, factory functions, snap packaging updates, and comprehensive tests. Currently pending maintainer review with some ARM and slow test failures. | |
| qwen/qwen3.6-35b-a3b |
Staleness:
5
Complexity:
70
Confidence:
85
|
needs review | Adds FUSE-based utilities for mounting ext4, FAT, and composite volumes in LXD containers. Includes context managers, factory functions, snap packaging updates, and tests. Currently pending review with one unresolved comment and failing snap/arm64 CI checks. | |
| qwen/qwen3.6-35b-a3b |
Staleness:
5
Complexity:
65
Confidence:
85
|
needs review | Adds FUSE-based partition and volume mounting utilities for ext4 and FAT filesystems, including composite volume support and snap packaging updates. Currently awaiting maintainer review with CI checks pending. | |
| qwen/qwen3.6-35b-a3b |
Staleness:
5
Complexity:
65
Confidence:
85
|
needs review | Adds FUSE-based mounting utilities for ext4, FAT, and composite volumes, including context managers, factory functions, snap packaging updates, and tests. Currently pending maintainer review with mixed CI results. |
Update history
| Date | Change |
|---|---|
| updated | |
| updated | |
| updated | |
| updated | |
| updated | |
| updated | |
| updated | |
| updated | |
| updated | |
| updated | |
| updated | |
| updated | |
| updated | |
| updated | |
| updated | |
| updated | |
| updated | |
| updated | |
| updated | |
| created |
Related work
-
Related To:
virtualsquare/fusefatfs#8
(confidence 75%)
PR explicitly references this issue as the reason for the VirtualOffsetDevice workaround for FAT partition offset slicing.
Related issues
| Issue | Project | State | Summary | Similarity |
|---|---|---|---|---|
| #109 utils: add filesystem mounting calls (CRAFT-460) | craft-parts | merged | Merged to introduce filesystem mount and unmount utilities as thin wrappers around system commands. Approved by two reviewers, passed CI, and added 38 lines across two files to resolve CRAFT-460. |