1# Setup with a USB Flash Drive
2
3These instructions prepare a USB flash drive to be a bootable disk for your
4device: this procedure only enables you to netboot or pave, it won't put
5anything on your internal storage. This USB flash drive can then direct your
6device to boot from the freshly-built OS on your network-connected host
7development machine (or alternately from the OS on the flash drive itself).
8
9+ Execute `fx set x64` (if you haven't already)
10+ Create a __zedboot__ key using, `fx mkzedboot /path/to/your/device`. The
11`mkzedboot` command does the following:
12  + Creates a FAT partition continaing an EFI System Partition, containing
13    the Gigaboot EFI bootloader and a configuration that specifies to always
14    boot into Zedboot.
15  + Creates a ChromeOS bootable partition with a developer key signed Zedboot
16    kernel partition.
17+ On your host, run `fx full-build` (if you haven't already).
18+ If you wish to install Fuchsia to the target device (modifying the target
19  device harddisk), run `fx pave` on the host. IF you only wish to "netboot"
20  the target device, and avoid modifying any disk state, run `fx netboot` on
21  the host instead.
22+ Connect your device to your host via built-in ethernet, then power up the
23  device.
24
25## Manual Configuration
26
27It is also relatively easy to manually create an EFI boot key with particular
28properites, though this will only boot on EFI systems.
29
30+ Format the USB key with a blank FAT partition.
31+ Create a directory called `EFI/BOOT`.
32+ Copy `bootx64.efi` from `build-x64/bootloader` of a Zircon build into the
33  above directory.
34+ Copy `zircon.bin` from `build-x64` of a Zircon build into the root
35  directory of the FAT partition.
36+ Copy `zedboot.bin` from `build-x64` of a Zircon build into the root
37  directory of the FAT partition.
38+ Optionally: Create a file called `cmdline` in the root fo the FAT
39  partition. This file may contain any directives documented in
40  [command line flags](kernel_cmdline.md).
41The created disk will by default boot from zircon.bin instead of the network.
42At the Gigaboot screen, press 'm' to boot zircon vs 'z' for zedboot, or set
43the default boot behavior with the `bootloader.default` flag in `cmdline`.
44
45See also:
46* [Setting up the Acer device](acer12.md)
47* [Setting up the NUC device](nuc.md)
48* [Command line flags](kernel_cmdline.md)