[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#509937: installation-reports: Booting from USB stick not restricted to FAT

Subject: installation-reports: Booting from USB stick not restricted to FAT
Package: installation-reports
Severity: minor
Tags: patch

*** Please type your report below this line ***

Documentation: http://d-i.alioth.debian.org/manual/en.i386/ch04s03.html

Section 4.3: Preparing Files for USB Memory Stick Booting.

This section is out of date in that it suggests that it is necessary to
create a FAT16 partition on the USB stick in order to boot. This is a
serious inconvenience and is no longer true since syslinux now supports
ext2 in the shape of "extlinux":

Until grub2 is working reliably, syslinux/extlinux seems to be the only
sensible way to boot on machines with only usb ports. So requiring a
(probably temporary) fat partition on a usb stick is a major
inconvenience, especially since large sticks on which it is possible to
include several dvd iso images are now widely and cheaply available.

Thus Section "Partitioning the USB stick" needs rewriting.

Perhaps it should start along the following lines:

We will show how to set up the memory stick to use either an ext2 or a
fat partition. Most usb sticks come pre-configured with a single fat32
or fat16 partition, often with a MBR (Master Boot Record) already set up
in the first sector of the underlying device. If you want to keep the
fat partition, perhaps so that the stick can be used on both linux and
other operating systems, then you can use syslinux as described below.
Otherwise, you might want at least one ext2 partition for the extra
facilities it offers. In that case, you will use the syslinux variant
called extlinux. (http://syslinux.zytor.com/wiki/index.php/EXTLINUX)

If you decide to change the partitions on the usb stick, you can use
fdisk, cfdisk, or sfdisk among others including tools that run on other
operating systems. Just ensure you include at least one
fat or at least one ext2 partition to hold the vmlinuz and initrd.gz
installer files.

If you have a new partition, next a filesystem of the right sort needs
to be created. For a fat partition, use mkdosfs; for ext2, use mke2fs.

If the partition is /dev/sdXn, then either
 # mkdosfs /dev/sdXn
 # mke2fs /dev/sdXn

In order to start the installer kernel after booting from the usb stick,
we will put a boot loader on the stick. Although any boot loader (apart
from grub which currently has problems with usb sticks) should work,
it's convenient to use syslinux package, since it can use either fat or
ext2 and can be reconfigured by just editing a text file. If you choose
fat, most operating systems can be used to make changes to the
configuration of the boot loader.

Install the syslinux package (which includes extlinux) and, if you are
using fat, also the mtools package.

To install the boot loader, for fat,
 # syslinux /dev/sdXn
Again, take care that you use the correct device name.

For ext2, you mount the target filesystem first:
 # mount -t ext2 /dev/sdXn /mountpoint
"mountpoint" above is an (normally empty) directory which you can create
with the mkdir command if there is no existing mount point available.
 # extlinux /mountpoint

We now have boot sector in the partition and either linux.sys or
extlinux.sys which contain the boot loader code in the root of the
target directory: both syslinux and extlinux can place them elsewhere,
but we only cover the simplest case here.

======================================================= Adding the installer image

The sentence:

"Next you should create a syslinux.cfg configuration file, which at a
bare minimum should contain the following two lines:"

should become

Next you should create a configuration file: either syslinux.cfg (fat)
or extlinux.conf (ext2). At a bare minimum, it should contain the
following two lines:


A E Lawrence

-- System Information:
Debian Release: 4.0
  APT prefers stable
  APT policy: (990, 'stable'), (500, 'proposed-updates')
Architecture: i386 (i686)
Shell:  /bin/sh linked to /bin/bash
Kernel: Linux
Locale: LANG=en_GB, LC_CTYPE=en_GB (charmap=ANSI_X3.4-1968) (ignored:
LC_ALL set to C)

Reply to: