No description, website, or topics provided.
Clone or download
Latest commit e08a629 Nov 25, 2018
Type Name Latest commit message Commit time
Failed to load latest commit information.
src iter first to build, par_iter to run Nov 23, 2018
.gitignore Initial commit Jan 19, 2018
.travis.yml Add a travis.yml Mar 31, 2018
Cargo.lock bootimage 0.5.7 Nov 25, 2018
Cargo.toml bootimage 0.5.7 Nov 25, 2018
LICENSE-MIT Create LICENSE-MIT Feb 5, 2018 Update Readme Jul 18, 2018


Creates a bootable disk image from a Rust OS kernel.


> cargo install bootimage


First you need to add a dependency on the bootloader crate:

# in your Cargo.toml

bootloader = "0.2.0-alpha"

Now you can build the kernel project and create a bootable disk image from it by running:

> bootimage build --target your_custom_target.json [other_args]

The command will invoke cargo xbuild, forwarding all passed options. Then it will download and build a bootloader, by default the rust-osdev/bootloader. Finally, it combines the kernel and the bootloader into a bootable disk image.


Configuration is done through a through a [package.metadata.bootimage] table in the Cargo.toml. The following options are available:

    default-target = ""         # This target is used if no `--target` is passed
    output = "bootimage.bin"    # The output file name
    minimum-image-size = 0      # The minimum output file size (in MiB)
    # The command invoked on `bootimage run`
    # (the "{}" will be replaced with the path to the bootable disk image)
    run-command = ["qemu-system-x86_64", "-drive", "format=raw,file={}"]

    name = "bootloader"                 # The bootloader crate name
    target = "x86_64-bootloader.json"   # Target triple for compiling the bootloader


Dual-licensed under MIT or the Apache License (Version 2.0).