4.4. Подготовка файлов для загрузки с карты памяти USB

Для подготовки карты памяти USB вам нужна система с запущенной GNU/Linux с поддержкой USB. Убедитесь, что загружен модуль ядра usb-storage (modprobe usb-storage) и попытайтесь выяснить на какое устройство SCSI отображена карта памяти USB (в примере используется /dev/sda). Также выключите защиту от записи.

Заметим, что карта памяти USB должна быть как минимум 128МБ (установка на меньший размер возможна после прочтения Раздел 4.4.2, «Копирование файлов — гибкий путь»).

4.4.1. Копирование файлов — лёгкий путь

Существует файл "всё-в-одном" — hd-media/boot.img.gz, который содержит все файлы установки (включая ядро), а также SYSLINUX и его файл конфигурации. Вам нужно просто распаковать его прямо на карту памяти USB:

# zcat boot.img.gz > /dev/sda

Внимание

Естественно, это уничтожит все данные на устройстве, поэтому не ошибитес в названии устройства карты памяти USB.

После этого, смонтируйте карту памяти USB (mount /dev/sda /mnt), которая теперь имеет файловую систему FAT и скопируйте на неё ISO образ Debian netinst или businesscard. Имя файла должно заканчиваться обязательно на .iso. Размонтируйте устройство (umount /mnt) и всё готово.

4.4.2. Копирование файлов — гибкий путь

Если вам хочется большей гибкости или вы просто хотите знать, что на самом деле происходит, то можете воспользоваться следующим методом записи файлов на карту памяти.

4.4.2.1. Разметка карты памяти USB на архитектуре Intel x86

Мы покажем как использовать на карте памяти только первый раздел, а не всё устройство.

Замечание

Так как большинство карт памяти USB продаются только с единственным разделом FAT16 вам, вероятно, не хочется переразмечать или форматировать устройство. Если вам всё равно это нужно сделать, воспользуйтесь cfdisk или любой другой утилитой разметки для создания раздела FAT16, а затем создайте файловую систему:

# mkdosfs /dev/sda1

Обязательно вводите правильное имя карты памяти USB. Команда mkdosfs содержится в пакете Debian dosfstools.

Для запуска ядра после загрузки карты памяти USB, мы поместим на неё системный загрузчик. Хотя должен работать любой системный загрузчик (например LILO), удобнее использовать SYSLINUX, так как он использует раздел FAT16 и настраивается простым редактированием текстового файла. Для изменения конфигурации системного загрузчика можно использовать любую операционную систему, которая поддерживает файловую систему FAT.

Чтобы поместить SYSLINUX на раздел FAT16 карты памяти USB, установите в систему пакеты syslinux и mtools и введите

# syslinux /dev/sda1

Ещё раз отметим: не ошибитесь в имени устройства. Раздел не должен быть смонтирован при запуске SYSLINUX. Эта процедура переписывает загрузочный сектор раздела и создаёт файл ldlinux.sys, который содержит код системного загрузчика.

Смонтировав раздел (mount /dev/sda1 /mnt), скопируйте следующие файлы из архива Debian:

  • vmlinuz (файл ядра)

  • initrd.gz (образ ramdisk)

  • syslinux.cfg (файл настройки SYSLINUX)

  • необязательные модули ядра

Если вы хотите переименовать файлы, учтите, что SYSLINUX работает только с файловыми именами DOS (8.3).

Конфигурационный файл syslinux.cfg должен содержать две строки:

default vmlinuz
append initrd=initrd.gz ramdisk_size=12000 root=/dev/ram rw

Учтите, что может потребоваться увеличить значение параметра ramdisk_size в зависимости от загружаемого образа. Если загрузка завершилась неудачно, попробуйте добавить devfs=mount,dall в строку «append».

4.4.2.2. Добавление ISO образа

Теперь вы должны положить на карту памяти какой-нибудь ISO образ Debian (businesscard, netinst или даже образ первого CD) (если он влезет). Имя файла образа обязательно должно заканчиваться на .iso.

Если вы хотите выполнять установку через сеть, без использования ISO образа, вам естественно нужно пропустить предыдущий шаг. Кроме того, вам нужно использовать ramdisk из каталога netboot, а не из hd-media, так как в hd-media/initrd.gz нет поддержки сети.

После завершения копирования, размонтируйте карту памяти USB (umount /mnt) и включите защиту от записи.

4.4.2.3. Загрузка с карты памяти USB

Внимание

Если машина не хочет загружаться с карты памяти USB, то одной из причин может быть неправильная главная загрузочная запись (MBR). Чтобы исправить её, используйте команду install-mbr из пакета mbr:

# install-mbr /dev/sda