<section xmlns="http://docbook.org/ns/docbook"
         xmlns:xlink="http://www.w3.org/1999/xlink"
         xmlns:xi="http://www.w3.org/2001/XInclude"
         version="5.0"
         xml:id="sec-booting-from-usb">

<title>Booting from a USB Drive</title>

<para>For systems without CD drive, the NixOS live CD can be booted from
a USB stick. You can use the <command>dd</command> utility to write the image:
<command>dd if=<replaceable>path-to-image</replaceable>
of=<replaceable>/dev/sdb</replaceable></command>. Be careful about specifying the
correct drive; you can use the <command>lsblk</command> command to get a list of
block devices. If you're on macOS you can run <command>diskutil list</command>
to see the list of devices; the device you'll use for the USB must be ejected
before writing the image.</para>

<para>The <command>dd</command> utility will write the image verbatim to the drive,
making it the recommended option for both UEFI and non-UEFI installations. For
non-UEFI installations, you can alternatively use
<link xlink:href="http://unetbootin.sourceforge.net/">unetbootin</link>. If you
cannot use <command>dd</command> for a UEFI installation, you can also mount the
ISO, copy its contents verbatim to your drive, then either:

<itemizedlist>
  <listitem>
    <para>Change the label of the disk partition to the label of the ISO
    (visible with the blkid command), or</para>
  </listitem>
  <listitem>
    <para>Edit <filename>loader/entries/nixos-livecd.conf</filename> on the drive
    and change the <literal>root=</literal> field in the <literal>options</literal>
    line to point to your drive (see the documentation on <literal>root=</literal>
    in <link xlink:href="https://www.kernel.org/doc/Documentation/admin-guide/kernel-parameters.txt">
    the kernel documentation</link> for more details).</para>
  </listitem>
  <listitem>
    <para>If you want to load the contents of the ISO to ram after bootin
    (So you can remove the stick after bootup) you can append the parameter
    <literal>copytoram</literal>to the <literal>options</literal> field.</para>
  </listitem>
</itemizedlist>
</para>

</section>
