Skip to content

Conversation

@jmpesp
Copy link
Contributor

@jmpesp jmpesp commented Apr 25, 2022

For development purposes, allow people to select the alpine.iso blob that ships with the propolis-server zone image as an image source.

@jmpesp jmpesp force-pushed the image_from_file branch from d7c29e7 to bf084c5 Compare May 26, 2022 20:46
@jmpesp jmpesp changed the title add ability to use files as image add YouCanBootAnythingAsLongAsItsAlpine image source May 26, 2022
@jmpesp
Copy link
Contributor Author

jmpesp commented May 26, 2022

Unfortunately this doesn't seem to boot through through the default NVMe device emulation. This can be reproduced with:

    wget https://oxide-omicron-build.s3.amazonaws.com/OVMF_CODE.fd
    wget https://oxide-omicron-build.s3.amazonaws.com/alpine.iso
    qemu-system-x86_64 \
        -bios OVMF_CODE.fd \
        -machine pc-i440fx-focal \
        -m 1g \
        -drive file=alpine.iso,if=none,format=raw,id=nvme1 \
        -device nvme,drive=nvme1,serial=nvme-1,addr=0x4

@jmpesp
Copy link
Contributor Author

jmpesp commented May 26, 2022

Note the original propolis config used the "pci-virtio-block" device.

@jmpesp
Copy link
Contributor Author

jmpesp commented May 27, 2022

Unfortunately this doesn't seem to boot through through the default NVMe device emulation.

I should be more clear - it does boot to a UEFI shell. If you enter FS0:\efi\boot\bootx64.efi, it does take you to a grub prompt, and fails to boot further. On the serial console:

Mounting boot media failed. 
initramfs emergency recovery shell launched. Type 'exit' to continue boot
sh: can't access tty; job control turned off
/ #

I suspect this is due to a missing NVMe module.

@jmpesp
Copy link
Contributor Author

jmpesp commented May 27, 2022

The latest alpine-virt-3.16.0-x86_64.iso does boot with the qemu invocation above (specifically, through NVMe).

@jmpesp
Copy link
Contributor Author

jmpesp commented May 27, 2022

I've updated our alpine.iso to alpine-virt-3.16.0-x86_64.iso, and now the above qemu invocation works, and booting an instance using a disk based on

~/cli/cli.sh api /images --method POST --input - <<EOF
{
  "name": "alpine",
  "description": "boot from propolis zone blob!",
  "block_size": 512,
  "source": {
    "type": "you_can_boot_anything_as_long_as_its_alpine"
  }
}
EOF

works too.

For development purposes, allow people to select the alpine.iso blob
that ships with the propolis-server zone image as an image source.
@jmpesp jmpesp force-pushed the image_from_file branch from 02fb237 to f52d4a7 Compare May 30, 2022 16:21
@jmpesp jmpesp merged commit 23ca5df into oxidecomputer:main Jun 2, 2022
@jmpesp jmpesp deleted the image_from_file branch June 2, 2022 20:49
leftwo pushed a commit that referenced this pull request Oct 16, 2023
Propolis changes:
PHD: refactor & add support Propolis server "environments" (#547)
Begin making Accessor interface more robust
Update Crucible and Omicron deps for Hakari fixes
Add cloud-init volume generation to standalone
Use specified toolchain version for all GHA checks
Use params to configure rust-toolchain in GHA
Update and lock GHA dependencies

Crucible changes:
Use regions_dataset path for apply_smf (#1000)
Don't unwrap when we can't create a dataset (#992)
Fix tests and update log messages. (#995)
Better backpressure (#990)
Update Rust crate proptest to 1.3.1 (#977)
Read only downstairs can skip Live Repair (#984)
Update Rust crate expectorate to 1.1.0 (#975)
Add trait for `ExtentInner` (#982)
report backpressure in upstairs_info dtrace probe (#987)
Support multiple downstairs operations in GtoS (#985)
leftwo added a commit that referenced this pull request Oct 16, 2023
Propolis changes:
PHD: refactor & add support Propolis server "environments" (#547) Begin
making Accessor interface more robust
Update Crucible and Omicron deps for Hakari fixes
Add cloud-init volume generation to standalone
Use specified toolchain version for all GHA checks Use params to
configure rust-toolchain in GHA
Update and lock GHA dependencies

Crucible changes:
Use regions_dataset path for apply_smf (#1000)
Don't unwrap when we can't create a dataset (#992) Fix tests and update
log messages. (#995)
Better backpressure (#990)
Update Rust crate proptest to 1.3.1 (#977)
Read only downstairs can skip Live Repair (#984)
Update Rust crate expectorate to 1.1.0 (#975)
Add trait for `ExtentInner` (#982)
report backpressure in upstairs_info dtrace probe (#987) Support
multiple downstairs operations in GtoS (#985)

---------

Co-authored-by: Alan Hanson <alan@oxide.computer>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants