Bootflash/mkbootflash

Материал из ALT Linux Wiki

Создание загрузочной флешки

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

Теория её создания аналогична созданию LiveCD LiveCD/Howto. Проблема наполнения флешки легко решается, при наличии установочного дистрибутива или LivCD - надо просто скопировать содержимое дистрибутива, сконфигурировать файлы syslinux и инициировать его командой syslinux, как описано здесь : Bootflash/InstallFlash

Вкратце повторюсь : 1 Если у нас есть флешка с файловой системой fat, то всё нормально, если файловая система не fat, то делаем с помощью следующих команд:

Как определить на каком /dev видна флешка? Переключаемся на 12-й экран <Ctrl>+<Alt>+<F12> Вставляем флешку.

Пробегают строчки :


Nov 18 21:52:06 Rostov kernel: [ 5268.564551] usb 1-9: new high speed USB device using ehci_hcd and address 5
Nov 18 21:52:06 Rostov kernel: [ 5268.707151] usb 1-9: configuration #1 chosen from 1 choice
Nov 18 21:52:06 Rostov kernel: [ 5268.710413] scsi7 : SCSI emulation for USB Mass Storage devices
Nov 18 21:52:11 Rostov kernel: [ 5273.709807] scsi 7:0:0:0: Direct-Access     Kingston DataTraveler 2.0 PMAP PQ: 0 ANSI: 0 C
Nov 18 21:52:11 Rostov kernel: [ 5273.710031] sd 7:0:0:0: Attached scsi generic sg3 type 0
Nov 18 21:52:14 Rostov kernel: [ 5276.945898] sd 7:0:0:0: [sdd] 15646720 512-byte hardware sectors: (8.01 GB/7.46 GiB)
Nov 18 21:52:14 Rostov kernel: [ 5276.946536] sd 7:0:0:0: [sdd] Write Protect is off
Nov 18 21:52:14 Rostov kernel: [ 5276.946541] sd 7:0:0:0: [sdd] Assuming drive cache: write through
Nov 18 21:52:14 Rostov kernel: [ 5276.958800] sd 7:0:0:0: [sdd] Assuming drive cache: write through
Nov 18 21:52:14 Rostov kernel: [ 5276.958809]  sdd: sdd1
Nov 18 21:52:14 Rostov kernel: [ 5276.959590] sd 7:0:0:0: [sdd] Attached SCSI removable disk
Из этого лога, мы сразу видим, что флешка у нас обнаружена, как  на /dev/sdd. Для более подробной информации о ней, мы выполняем команду fdisk -l /dev/sdd

Допустим, мы увидим :

[root]# fdisk -l /dev/sdd
Диск /dev/sdd: 8011 МБ, 8011120640 байт
255 heads, 63 sectors/track, 973 cylinders
Units = цилиндры of 16065 * 512 = 8225280 bytes
Disk identifier: 0x00001d1d
Устр-во Загр     Начало       Конец       Блоки   Id  Система
/dev/sdd1   *           1         973     7815591    7  HPFS/NTFS

Т.е на флешке есть NTFS раздел. К сожалению, syslinux пока не поддерживает ntfs разделы. Бедим считать, что на флешке нет информации (если есть, то конечно сохраняем её где-то отдельно).

Удаляем раздел и создаём новый с помощью команды fdisk.

fdisk /dev/sdd
Команда (m для справки): m

Выведем список команд fdisk - нажмём букву m
Действие команды
   a   переключение флага загрузки
   b   редактирование метки диска bsd
   c   переключение флага dos-совместимости
   d   удаление раздела
   l   список известных типов файловых систем
   m   вывод этого меню
   n   добавление нового раздела
   o   создание новой пустой таблицы разделов DOS
   p   вывод таблицы разделов
   q   выход без сохранения изменений
   s   создание новой чистой метки диска Sun
   t   изменение id системы раздела
   u   изменение единиц измерения экрана/содержимого
   v   проверка таблицы разделов
   w   запись таблицы разделов на диск и выход
   x   дополнительная функциональность (только для экспертов)
Команда (m для справки):                  
Выведем список разделов флешки - нажмём букву p
Команда (m для справки): p
Диск /dev/sdd: 8011 МБ, 8011120640 байт
255 heads, 63 sectors/track, 973 cylinders
Units = цилиндры of 16065 * 512 = 8225280 bytes
Disk identifier: 0x00001d1d
Устр-во Загр     Начало       Конец       Блоки   Id  Система
/dev/sdd1   *           1         973     7815591    7  HPFS/NTFS
Нажмём d:

Команда (m для справки): d
Выбранный раздел 1

Теперь, если нажать p, мы увидем, что разделов на флешке не осталось 
Команда (m для справки):   p
Диск /dev/sdd: 8011 МБ, 8011120640 байт
255 heads, 63 sectors/track, 973 cylinders
Units = цилиндры of 16065 * 512 = 8225280 bytes
Disk identifier: 0x00001d1d
Создаём  раздел :
Команда (m для справки): n
Действие команды
   e   расширенный
   p   основной раздел (1-4)

Выбираем основной - нажимаем p

Номер раздела (1-4): 1
Первый цилиндр (1-973, по умолчанию 1):
Используется значение по умолчанию 1
Last цилиндр, +цилиндры or +size{K,M,G} (1-973, по умолчанию 973):
Используется значение по умолчанию 973

Теперь изменяем идентификатор (id) раздела

Команда (m для справки):   t
Выбранный раздел 1
Шестнадцатеричный код (введите L для получения списка кодов):  
Если сейчас ввести букву L, то можно получить список всех возможных типов разделов, в том числе интересующих нас:
 1  FAT12  
 4  FAT16 <32M 
 6  FAT16     
 b  W95 FAT32 
 c  W95 FAT32 (LBA)  
 e  W95 FAT16 (LBA)
 Подробнее о разновидностях  разделов fat смотри  [здесь]