среда, 22 июня 2011 г.

Создаем многоцелевую загрузочную флешку



Нарисовалась тут задача перенести настроенную WinXP со старого компьютера на новый, у которого не было дисководов для оптических дисков . Можно было найти какой-нибудь Ghost, Acronis , но хотелось иметь решение на основе Open Source, плюс лечить компьютеры под Win от различных видов заразы, которую ни касперский ни докторвеб брать не могут, плюс менеджер разделов, плюс какой-нибудь легковесный линукс. Итак, приступаем.
Есть замечательный проект Clonezilla . Заходим на сайт, качаем последнюю версию продукта в zip формате. Распаковываем содержимое на чистую флешку в корень. Теперь надо сделать флешку загрузочной, установив syslinux. В консоли переходим в каталог utils/linux и выполняем скрипт makeboot.sh от имени суперпользователя:
cd /media/flash/utils/linux
sudo ./makeboot.sh /dev/sdb1
Замена ghost-у, Acronis-у готова. Может не так красиво, но зато законно и бесплатно.


Двигаемся дальше. Надо бы добавить антивирус. Идем на сайт компании AVG и ищем антивирусный диск под линукс также в zip формате(где-то здесь). Качаем , распаковываем на нашу флешку в каталог AVG. Файл arl_rootfs.ext2 из каталога AVG переносим в корень флешки. Берем кусок из конфигурационного файла AVG/syslinux.cfg
label arl
menu label AVG Rescue CD
kernel /AVG/vmlinuz
append max_loop=255 vga=791 initrd=/AVG/initrd.lzm init=/AVG/linuxrc


label nofb
menu label AVG Rescue CD with Disabled Framebuffer
kernel /AVG/vmlinuz
append max_loop=255 video=vesafb:off initrd=/AVG/initrd.lzm init=/AVG/linuxrc


label vgask
menu label AVG Rescue CD with Resolution Selection
kernel /AVG/vmlinuz
append max_loop=255 initrd=/AVG/initrd.lzm init=/AVG/linuxrc vga=ask
и добавляем в syslinux/syslinux.cfg, подправив пути к файлам vmlinuz, initrd.lzm, linuxrc


можем добавить еще один замечательный антивирус от компании AVIRA. Идем к ним на сайт, качаем rescue_system-common-en.iso. Распаковываем содержимое в корень флешки. Файлы isolinux*.* нам не нужны, можем их убрать, только из конфигурационного скопируем строки запуска и вставим их в syslinux/syslinux.cfg немного подправив:


label avira
menu label AVIRA
kernel /vmlinuz
append nofb initrd=/initrd.gz ramdisk_size=108178 root=/dev/ram0 rw console=/dev/vc/4


label avira vga_ask
menu label AVIRA vga ask
kernel /vmlinuz
append vga=ask initrd=/initrd.gz ramdisk_size=108178 root=/dev/ram0 rw console=/dev/vc/4


Возможно, понадобится поставить слеш перед именем vmlinuz и initrd.gz .


Добавим на флешку какой-нибудь миниатюрный дистрибутив линукса. Например puppy. Я взял сборку xlupuru5.10.iso Содержимое распаковал в каталог PUPPY на флешке. В syslinux/syslinux.cfg добавил такие строки :
label Xlupurus
menu label Xlupurus5.10
kernel /PUPPY/vmlinuz root=/dev/ram0 initrd=/PUPPY/initrd.gz PMEDIA=usbflash


И для любителей Acronis-а можно добавить :
label acronis
menu label Acronis true image
kernel /syslinux/memdisk
initrd acronisti10ru.iso
append iso raw
и соответственно положить в корень флешки iso-файл акрониса.