To prepare the USB stick, you will need 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 dmesg after
inserting it. To write to your stick, you may have to turn off its write
protection switch.
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 could be lost.
Debian CD and DVD images can now be written directly a USB stick, which is a very easy way to make a bootable USB stick. Simply choose a CD or DVD image that will fit on your USB stick. See Section 4.1, “Official Debian GNU/Linux CD-ROM Sets” to get a CD or DVD 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 Images”).
[4]
The CD or DVD 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 CD or DVD image file can be written to a USB stick as follows:
# catdebian.iso
> /dev/sdX
# sync
An alternative way to set up your USB stick is to manually copy the installer files, and also a CD image to it. Note that the USB stick should be at least 256 MB in size (smaller setups are possible if you follow 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 that, although convenient, this method does have one major disadvantage: the logical size of the device will be limited to 256 MB, 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. A second disadvantage is that you cannot copy a full CD image onto the USB stick, but only the smaller businesscard or netinst CD images.
To use this image simply extract it 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 netinst or businesscard ISO image 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 a full CD ISO image to it.
We will show how to set up the memory stick to use the first partition, instead of the entire device.
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[5], and then create the filesystem using:
# mkdosfs /dev/sdX1
Take care that you use the correct device name for your USB stick. The
mkdosfs command is contained in the
dosfstools
Debian package.
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
(e.g. lilo
) 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.
To put syslinux
on the FAT16 partition on your USB
stick, install the syslinux
and
mtools
packages on your system, and do:
# 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.
Mount the partition
(mount /dev/
)
and copy the following installer image files to the stick:
sdX1
/mnt
vmlinuz
or linux
(kernel binary)
initrd.gz
(initial ramdisk image)
You can choose between either the regular version or the graphical version
of the installer. The latter can be found in the gtk
subdirectory. If you want to rename the files, please note that
syslinux
can only process DOS (8.3) file names.
Next you should create a syslinux.cfg
configuration
file, which at a bare minimum should contain the following two lines (change
the name of the kernel binary to “linux
”
if you used a netboot
image):
default vmlinuz append initrd=initrd.gz
For the graphical installer you should add
vga=788
to the second line.
If you used an hd-media
image, you should now copy a
Debian ISO image[6] onto the stick. When you are done, unmount the USB memory stick
(umount /mnt
).
[4]
A special method can be used to add firmware to the
mini.iso
. First, write the
mini.iso
to the USB stick.
Next obtain the necessary firmware files.
See Section 6.4, “Loading Missing Firmware” for more information about firmware.
Now unplug and replug the USB stick, and two partitions should now be visible on it.
You should mount the second of the two partitions, and unpack the firmware onto it.
# mount /dev/sdX2
/mnt # cd /mnt # tar zxvf/path/to/
firmware.tar.gz # cd / # umount
[5] Don't forget to set the “bootable” bootable flag.
[6]
You can use either a businesscard, a netinst or a full CD image (see
Section 4.1, “Official Debian GNU/Linux CD-ROM Sets”). Be sure to select one that fits.
Note that the “netboot mini.iso
” image is
not usable for this purpose.