Project Description

QEMU can serve host files using the 9P2000 protocol. Xen can serve host files using the 9P2000 protocol. Even WSL2 can serve files using the 9P2000 protocol. This makes it a perfect choice to make your kernel under development in your host environment available to your testing VM, right? Well, almost. GRUB2 cannot boot from a Plan9 filesystem share.

Goal for this Hackweek

Implement 9P2000 for GRUB2 (at least over virtio) and allow booting from a 9P filesystem.

Resources

GRUB2 sources

Looking for hackers with the skills:

bootloader grub2 virtualization virtio plan9

This project is part of:

Hack Week 23

Activity

  • almost 2 years ago: mbrugger liked this project.
  • almost 2 years ago: pvorel liked this project.
  • almost 2 years ago: wfrisch liked this project.
  • almost 2 years ago: michael-chang liked this project.
  • almost 2 years ago: gary_lin liked this project.
  • almost 2 years ago: tlebreux liked this project.
  • almost 2 years ago: agraul liked this project.
  • almost 2 years ago: ptesarik liked this project.
  • almost 2 years ago: ptesarik added keyword "bootloader" to this project.
  • almost 2 years ago: ptesarik added keyword "grub2" to this project.
  • almost 2 years ago: ptesarik added keyword "virtualization" to this project.
  • almost 2 years ago: ptesarik added keyword "virtio" to this project.
  • almost 2 years ago: ptesarik added keyword "plan9" to this project.
  • almost 2 years ago: ptesarik started this project.
  • almost 2 years ago: ptesarik originated this project.

  • Comments

    • tlebreux
      almost 2 years ago by tlebreux | Reply

      Nice idea, I had started working on a 9p fs kernel driver for https://ares-os.org/ here: https://git.sr.ht/~tomleb/mercury/tree/master/item/p9. Was pretty fun to learn about VirtIO and 9pfs.

    Similar Projects

    QBoot - A handy QEMU VM launcher by amanzini

    Description

    QBoot is a command-line tool that wraps QEMU to provide a streamlined experience for launching virtual machines. It automatically configures common settings like KVM acceleration, virtio drivers, and networking while allowing customization through both configuration files and command-line options.

    The project originally was a personal utility in D, now recently rewritten in idiomatic Go. It lives at repository https://github.com/ilmanzo/qboot

    Goals

    Improve the project, testing with different scenarios , address issues and propose new features. It will benefit of some basic integration testing by providing small sample disk images.

    Resources