Bootflash/mkbootflash: различия между версиями
Нет описания правки |
Нет описания правки |
||
(не показано 26 промежуточных версий 7 участников) | |||
Строка 10: | Строка 10: | ||
1 Если у нас есть флешка с файловой системой fat, то всё нормально, если файловая система не fat, то делаем с помощью следующих команд: | 1 Если у нас есть флешка с файловой системой fat, то всё нормально, если файловая система не fat, то делаем с помощью следующих команд: | ||
Как определить на каком /dev видна флешка? | ====Как определить на каком /dev видна флешка?==== | ||
Переключаемся на 12-й экран <Ctrl>+<Alt>+<F12> Вставляем флешку. | Переключаемся на 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.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.707151] usb 1-9: configuration #1 chosen from 1 choice | ||
Строка 28: | Строка 26: | ||
Nov 18 21:52:14 Rostov kernel: [ 5276.959590] sd 7:0:0:0: [sdd] Attached SCSI removable disk | Nov 18 21:52:14 Rostov kernel: [ 5276.959590] sd 7:0:0:0: [sdd] Attached SCSI removable disk | ||
===Работа с fdisk=== | |||
Из этого лога, мы сразу видим, что флешка у нас обнаружена, как на /dev/sdd. Для более подробной информации о ней, мы выполняем команду fdisk -l /dev/sdd | Из этого лога, мы сразу видим, что флешка у нас обнаружена, как на /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 байт | Диск /dev/sdd: 8011 МБ, 8011120640 байт | ||
255 heads, 63 sectors/track, 973 cylinders | 255 heads, 63 sectors/track, 973 cylinders | ||
Units = цилиндры of 16065 * 512 = 8225280 bytes | Units = цилиндры of 16065 * 512 = 8225280 bytes | ||
Disk identifier: 0x00001d1d | Disk identifier: 0x00001d1d | ||
Строка 75: | Строка 82: | ||
/dev/sdd1 * 1 973 7815591 7 HPFS/NTFS | /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 смотри [[http://yura.projektas.lt/archiv/per/fat.html здесь]] | |||
Выбираем тип раздела -с (W95 FAT32) | |||
Команда (m для справки): t | |||
Выбранный раздел 1 | |||
Шестнадцатеричный код (введите L для получения списка кодов): c | |||
Системный тип раздела 1 изменен на c (W95 FAT32 (LBA)) | |||
Теперь осталось выполнить все сделанные нами операции - нажать букву w (или выйти не сделав ничего - нажать букву q, как я сейчас и сделаю, т.к. не хочу ничего стирать со своей флешки :) ) | |||
===Форматирование раздела=== | |||
Убедитесь, что у вас есть mkfs.vfat: {{cmd|# apt-get install /sbin/mkfs.vfat}} | |||
После этого осталось отформатировать раздел под vfat командой: | |||
* {{cmd|# mkfs.vfat /dev/sdd1}} | |||
Кстати это не единственный вариант форматирования раздела fat. Можно, например использовать mkdosfs. | |||
Ну а дальше наполняем флешку необходимым нам содержимым (которое можно например взять из имеющегося в наличии установочного или LiveCD) и выполнить команду {{cmd|syslinux -d /syslinux /dev/sdd1}} или просто {{cmd|syslinux /dev/sdd1}} (если все параметры идут по-умолчанию). Ключ {{cmd|d}} указывает, что файлы настройки лежат в нестандартном поддиректории. | |||
===Использование команды mkbootflash=== | |||
Для облегчения создания установочных и загрузочных флешек в ALT Linux существует скрипт [http://packages.altlinux.org/ru/Sisyphus/srpms/mkbootflash/gear mkbootflash]. Этот скрипт, в двух словах, делает следующие операции : | |||
# копирует с DVD или установочного CD образы, необходимые для для работы флешки. | |||
# вызывает команду syslinux c нужными параметрами. | |||
# при необходимости создаёт образ, который монтируется как /home и в котором пользователь может хранить свои данные. | |||
Т.е эти данные будут видны, если загрузились именно с флешки, а так они лежат внутри файла-образа. | |||
Разберём его опции поподробнее. {{cmd|mkbootflash --help}} выдаёт вид этой команды : | |||
mkbootflash [options] <path-to-device> | |||
* mkbootflash - это сама команда; | |||
* [option] - опции команды (квадратные скобки подсказывают, что опции не обязательны); | |||
* <path-to-device> - путь до устройства | |||
т.е. для флешки, видимой как /dev/sdd1, команда в простейшем случае будет выглядеть так: | |||
mkbootflash /dev/sdd1 | |||
Теперь разберём опции этой команды: | |||
* -i, --install - создание флешки с установочном образом | |||
* -r, --rescue - создание флешки с образом восстановления системы | |||
* -l, --live - создание флешки с live образом, т.е. создание liveflash | |||
* -m, --memtest - помещение на флешку теста памяти | |||
* -M, --MBR - запись загрузочной информации в MBR флешки | |||
* -s, --size - размер создаваемого раздела /home в блоках (по 512 байт) | |||
* -f, --force - принудительное создание образа /home | |||
* -b, --boot-only - создание только загрузочной записи (без копирования) | |||
* -p, --path - путь до дирентории, или точки монтирования, где лежат файлы из образа CD (по-умолчанию - /media/cdrom) | |||
* -v, --verbose - выдача подробной информации, что сейчас делает скрипт | |||
* -V, --version - выдача версии скрипта | |||
* -h, --help - выдача справки. | |||
Таким образом, если у нас есть LiveCD, то мы можем создать из него LiveFlash c разделом /home в 200 Mb командой (для флешки /dev/sdd) | |||
mkbootflash -l -s 400000 /dev/sdd1 | |||
А установочную с образом rescue командой | |||
mkbootflash -ir /dev/sdd1 | |||
Необходимо отметить, что если на имеющимся CD/DVD нет, например, образа rescue, то скрипт не создаст его и выдаст ошибку. Т.е. скрипт умеет только копировать имеющиеся образы. | |||
===Центр управления=== | |||
На основе скрипта mkbootflash для центра управления был создан бакенд, который выполняет аналогичные функции. | |||
===Ссылка по теме=== | |||
Вот хорошее руководство, дополняющая данную статью: | |||
*http://lists.altlinux.org/pipermail/desktop/2008-February/013233.html | |||
{{Category navigation|title=Загрузочная флешка|category=BootFlash|sortkey={{SUBPAGENAME}}}} |
Текущая версия от 18:38, 2 июля 2015
Создание загрузочной флешки
Для создания загрузочной флеши, теоретически достаточно сделать две операции - поместить на неё необходимую информацию - файлы, образы и т.п. - сделать её загрузочной.
Теория её создания аналогична созданию 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
Работа с fdisk
Из этого лога, мы сразу видим, что флешка у нас обнаружена, как на /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 смотри [здесь] Выбираем тип раздела -с (W95 FAT32)
Команда (m для справки): t Выбранный раздел 1 Шестнадцатеричный код (введите L для получения списка кодов): c Системный тип раздела 1 изменен на c (W95 FAT32 (LBA))
Теперь осталось выполнить все сделанные нами операции - нажать букву w (или выйти не сделав ничего - нажать букву q, как я сейчас и сделаю, т.к. не хочу ничего стирать со своей флешки :) )
Форматирование раздела
Убедитесь, что у вас есть mkfs.vfat: # apt-get install /sbin/mkfs.vfat
После этого осталось отформатировать раздел под vfat командой:
- # mkfs.vfat /dev/sdd1
Кстати это не единственный вариант форматирования раздела fat. Можно, например использовать mkdosfs.
Ну а дальше наполняем флешку необходимым нам содержимым (которое можно например взять из имеющегося в наличии установочного или LiveCD) и выполнить команду syslinux -d /syslinux /dev/sdd1 или просто syslinux /dev/sdd1 (если все параметры идут по-умолчанию). Ключ d указывает, что файлы настройки лежат в нестандартном поддиректории.
Использование команды mkbootflash
Для облегчения создания установочных и загрузочных флешек в ALT Linux существует скрипт mkbootflash. Этот скрипт, в двух словах, делает следующие операции :
- копирует с DVD или установочного CD образы, необходимые для для работы флешки.
- вызывает команду syslinux c нужными параметрами.
- при необходимости создаёт образ, который монтируется как /home и в котором пользователь может хранить свои данные.
Т.е эти данные будут видны, если загрузились именно с флешки, а так они лежат внутри файла-образа.
Разберём его опции поподробнее. mkbootflash --help выдаёт вид этой команды :
mkbootflash [options] <path-to-device>
- mkbootflash - это сама команда;
- [option] - опции команды (квадратные скобки подсказывают, что опции не обязательны);
- <path-to-device> - путь до устройства
т.е. для флешки, видимой как /dev/sdd1, команда в простейшем случае будет выглядеть так:
mkbootflash /dev/sdd1
Теперь разберём опции этой команды:
- -i, --install - создание флешки с установочном образом
- -r, --rescue - создание флешки с образом восстановления системы
- -l, --live - создание флешки с live образом, т.е. создание liveflash
- -m, --memtest - помещение на флешку теста памяти
- -M, --MBR - запись загрузочной информации в MBR флешки
- -s, --size - размер создаваемого раздела /home в блоках (по 512 байт)
- -f, --force - принудительное создание образа /home
- -b, --boot-only - создание только загрузочной записи (без копирования)
- -p, --path - путь до дирентории, или точки монтирования, где лежат файлы из образа CD (по-умолчанию - /media/cdrom)
- -v, --verbose - выдача подробной информации, что сейчас делает скрипт
- -V, --version - выдача версии скрипта
- -h, --help - выдача справки.
Таким образом, если у нас есть LiveCD, то мы можем создать из него LiveFlash c разделом /home в 200 Mb командой (для флешки /dev/sdd)
mkbootflash -l -s 400000 /dev/sdd1
А установочную с образом rescue командой
mkbootflash -ir /dev/sdd1
Необходимо отметить, что если на имеющимся CD/DVD нет, например, образа rescue, то скрипт не создаст его и выдаст ошибку. Т.е. скрипт умеет только копировать имеющиеся образы.
Центр управления
На основе скрипта mkbootflash для центра управления был создан бакенд, который выполняет аналогичные функции.
Ссылка по теме
Вот хорошее руководство, дополняющая данную статью: