To prepare the USB stick, we recommend to use a system where GNU/Linux is
already running and where USB is supported. With current GNU/Linux systems
the USB stick should be automatically recognized when you insert it. If
it is not you should check that the usb-storage kernel module is loaded.
When the USB stick is inserted, it will be mapped to a device named
/dev/sdX
, where the “X” is a letter
in the range a-z. You should be able to see to which device the USB
stick was mapped by running the command lsblk before
and after inserting it. (The output of dmesg (as root) is
another possible method for that.)
To write to your stick, you may have to turn off its write
protection switch.
Warning | |
---|---|
The procedures described in this section will destroy anything already on the device! Make very sure that you use the correct device name for your USB stick. If you use the wrong device the result could be that all information on, for example, a hard disk is lost. |
Debian installation images for this architecture are created using the isohybrid technology; that means they can be written directly to a USB stick, which is a very easy way to make an installation media. Simply choose an image (such as the netinst, CD or DVD-1) that will fit on your USB stick. See Section 4.1, “Official Debian GNU/Linux installation images” to get an installation image.
Alternatively,
for very small USB sticks, only a few megabytes in size, you can download
the mini.iso image from the netboot
directory (at the location mentioned in Section 4.2.1, “Where to Find Installation Files”).
The installation image you choose should be written directly to the USB stick, overwriting its current contents. For example, when using an existing GNU/Linux system, the image file can be written to a USB stick as follows, after having made sure that the stick is unmounted:
#
cp
debian.iso
/dev/sdX
#
sync
Information about how to do this on other operating systems can be found in the Debian CD FAQ.
Important | |
---|---|
The image must be written to the whole-disk device and not a partition, e.g. /dev/sdb and not /dev/sdb1. Do not use tools like unetbootin which alter the image. |
Important | |
---|---|
Simply writing the installation image to USB like this should work fine for most users. The other options below are more complex, mainly for people with specialised needs. |
The hybrid image on the stick does not occupy all the storage space, so it may be worth considering using the free space to hold firmware files or packages or any other files of your choice. This could be useful if you have only one stick or just want to keep everything you need on one device.
To do so, use cfdisk or any other partitioning tool to create an additional partition on the stick. Then create a (FAT) filesystem on the partition, mount it and copy or unpack the firmware onto it, for example with:
# mkdosfs -n FIRMWARE /dev/sdX3 # mount /dev/sdX3
/mnt # cd /mnt # tar zxvf/path/to/
firmware.tar.gz # cd / # umount /mnt
Take care that you use the correct device name for your USB stick. The
mkdosfs command is contained in the
dosfstools
Debian package.
Note | |
---|---|
If you have chosen the |
Prior to isohybrid technology being used for Debian installation images, the methods documented in the chapters below were used to prepare media for booting from USB devices. These have been superseded by the technique in Section 4.3.1, “Preparing a USB stick using a hybrid CD/DVD image”, but have been left here for educational and historical purposes and in case they are useful to some user.
An alternative to the method described in Section 4.3.1, “Preparing a USB stick using a hybrid CD/DVD image” is to manually copy the installer files, and also an installation image to the stick. Note that the USB stick should be at least 1 GB in size (smaller setups are possible using the files from netboot, following Section 4.3.3, “Manually copying files to the USB stick — the flexible way”).
There is an all-in-one file hd-media/boot.img.gz
which contains all the installer files (including the
kernel) as well as syslinux
and its
configuration file.
Note | |
---|---|
Note that, although convenient, this method does have one major disadvantage: the logical size of the device will be limited to 1 GB, even if the capacity of the USB stick is larger. You will need to repartition the USB stick and create new file systems to get its full capacity back if you ever want to use it for some different purpose. |
Simply extract this image directly to your USB stick:
# zcat boot.img.gz > /dev/sdX
After that, mount the USB memory stick
(mount
/dev/
),
which will now have
a FAT filesystem
on it, and copy a Debian ISO image (netinst or full CD; see
Section 4.1, “Official Debian GNU/Linux installation images”) to it.
Unmount the stick (sdX
/mntumount /mnt
) and you are done.
If you like more flexibility or just want to know what's going on, you should use the following method to put the files on your stick. One advantage of using this method is that — if the capacity of your USB stick is large enough — you have the option of copying any ISO image, even a DVD image, to it.
We will show how to set up the memory stick to use the first partition, instead of the entire device.
In order to start the kernel after booting from the USB stick, we will
put a boot loader on the stick. Although any boot loader
should work, it's convenient to use
syslinux
, since it uses a FAT16 partition and can
be reconfigured by just editing a text file. Any operating system
which supports the FAT file system can be used to make changes to the
configuration of the boot loader.
First, you need to install the syslinux
and
mtools
packages on your system.
Note | |
---|---|
Since most USB sticks come pre-configured with a single FAT16 partition, you probably won't have to repartition or reformat the stick. If you have to do that anyway, use cfdisk or any other partitioning tool to create a FAT16 partition now[3], and then install an MBR using:
# cat /usr/lib/syslinux/mbr/mbr.bin >/dev/ Now create the filesystem using:
# mkdosfs /dev/
Take care that you use the correct device name for your USB stick. The
mkdosfs command is contained in the
|
Having a correctly partitioned USB stick (now), you need to put
syslinux
on the FAT16 partition with:
# syslinux /dev/sdX1
Again, take care that you use the correct device name. The partition
must not be mounted when starting syslinux. This
procedure writes a boot sector to the partition and creates the file
ldlinux.sys
which contains the boot loader code.
There are two different installation variants to choose here: The hd-media variant needs an installation ISO file on the stick, to load installer modules and the base system from. The netboot installer however will load all that from a Debian mirror.
According to your choice, you have to download some installer files from the hd-media or netboot subdirectory of debian/dists/bullseye/main/installer-amd64/current/images/ on any Debian mirror:
vmlinuz
or linux
(kernel binary)
initrd.gz
(initial ramdisk image)
You can choose between either the text-based version of the installer (the
files can be found directly in hd-media or netboot) or the graphical
version (look in the respective gtk
subdirectories).
Then mount the partition
(mount /dev/
)
and copy the downloaded files to the root directory of the stick.
sdX1
/mnt
Next you should create a text file named syslinux.cfg
in the root directory of the stick as configuration file for syslinux, which at
a bare minimum should contain the following line:
default vmlinuz initrd=initrd.gz
Change the name of the kernel binary to “linux
”
if you used files from netboot
.
For the graphical installer (from gtk
) you should add
vga=788
at the end of the line. Other parameters can be
appended as desired.
To enable the boot prompt to permit further parameter appending, add a
prompt 1
line.
If you used files from hd-media
, you should now copy the
ISO file of a Debian installation image onto the stick. (For the
netboot
variant this is not needed.)
You can use either a netinst or a full CD/DVD image (see
Section 4.1, “Official Debian GNU/Linux installation images”). Be sure to select one that fits on your stick.
Note that the “netboot mini.iso
” image is
not usable for this purpose.
When you are done, unmount the USB memory stick
(umount /mnt
).