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

Есть два способа установки при загрузке с карты памяти USB. Первый предназначен для установки полностью из сети. Во втором образ CD также копируется на карту памяти USB и затем используется как источник пакетов, возможно совместно с сервером-зеркалом. Второй способ используется чаще.

Для использования первого метода установки вам нужно скачать образ программы установки из каталога netboot (о том, где этот каталог см. Раздел 4.2.1, «Где искать установочные образы») и воспользоваться «гибким способом», описанном ниже, для копирования файлов на карту памяти USB.

Установочные образы для второго способа установки можно найти в каталоге hd-media, а для копирования образа использовать, или «простой способ» или «гибкий способ». Для этого способа установки также потребуется скачать CD-образ. Установочный образ и CD-образ должны быть одного выпуска debian-installer. Если разных выпусков, то, вероятно, вы получите ошибки [6] при установке.

Для подготовки карты памяти USB вам нужна работающая система GNU/Linux с поддержкой USB. В этой системе карта памяти USB должна автоматически распознаваться при вставке. Если нет, то убедитесь, что загружен модуль ядра usb-storage. Когда USB-карта вставлена, то она доступна в системе как устройство с именем /dev/sdX, где «X» — это буква из диапазона a-z. Вы можете определить, какое устройство появилось после вставке карты USB запустив команду dmesg. Также выключите защиту от записи на карту.

Внимание

Процедура, описанная в этом разделе, уничтожит все данные на устройстве! Не ошибитесь в названии устройства карты памяти USB. Если вы укажите не то устройство, это может привести к полной потере информации где-то ещё, например, на жёстком диске.

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

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

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

Заметим, что хотя этот метод удобен, он имеет большой недостаток: логический размер устройства ограничен 256 МБ, даже если ёмкость карты памяти USB гораздо больше. Вам нужно переразметить карту USB и создать новые файловые системы, чтобы снова получить всё пространство, если вы хотите использовать его для другой цели. Вторым недостатком является то, что вы не можете скопировать полный CD-образ на карту памяти USB,а только CD-образы меньшего размера, например businesscard или netinst.

Чтобы использовать образ, просто распакуйте его прямо на карту памяти USB:

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

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

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

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

4.3.2.1. Разметка карты памяти USB

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

Замечание

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

# mkdosfs /dev/sdX1

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

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

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

# syslinux /dev/sdX1

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

4.3.2.2. Добавление образа программы установки

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

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

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

Вы можете выбрать обычную версию программ установки или версию с графическим интерфейсом. Последнюю можно найти в подкаталоге gtk. Если вы хотите переименовать файлы, учтите, что syslinux работает только с файловыми именами DOS (8.3).

Затем, вам нужно создать файл настройки syslinux.cfg, который, как минимум содержит две строки (измените имя файла с ядром на «linux», если используется образ netboot):

default vmlinuz
append initrd=initrd.gz

Для графической версии программы установки нужно добавить video=vesa:ywrap,mtrr vga=788 во вторую строку.

Если вы используете образ hd-media, то теперь вы должны скопировать ISO-образ Debian[8] на карту памяти. После завершения, размонтируйте карту памяти USB (umount /mnt).

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

Внимание

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

# install-mbr /dev/sdX



[6] Сообщение об ошибке будет, скорее всего, говорить о ненайденных модулях ядра. Это означает, что версия модулей ядра udeb с образа CD отличается от версии запущенного ядра.

[7] Не забудьте установить флаг загрузки «bootable».

[8] Вы можете использовать businesscard, netinst или полный образ CD (см. Раздел 4.1, «Официальный набор компакт-дисков Debian GNU/Linux»). Убедитесь, что он подходит по размеру. Заметим, что образ «netboot mini.iso» не подходит для это цели.