Создание пользовательского Linux Live CD
Может ли кто-нибудь указать мне хороший учебник по созданию загрузочного компакт-диска Linux с нуля?
Мне нужна помощь с довольно специализированной проблемой: моя фирма продает карту расширения, которая требует специальной прошивки. В настоящее время мы используем чрезвычайно старый образ Live CD RH7.2, который мы обновляем с помощью текущей прошивки. Производство помещает карты в машину, садится с компакт-диска, компакт-диск записывает прошивку, выключает и вытаскивает карты. Из-за этого цикла необходимо, чтобы компакт-диск загрузился и выключился как можно быстрее.
Проблема в том, что со следующего поколения карт я должен обновить компакт-диск до ядра 2.6. Достаточно легко приобрести уже существующий Live CD, но все они предназначены для демонстрации Linux на рабочем столе, что означает, что они навсегда загружаются.
Может ли кто-нибудь исправить меня с помощью текущего How-To?
Обновление:
Итак, как последнее обновление для тех, кто читает это позже - инструмент, который я использовал, был "livecd-creator".
Моя причина выбора этого инструмента заключалась в том, что он доступен для дистрибутивов на основе RedHat, таких как CentOs, Fedora и RHEL, которые являются всеми дистрибутивами, которые моя компания уже поддерживает. Кроме того, хотя проект очень плохо документирован, он чрезвычайно настраиваемый. Мне удалось создать минимальный LiveCD и отредактировать последовательность загрузки, чтобы она загружалась непосредственно в обновление прошивки вместо оболочки bash.
Вся работа заняла бы час или два, если бы README объяснял конфигурационный файл!
Ответы
Ответ 1
Один из ключевых советов, которые я могу дать, - это то, что большинство LiveCD используют сжатую файловую систему под названием squashfs, чтобы как можно больше данных на компакт-диске. Поскольку вам не требуется сжатие, вы можете запустить шаг mksquashfs (присутствующий в большинстве руководств) с -noDataCompression и -noFragmentCompression, чтобы сэкономить время декомпрессии. Вы даже можете полностью отказаться от подхода squashfs, но это потребует некоторой реструктуризации. Это может быть на самом деле медленнее в зависимости от скорости чтения CD-ROM и скорости процессора, но это стоит посмотреть.
Этот учебник Ubuntu был достаточно эффективен для создания LiveCD на основе 8.04. Может быть полезно получить представление о том, как LiveCD скомпонован, но я, вероятно, не рекомендую использовать Ubuntu LiveCD.
Если это вообще возможно, найдите минимальный LiveCD и создайте его с минимальным отключением, а не сбрасывайте огромные LiveCD, такие как Ubuntu. Есть некоторые ситуации, когда меньшие дистрибутивы используют альтернативные варианты меньшего/более быстрого, а не просто оставляют что-то. Если вы хотите серьезно заняться хардкором, вы можете посмотреть Linux From Scratch и включить только то, что вы хотите, но это, вероятно, больше времени, чем вы хотите потратить.
Ответ 2
Есть несколько интересных проектов, которые вы могли бы изучить.
Но сначала: это должен быть CD-ROM? Это, вероятно, самое медленное хранилище (ну, кроме ленты, возможно) вы могли бы использовать. Как насчет быстрого USB-накопителя или жесткого диска IEE1394 или, возможно, даже жесткого диска eSATA?
Хорошо, есть несколько Live-CD, которые разработаны, чтобы быть очень маленькими, чтобы, например, на компакт-диске с размером визитной карточки. Некоторые из них также были предназначены для загрузки с USB-накопителя, когда это означало 64-128 MiByte: Damn Small Linux является одним из самых известных, однако он использует ядро 2.4. Существует дочерний проект под названием Damn Small Linux - не, который имеет ядро 2.6 (хотя кажется он не обновлялся годами.)
Еще один заслуживающий внимания проект - grml, Live-CD для задач системного администрирования. Он не загружается в графическую среду и, следовательно, довольно быстро; однако он все еще содержит около 2 GiByte программного обеспечения, сжатого на CD-ROM. Но он также имеет меньший вкус, точно названный grml-small, который содержит только около 200 MiByte программного обеспечения, сжатого на 60 мегабайт.
Тогда существует Morphix, который представляет собой набор инструментов для создания Live-CD на основе Knoppix. ( "Morphable Knoppix"!) Morphix - это в основном инструмент для создания собственного Live-CD специального назначения.
Последнее, что я хочу упомянуть, это MachBoot. MachBoot - супер-быстрый Live-CD. Он использует различные методы для массового ускорения процесса загрузки. Я считаю, что они даже отслеживают порядок доступа к блокам во время загрузки, а затем пересобирают ISO, чтобы эти блоки были смежно размещены на носителе. Их текущая запись составляет менее 6 секунд для загрузки в полную графическую среду рабочего стола. Однако это также кажется устаревшим.
Ответ 3
Создание собственного пользовательского Ubuntu 7.10 или Linux Mint 4.0 Live-CD с Remastersys
Ответ 4
Зависит от вашего дистрибутива. Вот хорошая статья, которую вы можете проверить из LWN.net
Есть книга, которую я использовал, которая покрывает множество дистрибутивов, хотя она не охватывает создание флэш-загрузочного образа. Книга Live Linux (R) CD: создание и настройка загрузочных файлов. Вы можете использовать его с дополнительной информацией из вашего дистрибутива по выбору.
Ответ 5
Итак, как последнее обновление для тех, кто читает это позже - инструмент, который я использовал, был "livecd-creator".
Моя причина выбора этого инструмента заключалась в том, что он доступен для дистрибутивов на основе RedHat, таких как CentOs, Fedora и RHEL, которые являются всеми дистрибутивами, которые моя компания уже поддерживает. Кроме того, хотя проект очень плохо документирован, он чрезвычайно настраиваемый. Мне удалось создать минимальный LiveCD и отредактировать последовательность загрузки, чтобы она загружалась непосредственно в обновление прошивки вместо оболочки bash.
Вся работа заняла бы час или два, если бы README объяснял конфигурационный файл!
Ответ 6
Debian Live предоставляет лучшие инструменты для создания Linux Live CD. Webconverger использует Debian Live, например.
Он очень прост в использовании.
sudo apt-get install live-helper # из Debian неустойчивый, который должен отлично работать с Ubuntu
lh_config # edit config/* по вашему вкусу
sudo lh_build