Есть задача: поставить Linux на флэшку. Зачем? Да просто так. Чтобы он там
был. А если серьезно, то это очень полезная вещь. Всегда под рукой полноценная
ОС с очень неплохим набором софта, с максимальными привилегиями (это если вас
ущемляют в правах амины). А это значит где угодно можно посмотреть кино,
послушать музыку, выйти в интернет.
Средства
Для того, чтобы поставить Linux на флэшку вам понадобится :
- Собственно комп с возможностью запуска с USB носителя (будь то USB-HDD,
USB-ZIP, USB-и т.д). Так же желательно узнать, умеет ли ваш
BIOS грузиться с флэшки, если там не установлена
файловая система FAT. - Подключение к интернету.
- Флэшка, размерностью не менее 64 метра (такие сейчас даже трудно
купить). - Linux (мой выбор пал на DSL -
Damn Small Linux,
кстати на сайте можно купить и flash'ку с предустановленным на нее линуксом). - Эмулятор qemu (лучше
все тестировать на нем).
Для начала с официального сайта скачаем Damn Small Linux. Качать лучше самый
последний стабильный релиз (ISO образ, запускаемый с CDROM).
Затем скачаем эмулятор (мною использовалась версия 0.8.0 - тут есть поддержка
usb устройств).
Устанавливаем его. Данный эмулятор очень хорош тем, что не транслирует команды
процессору, а эмулирует архитектуру целевой машины. Также он снабжен
исчерпывающей документацией по установке и настройке.
Вставляем флэшку в usb порт. Теперь нам надо узнать как она подключилась, чтобы
в последствие сказать qemu о том, где искать usb-устройство.
ls /proc/bus/usb
должны получить что то типа :
001/ 002/ devices
Для того, чтобы получить полный доступ к usb-устройствам, необходимо быть
root'ом. Нам понадобиться запустить qemu в режиме монитора для определения
списка подключенных usb-устройств. Делается это так:
qemu -m 256 -cdrom /home/lamo/installs/system/distr/dsl-1.0.1.iso
-boot d -monitor stdio
Мы указали stdio в качестве монитора (по сути консоли общения) - используем
стандартный ввод/вывод.
/home/lamo/installs/system/distr/dsl-1.0.1.iso - путь к iso-образу
устанавливаемого линукса.
-m 256 говорим, что на виртуальной машине будет 256 МБ ОЗУ (все зависит от вашей
системы).
-boot -d опция говорит о том, что надо грузиться с cdrom.
(qemu) info usbhost
Вы должны получить что - то вроде этого:
Device 2.1, speed 480 Mb/s
Hub: USB device 0000:0000, EHCI Host Controller
Device 2.3, speed 480 Mb/s
Class 00: USB device 0ea0:2168, Flash Disk
Device 1.1, speed 12 Mb/s
Hub: USB device 0000:0000, OHCI Host Controller
Затем мы добавляем эмулятору наше устройство. В гостевой системе должно
появиться сообщение о том, что добавлено новое устройство. В главной же оно
может отключиться. Запускаем эмулятор:
qemu -m 256 -cdrom /home/lamo/installs/system/distr/dsl-1.0.1.iso
-boot d -usb -usbdevice host:0ea0:2168 -monitor stdio
Опции:
-usb говорит эмулятору о том, что нужно включить поддержку usb.
-usbdevice host:0ea0:2168 говорит эмулятору, где находится флэшка.
Первый этап выполнен. Вы получили запущенный с LiveCD damn small linux.
Теперь о том, как устанавливать. Мой компьютер не поддерживает загрузку
непосредственно с флэшки (в BIOS-е нет девайса для загрузки называемого
usb-flash), поэтому нам необходимо изменить геометрию флэшки (если хотите, то
можно с помощь циркуля и линейки:)) для того, чтобы наше устройство для
компьютера было как usb-Zip или usb-Hdd.
Есть два пути.
- В google.com можно найти много всякого софта.
- Средствами, которые предоставляет DSL.
Затем нам необходимо скачать утилиту для установки:
http://distro.ibiblio.org/pub/linux/distributions/damnsmall/archive/frugal_usb.tar.gz
Распаковываем архив, и запускаем скрипт для установки:
tar -C / -zxf frugal_usb.tar.gz
sudo ./frugal_usb.sh
Отвечаем на некоторые вопросы, и форматируется флэшка, перезагружаем комп -
готово.