-
Notifications
You must be signed in to change notification settings - Fork 44
Description
create-boot-image.sh fails on Linux due to invalid dd usage and macOS-only tooling
I attempted to build Vib-OS on Parrot OS (Linux) and found that the image creation step fails.
Environment:
- OS: Parrot OS (Linux)
- Target: ARM64
- Kernel builds successfully
- Failure occurs during: make image
Observed issues:
- Invalid dd block size on Linux
The script uses:
dd if=/dev/zero of="$IMAGE_PATH" bs=1m count=1024
On my system:
dd if=/dev/zero of=test2.img bs=1m count=10
→ dd: invalid number: '1m'
But:
dd if=/dev/zero of=big.img bs=1M count=1024
works correctly and creates a 1GB file.
So bs=1m is invalid on my system, while bs=1M works as expected.
Because the script uses set -e and suppresses output, it exits silently at this step.
- macOS-only tools in image script
The script uses macOS-specific tools and paths:
- hdiutil
- diskutil
- /Volumes/EFI
- /dev/diskX
These are not available on Linux, so the script cannot proceed after the image is created.
- Silent failure during image creation
- Errors from dd are redirected to /dev/null
- The Makefile hides the underlying error
- This makes it difficult to understand why make image fails on Linux
What works:
The kernel builds successfully and boots in QEMU using:
qemu-system-aarch64 -M virt -cpu cortex-a57 -kernel build/kernel/unixos.elf -nographic
Suggestions:
- Replace bs=1m with bs=1M
- Improve error visibility in the image creation script
- Clarify OS support for image creation (Linux/macOS)
- Optionally add Linux-compatible image creation logic
I’m happy to help improve Linux compatibility if needed.