Ключевые слова:livecd, flash, install, grub, (найти похожие документы)
From: Минаев Сергей aka Brainsburn <i@zenux.ru.>
Date: Mon, 6 Nov 2010 17:02:14 +0000 (UTC)
Subject: Установка Linux на флешку. Создание загрузочной флешки.
Оригинал: http://zenux.ru/articles/41/
На флешку можно записать загрузочный образ дистрибутива Linux. Это
можно сделать руками, а можно с помощью вспомогательных утилит, таких
как unetbootin. Но сейчас разговор немного о другом - о том, как
установить линукс на флеш накопитель для дальнейшего использования в
роли полноценной системы на переносном hdd.
Такой вариант лучше live-системы хотя бы потому, что такую систему
можно, как обычно, настраивать и изменять, ставить новые пакеты и т.д.
Live-систему тоже можно изменять, но там сложнее.
Первый вопрос - как установить GRUB на флешку? Ведь чтобы загрузиться с
флешки, надо, чтобы она была загрузочной. Ответ прост: так же, как и на
обычный жесткий диск! Правда, у меня на этом моменте возникла одна
проблема. Сейчас расскажу подробнее.
В моем домашнем компьютере два жестких диска (/dev/sda, /dev/sdb).
Флешка, соответственно, - /dev/sdc. Однако, GRUB не захотел
устанавливаться на нее:
# grub --version
grub (GNU GRUB 0.97)
grub> root (hd0,0)
Filesystem type is ext2fs, partition type 0x83
grub> root (hd1,0)
Filesystem type is ext2fs, partition type 0x83
grub> root (hd2,0)
Error 21: Selected disk does not exist
Т.к. граб видит диски не как sda1 или sdb3, а как (hd0,0) и (hd1,2), то
флешка в данном случае должна быть (hd2,0). Однако, GRUB ее не увидел,
хотя если при включении компьютера, при появлении GRUB-а перейти в
консоль по "С", то он нормально видит флешку как (hd2,0). Чем это
обусловлено, не знаю.
Решение я нашел такое:
Создаем файловую систему (лучше reiserfs. подробнее - ниже) на флешке,
монтируем ее куда-нибудь, например в /mnt/flash и создаем файл
/mnt/flash/boot/grub/device.map с таким содержимым:
(hd0) /dev/sdc
Вместо /dev/sdc впишите устройство флешки, как оно видится в вашей
системе.
Почему именно reiserfs? Потому-что если у вас флешка не большого
размера и вы отформатируете ее в ext2, то вам может не хватить инодов и
увеличить их кол-во не получится. В reiserfs такой проблемы не будет.
После этого устанавливаем загрузчик на флешку:
# grub install --root-directory=/mnt/flash --no-floppy '(hd0)'
Чтобы убедиться, что граб действительно установился, посмотрите в
каталог /mnt/flash/boot/grub.
Все! Самый важный этап пройден - ваша флешка УЖЕ загрузочная, т.е. если
вы перезагрузите компьютер, выберите загрузку с USB-HDD, то увидите
консоль граба. Осталась сплошная банальщина (за небольшим исключением)
- установить Linux на флешку.
Что теперь нужно: установить на флешку сам линукс (я буду объяснять на
примере Gentoo Linux), не забыть установить ядро, пароль для рута,
чутка подправить /etc/fstab и создать конфиг для GRUB.
Процесс установки очень прост и понятен. Напомню, что флешка у нас
примонтирована в /mnt/flash/. Скачаем туда stage3 и portage. Найти их
можно на http://distfiles.gentoo.org .
# ls /mnt/flash
portage-latest.tar.lzma
stage3-i686-20100622.tar.bz2
Распаковка архивов:
# tar xafv stage3-i686-20100622.tar.bz2
# tar xafv portage-latest.tar.lzma -C /mnt/flash/usr
Chroot:
# chroot /mnt/flash /bin/bash
Все, вы в новой Gentoo. Можете ее настраивать и устанавливать пакеты.
Хотя, лучше конечно, сперва задать пасс руту командой passwd и
установить ядро:
# emerge -av gentoo-sources
Ах да, не забудьте перед этим прописать DNS сервер, чтобы не было
проблем с разрешением имен. Я использую паблик 8.8.8.8, т.к. днс моего
полосатого провайдера постоянно дохнет:
# echo "nameserver 8.8.8.8" > /etc/resolv.conf
После установки ядра, его исходные коды будут лежать где-то в
/usr/src/linux*. Осталось его сконфигурировать и собрать:
# make menuconfig
# make && make modules_install
Как конфигурить ядро, я рассказывать не буду, т.к. это тема совершенно
другой статьи и к флешкам не относится. Скажу лишь, что никаких особых
моментов нет, я даже initram не использую, конфиг у меня практически
стандартный, разве что файловую систему reiserfs (ведь флешка
отформатирована в ней) надо вкомпилить в ядро ("<*>", но не "". Это
надо, если вы тоже не используете initram). Однако, если вы планируете
подключать флешку к различным компьютерам, позаботьтесь о поддержке
большого кол-ва оборудования в ядре.
После сборки копируем свежее ядро в /boot
# cp arch/x86/boot/bzImage /boot/kernel
Теперь создадим menu.lst для GRUB. У меня он выглядит так:
# cat /boot/grub/menu.lst
title USB-Linux
root (hd0,0)
kernel /boot/kernel rootdelay=10 root=/dev/sdc1 rw
Одна важная деталь - rootdelay. Без rootdelay=10 вы можете получить при
загрузке кернел паник с ошибкой про root device и будете думать, что
ядро просто не видит вашу флешку, попытаетесь найти для нее дрова, но
все будет тщетно. Параметр root=/dev/sdc1 тоже желательно не опускать,
/dev/sdc1 - корневой раздел, не "/boot", а "/". Хотя, на флешке
создавать отдельный раздел под /boot или что-либо еще, просто смешно :)
Такс... Ядро установили, DNS-сервер прописали, пароль руту задали, что
еще? Ах да, не забудьте про /etc/fstab. Если вы тоже устанавливаете
Gentoo, закомментируйте там строки, начинающиеся на /dev/BOOT,
/dev/SWAP и т.д. А в строке, начинающейся на /dev/ROOT, измените это
значение на /dev/sdc1.и укажите файловую систему - reiserfs.
Теперь, вроде, ничего не забыл. Хотя, я и не ставил целью подробное
описание процесса установки линукс в chroot-е. В любом случае, теперь
вы установили Linux на флешку и можете перезагрузить компьютер и
загрузиться с флешки =) Если у вас Gentoo, после приведения системы к
нужному виду, не забудьте удалить каталог /usr/src/linux (он занимает
около 600МБ) и /usr/portage (портежи весят примерно столько же) для
экономии места.
Если я упустил какой-то момент или у вас возникли проблемы, сообщите об
этом в комментариях. Спасибо!
таких боянистых ненужных мануалов - вагон, для этого давно есть unetbootin, которое работает под всеми осями, в линухах есть usb-creator-gtk
давно пора заняться "виртуалкой на флешке", чтобы в несколько определенных каталогов тупо закинуть кучу исошников, и в меню сами пункты загрузки добавились - от солярки до вин 98 (образно, но все же)
Очень полезная статья! Мне как раз нужно поставить систему на Compact Flash, которая будет винтом одноплатного промышленного компа. Причем даже без монитора с видеокартой - система в процессе инсталляции на флешку на другом компе должна быть сконфигурирована на доступ к консоли по сети или RS232.
Есть самый простой способ создать автозагрузочную флешку Windows XP - это скачать и розпаковать эту программу http://depositfiles.com/files/mzccjntvv после розпаковки запускаем и делаем всего четыри нажатия мышки которые програма сама подскажет. PS: Используйте только стандартные дистрибютивы Windows, так-как сборки такие как например "Zver" установяться не коректно.