Ключевые слова:flash, linux, install, boot, livecd, (найти похожие документы)
From: Archimed <archimed@xpoda.com.>
Newsgroups: email
Date: Mon, 10 Nov 2006 14:31:37 +0000 (UTC)
Subject: Перенос LiveCD с Linux на Flash карту
v.0.1, 22 октября 2006
Версию 0.2 можно найти здесь: http://www.opennet.me/base/sys/live_flash2.txt.html
В этом документе я расскажу о том, как быстро, но качественно и
правильно перенести LiveCD на флешку. Получается очень удобная и
компактная вещь.
1. Постановка задачи.
Вам удобно таскать с собой 12-сантиметровый диск, на котором
записан ваш любимый LiveCD ? (Knoppix, DSL, Blin,...)?
Хочется всегда под рукой иметь свою систему, причем Linux, да чтобы она в
кармане много места не занимала... Хочется.
Нет проблем, ниже рассказ как скопировать образ LiveCD на USB Flash.
2. Что нам понадобится
Список продуктов, необходимых для приготовления живой флешки:
* Собственно, флешка. Размер зависит от твоих аппетитов. Для
Damn Small Linux подойдет и 128 Мб, для Knoppix понадобится не меньше
одного гигабайта. Я использовал Transcend JetFlash JF150 на 1 Гб;
* LiveCD, над которым мы будем экспериментировать.
Мною опробованы: Knoppix, Damn Small Linux, Trinux.
Последний, правда, не работает конкретно на моем компьютере
(точнее, нормально не работает), т.к. нет некоторый специфических
модулей, а докачивать мне лень :) В HOWTO рассматривается DSL, но
отличия между ними минимальны (в смысле переноса на флешку);
* Операционная система, из-под которой мы будем производить копирование.
Тут на вкус и цвет товарища нет, выбирайте сами. У меня этим товарищем
был (и есть) ASPLinux 11. Ребят, ну не бейте так сильно :)
* Syslinux. Если у вас в дистрибутиве вдруг
не оказалось этой программы (странный какой-то дистрибутив А
mkbootdisk как работает?), качайте с вышеуказанного сайта исходники
и собирайте.
Вот и все.
3. Подготовка
Убеждаемся, что все на месте.
[archimed@xpoda archimed]$ syslinux -help
Usage: syslinux [-sf] [-o offset] device
Если вдруг ответом будет bash: syslinux: command not found, грузите
исходные тексты и собирайте. Хотя, даже если syslinux в наличии, лучше скачать
последнюю версию. Вдруг там включили поддержку вашего биоса ?
Много времени это не займет (у меня это заняло около 20 секунд).
Собирается оно без всяких фокусов:
[archimed@xpoda syslinux-3.1]$ su
Password:
[root@xpoda syslinux-3.11]# make && make install
Правда, была у меня одна какая-то ошибка, но она была компилятором
проигнорирована, и все собралось ok.
Рисунок 1: Собирается syslinux. Недолго, благо P4-2,8
Не спешите расставаться с рутовыми правами, они еще понадобятся.
Теперь разберемся с самой флешкой. В принципе, все данные на ней можно
и оставить, но чем пингвин не шутит! На бэкап-то у вас на жестком
диске места должно хватить.
А, еще: придется нам использовать vfat. Нет, можно, конечно, и в ext3,
но вашу флешку потом не поймут пользователи Windows, что может пригодиться.
В общем, я вначале флешку почистил:
Рисунок 2: Сплошной мусор на флешке - надо бы подтереть...
Поехали дальше. Вставляем и монтируем диск с LiveCD. Если доступен
только iso'шник, то его совсем необязательно сначала прожигать на
болванку, достаточно примонтировать:
[root@xpoda archimed]# mkdir /media/dsl-loop
[root@xpoda archimed]# mount -o loop /home/archimed/dsl-2.2.iso /media/dsl-loop
Объясню: я создал точку монтирования (/media/dsl-loop)
для образа (home/archimed/dsl-2.2.iso) и примонтировал его (образ) с
помощью обратной петли (-o loop). Если mount будет ругаться на
-o loop, то придется обновить util-linux. Но я надеюсь, что у вас
дистрибутив новее Red Hat 6 :) Теперь копируйте все файлы с
компакт-диска на флешку (/media/DSFL - моя флешка):
[root@xpoda archimed]# cp -r /media/dsl-loop/* /media/DSFL
Пока копируется Damn Small Linux, можно успеть поменять обои. Если же ваш
выбор - Knoppix, сходите лучше попейте чаю, потому как смотреть на консоль
в ожидании появления $PS1 пять-семь минут - это первый признак
шизофрении :)
Рисунок 3: Почти готово
3. Почти готово...
Половина дела сделана. Теперь остается самое главное - сделать флешку
живой, т. е. загрузочной. Но для этого нам сначала нужно ядро, initrd
и конфиг syslinux. Можно все это сделать своими руками, но зачем? У
нас все это добро есть в папке boot/isolinux!
Копируйте это в корень флешки (/media/DSFL у меня). Но тут
есть одна маленькая деталь, которая тем не менее заставила 2 часа
искать причину, почему же syslinux не находит ядро. Конфиг syslinux'а
называется syslinux.cfg, а isolinux'а - isolinux.cfg. Т. к. мы
перетаскивали файлы с LiveCD, где использовался isolinux, надо
поменять имя конфига с isolinux.cfg, и все заработает!
[root@xpoda DSFL]# mv isolinux.cfg syslinux.cfg
Вот и пришло время для syslinux. Не забудь только отмонтировать
флешку! :)
[root@xpoda DSFL]# cd ..
[root@xpoda DSFL]# umount /media/DSFL
Вот только теперь можно уже давать команду:
[root@xpoda DSFL]# syslinux /dev/sdb1
(/dev/sdb1 - флешка; она может быть и sdc, и sdd)
Проверить, успешно ли прописался syslinux на флешке можно так:
[root@xpoda DSFL]# ls -la /media/DSFL/ldlinux.sys
Если его на флешке не окажется, то запись не была завершена . Ищите ошибку
(вы точно отмонтировали флешку?), или пробуйте syslinux -f /dev/sdb1. Но
это на крайний случай.
Убедились, что все в порядке? Можно и мусор в лице /media/DSFL/boot
удалить:
[root@xpoda DSFL]# rm -rf boot
Смотрите, не удалите /boot :)
4. Мы сделали это!!!
Вот и готова живая флешка. Перезагружайтесь, ставьте флешку
загрузочным устройством и наслаждайтесь Линуксом, который помещается
даже в самом тесном кармане.
5. Копирайты и прочая муть
(С) 2006 Archimed.
Все отзывы предложения по улучшению, исправлению ошибок вы можете
посылать мне на ящик, по мере возможности я постараюсь принять это к
сведению и выпустить более полное и не такое сумбурное HOWTO.
Этот документ является частью проекта Linux HOWTO.
Авторские права на документы Linux HOWTO принадлежат их авторам, если
явно не указано иное. Документы Linux HOWTO, а также их переводы,
могут быть воспроизведены и распространены полностью или частично на
любом носителе физическом или электронном, при условии сохранения этой
заметки об авторских правах на всех копиях. Коммерческое
распространение разрешается и поощряется; но, так или иначе, автор
текста и автор перевода желали бы знать о таких дистрибутивах.
Все переводы и производные работы, выполненные по документам Linux
HOWTO, должны сопровождаться этой заметкой об авторских правах. Это
делается в целях предотвращения случаев наложения дополнительных
ограничений на распространение документов HOWTO. Исключения могут
составить случаи получения специального разрешения у координатора
Linux HOWTO, с которым можно связаться по адресу приведенному ниже.
Мы бы хотели распространить эту информацию по всем возможным каналам.
Но при этом сохранить авторские права и быть уведомленными о всех
планах распространения HOWTO. Если у вас возникли вопросы, пожалуйста,
обратитесь к координатору проекта Linux HOWTO.
Приложение А. Как поменять загрузочное лого.
Но не закончены наши эксперименты над славным линуксом Damn Small... Если
вам не нравится логотип DSL, появляющийся при загрузке или просто
хочешь его сменить, читайте дальше.
Лого, которое выводит syslinux, хранится в файле logo.16 (на самом
деле, имя может быть любое, просто конфиг менять мне тоже лень :)
Сначала решите, изменять прежнее лого или сделать новое.
Если хочется исправить старое лого, то сначала придется перевести
его в ppm с помощью lss16toppm:
[archimed@xpoda DSFL]# lss16toppm < logo.16 > ~/logo_changed.ppm
Образуется logo.ppm, которое вполне переваривается GIMP'ом. Редактируйте
его. Но помните, что syslinux ограничивает размер рисунка
640x480 и 16-ю цветами.
После сохранения готового лого в формате ppm его нужно перевести в
lss16:
[archimed@xpoda ~]# lss16toppm < logo_changed.p > logo.16
Важно не забыть положить его в корень флешки.
За адрес trinux'а спасибо :) Изменения приниматься будут, если монтировать разделы на чтение/запись. Ну и не забывать отмонтировать. Отдельное спасибо администраторам, которые привели статью в божеский вид :) Ну а асп я сам не люблю за... да не знаю, просто не люблю. У меня SuSE сейчас.
PS. mail.xpd@gmail.com в качестве адреса обратной связи работает лучше :)
Народ.. я может быть совсем тормоз.. но чет я не понял - что и куда писать подобные строки:
[archimed@xpoda archimed]$ syslinux -help
Usage: syslinux [-sf] [-o offset] device