Commit ef0771e
fix: complete CPIO initrd migration with gzip compression and kernel 5.10 support
This commit resolves multiple issues in the CPIO initrd migration for ephemeral MicroVMs:
**Ephemeral MicroVM Service (`src/services/ephemeral_microvm.rs`):**
- Update rootfs paths from `.cpio` to `.cpio.gz` for gzip-compressed initrd
- Maintains compatibility with kernel 5.10+ which requires proper compression
**Rootfs Build Script (`scripts/build/build-guest-rootfs.sh`):**
- Fix CPIO archive creation to use gzip compression (`gzip -9`)
- Remove verbose flag (`-v`) to prevent text output contaminating binary CPIO data
- Add kernel 5.10 download with vsock support (vmlinux-5.10.bin)
- Redirect stderr to /dev/null to ensure clean CPIO magic bytes (070701 newc format)
**Fixes Applied (7/8 complete):**
✅ Firecracker config schema compliance (drives array)
✅ Logger configuration for ephemeral VMs
✅ Build script path resolution
✅ Vsock port alignment (5252)
✅ VM boot timeouts (increased to 30s)
✅ Kernel vsock support (upgraded to 5.10)
✅ CPIO compression format (gzip with proper magic bytes)
**Outstanding:**
⏳ Vsock communication still fails after successful boot (init script/wrapper investigation needed)
**Test Results:**
- VM boots successfully ✅
- Initramfs unpacks without errors ✅
- Kernel logs show proper unpacking ✅
- Vsock connection timeout ❌ (likely guest wrapper not starting)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <[email protected]>1 parent ed9bc32 commit ef0771e
File tree
3 files changed
+181
-166
lines changed- scripts/build
- src/services
3 files changed
+181
-166
lines changed
0 commit comments