Create Arch Linux Live USB
Creating a Arch Linux live USB is easy. In this post, I will walk you through downloading and verifying the image, finding your USB drive and copying the image onto it, all from the convenience of the command line.
Download image and PGP signature
Download the latest Arch Linux image from https://www.archlinux.org/download/. The preferred option is to download the image using BitTorrent, in order not to burden the Arch servers unnecessarily.
Verify downloaded image
$ gpg --keyserver pgp.mit.edu \
--keyserver-options auto-key-retrieve \
--verify archlinux-version-x86_64.iso.sig
If this disk is being created on an Arch Linux system, you could also invoke:
$ pacman-key -v archlinux-version-x86_64.iso.sig
The -v
switch is short for --verify
.
Insert USB drive and check the device name
$ sudo fdisk -l
The -l
is short for --list
, and will display the device names and
partition tables.
Output will look like:
Disk /dev/sdb: 1.8 TiB, 2000398934016 bytes, 3907029168 sectors
Disk model: CT2000MX500SSD1
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: dos
Disk identifier: 0x117d68c1
Device Boot Start End Sectors Size Id Type
/dev/sdb1 2048 3907029167 3907027120 1.8T 83 Linux
Check the output and find the device name of the USB (for instance
/dev/sdc
). Make sure this device is not mounted, otherwise the
next command will fail. Also make sure you note the device name, and
not a partition (indicated by a numeral at the end: /dev/sdc1
, for
example).
Copy Arch Linux image to USB drive
$ sudo dd if=archlinux-2019-01-01-x86_64.iso \
of=/dev/sdX \
bs=64K \
oflag=sync \
status=progess
Breakdown:
if
indicates the input file (the.iso
of the live Linux distro).of
, likewise, points to the output file, which is a device in this case. Note that/dev/sdX
needs to be replaced with the device name we found in the previous step.bs=64K
indicates the block size, which means thatdd
will read and write up to 64K bytes at a time. The default is 512 bytes. It really depends what the optimal block size is, but several sources indicate that 64K is a good bet on somewhat modern to modern hardware.oflag
stands for “output flag”. Thesync
flag will make sure that all data is written to the USB stick when thedd
command exits, so it will be safe to remove the USB stick.status=progress
indicates the level of information that is printed during file transfer.progress
shows periodic transfer statistics.
Notice that the device does not need to be partitioned or empty before
this operation. When dd
writes to a device rather than a partition,
all data on the drive – including partitions – will be erased anyway.