понедельник, 12 сентября 2016 г.

Мультизагрузочная USB-флэшка

Потребовалось сделать для себя.

Решений множество, большинство на Grub.
Например: GRUB всемогущий, или Делаем загрузочную флешку и Делаем загрузочную флэшку с помощью grub4dos

Попробовал - да, работает, но приходится играться с настройками меню.

В итоге воспользовался вот этим: YUMI – Multiboot USB Creator
Быстро, просто, удобно, проблем не было.

Под катом копия по Grub4Dos на память:
Для начала нам понадобится сам загрузчик. Последнюю его версию можно скачать здесь. В полученном архиве много разных файлов, но пугаться не стоит. Нам нужен лишь один файл grldr. Это и есть загрузчик. Теперь его надо установить на флэшку. Переходим по этой ссылке и качаем последнюю версию grubinst. Это специальная утилита предназначенная для установки grub4dos в MBR. Распаковываем полученный архив и запускаем приложение grubinst_gui.exe. В появившемся окне выбираем нашу флэшку и жмем кнопку Install.

Теперь кидаем в корень флэшки скачанный ранее файл grldr. В принципе, загрузочная флэшка уже готова, и можно попробовать с нее загрузиться, правда толку от этого будет мало, ведь на ней еще ничего нет (кроме загрузчика).
Для разминки добавим на нашу флэшку утилиты для проверки оперативной памяти и жесткого диска. Загрузчик grub4dos достаточно мощная вещь, и он позволяет выполнять загрузку прямо из iso образа. Для проверки памяти воспользуемся утилитой Memtest86+ загрузочный образ которой можно скачать здесь, а для проверки жесткого диска — утилитой Victoria. Загрузочный образ последней можно скачать тут. В корне флэшки создадим каталог grub4dos. В этом каталоге создадим директорию iso и скопируем туда полученные образы. В корне флэшки создадим файл menu.lst следующего содержания:
title Проверка оперативной памяти
map (hd0,0)/grub4dos/iso/mt410.iso (hd32)
map --hook
root (hd32)
chainloader (hd32)
boot

title Проверка жесткого диска
map (hd0,0)/grub4dos/iso/vcr35r.iso (hd32)
map --hook
root (hd32)
chainloader (hd32)
boot
Я здесь не буду пояснять, что делает каждая команда. В конце этой статьи есть ссылка на документацию, где все подробно расписано.
Пробуем загрузиться с флэшки. Что мы видим? Правильно. Вместо русских букв отображаются кракозябры. Давай исправим это маленькое недоразумение и, заодно, немного приукрасим наш загрузчик. Качаем отсюда готовую тему. Кидаем скаченный архив в папку grub4dos на флэшке. В начало файла menu.lst добавляем следующую строчку:

gfxmenu (hd0,0)/grub4dos/Elisha2.gz

Вновь загружаемся с флэшки. Теперь русские буквы отображаются верно, да и меню выглядит намного симпатичнее.
Выбираем проверку оперативной памяти. Все работает. Пробуем запустить утилиту для проверки жесткого диска. Вот незадача. Не хочет работать. Вылетает следующая ошибка (по крайней мере у меня так было):

Error 60: File for drive emulation must be in one contiguous disk area

Эта ошибка появляется потому что образ vcr35r.iso является фрагментированным. Для его дефрагментации воспользуемся утилитой wincontig. Это бесплатная утилитка не требующая установки. Скачать ее можно отсюда.

Дефрагментируем образ vcr35r.iso, загружаемся с флэшки и убеждаемся, что теперь все работает.
Аналогичным образом я добавил на флэшку программу для клонирования жестких дисков Norton Ghost 11, утилиту для сброса пароля администратора Active Password Changer, загрузочный диск Windows XP Live CD Mini, и программу для работы с жесткими дисками Acronis Disk Director Suite.
Вот еще один очень важный момент. На некоторых компьютерах работа с флэшкой будет происходить очень медленно. Для решение это проблемы есть такая штука, под названием PLoP драйвер, который позволит железу работать на скоростях usb2.0. Сейчас я расскажу, как установить этого зверя.
Качаем последнюю версию PLoP Boot Manager отсюда. Открываем полученный архив и копируем файл plpbt.bin в каталог grub4dos на флэшке. В файл menu.lst добавляем строчки
title Start PLoP boot manager
root (hd0,0)
kernel /grub4dos/plpbt.bin
После загрузки с флэшки выбираем соответствующий пункт меню, в появивщемся окне жмем usb. После этого флэшка будеть работать быстро.
Теперь добавим в меню пункты загрузки Windows XP и перезагрузки компьютера. Для этого в файл menu.lst нужно записать следующее:
title Найти и загрузить Windows NT/2K/XP
find --set-root --ignore-floppies --ignore-cd /ntldr
map () (hd0)
map (hd0) ()
map --rehook
find --set-root --ignore-floppies --ignore-cd /ntldr
chainloader /ntldr

title Перезагрузка компьютера
reboot
Следующим шагом добавим в меню консоль восстановления Windows XP. Скачать образ можно отсюда. Если попробовать запустить ее методом, описанном выше, ничего не получится, но к счастью существует другой способ сделать это. Качаем по этой ссылке образ дискеты с драйвером FiraDisk. Этот драйвер позволяет Windows работать с виртуальными дисками GRUB. Кидаем файл firadisk.IMA на флэшку, в папку grub4dos, а образ консоли восстановления в папку iso. В файл menu.lst добавляем следующий код:
title Консоль восстановления Windows XP
map --mem /grub4dos/firadisk.ima (fd0)
map --mem /grub4dos/iso/rc.iso (hd32)
map --hook
chainloader (hd32)
Теперь можно запустить консоль восстановления Windows XP. Работает это следующим образом. Сначала загружается драйвер FiraDisk, затем в оперативную память компьютера копируется файл rc.iso. Происходит эмуляция CD. Теперь Windows думает, что она обращается к CD диску, когда на самом деле, работа идет с RAM диском. Единственный минус, что в данном случае, размер оперативной памяти должен быть больше чем размер iso-образа. В случае с консолью восстановления это не критично, но если размер загружаемого образа достаточно велик на это стоит обращать внимание.
Аналогичным способом можно выполнить с флэшки установку Windows XP. Единственное, ее нужно будет разделить на два этапа. Первый этап точно такой же как с консолью восстановления. А на втором этапе, необходимо выполнить загрузку с жесткого диска, куда устанавливаем систему, но перед этим создать установочный RAM диск. В общем файл menu.lst будет выглядеть следующим образом:
title Установка Windows XP (этап 1)
map --mem /grub4dos/firadisk.ima (fd0)
map --mem /grub4dos/iso/XP_SP2.iso (hd32)
map --hook
chainloader (hd32)

title Установка Windows XP (этап 2)
map --mem /grub4dos/firadisk.ima (fd0)
map --mem /grub4dos/iso/XP_SP2.iso (hd32)
map --hook
find --set-root --ignore-floppies --ignore-cd /ntldr
map () (hd0)
map (hd0) ()
map --rehook
find --set-root --ignore-floppies --ignore-cd /ntldr
chainloader /ntldr
Еще один любопытный момент. В моем дистрибутиве Windows XP (в прочем, как и в образе консоли восстановления) при запуске появляется надпись, предлагающая нажать любую клавишу для загрузки с CD.

Press any key to boot from CD...

Лично у меня подобное сообщение вызывает дикое желание от него избавиться. К счастью, сделать это довольно просто. Для этого надо удалить файл BOOTFIX.BIN из каталога I386, при помощи, например, программы ISO Commander.

Вот, собственно, и все, о чем я хотел рассказать. На всякий случай, приведу окончательный файл menu.lst, который у меня получился.
gfxmenu (hd0,0)/grub4dos/Elisha2.gz

title Найти и загрузить Windows NT/2K/XP
find --set-root --ignore-floppies --ignore-cd /ntldr
map () (hd0)
map (hd0) ()
map --rehook
find --set-root --ignore-floppies --ignore-cd /ntldr
chainloader /ntldr

title Установка Windows XP (этап 1)
map --mem /grub4dos/firadisk.ima (fd0)
map --mem /grub4dos/iso/XP_SP2.iso (hd32)
map --hook
chainloader (hd32)

title Установка Windows XP (этап 2)
map --mem /grub4dos/firadisk.ima (fd0)
map --mem /grub4dos/iso/XP_SP2.iso (hd32)
map --hook
find --set-root --ignore-floppies --ignore-cd /ntldr
map () (hd0)
map (hd0) ()
map --rehook
find --set-root --ignore-floppies --ignore-cd /ntldr
chainloader /ntldr

title Windows XP Live CD
map (hd0,0)/grub4dos/iso/Windows_XP_Live_CD_Mini.iso (hd32)
map --hook
root (hd32)
chainloader (hd32)
boot

title Консоль восстановления Windows XP
map --mem /grub4dos/firadisk.ima (fd0)
map --mem /grub4dos/iso/rc.iso (hd32)
map --hook
chainloader (hd32)

title Сброс пароля администратора
map (hd0,0)/grub4dos/iso/Active_Password_Changer.iso (hd32)
map --hook
root (hd32)
chainloader (hd32)
boot

title Проверка оперативной памяти
map (hd0,0)/grub4dos/iso/mt410.iso (hd32)
map --hook
root (hd32)
chainloader (hd32)
boot

title Проверка жесткого диска
map (hd0,0)/grub4dos/iso/vcr35r.iso (hd32)
map --hook
root (hd32)
chainloader (hd32)
boot

title Norton Ghost 11
map (hd0,0)/grub4dos/iso/NortonGhost11.iso (hd32)
map --hook
root (hd32)
chainloader (hd32)
boot

title Acronis Disk Director Suite 10.0.2288
map (hd0,0)/grub4dos/iso/AcronisDDS-10.0.2288.iso (hd32)
map --hook
root (hd32)
chainloader (hd32)
boot

title Start PLoP boot manager
root (hd0,0)
kernel /grub4dos/plpbt.bin

title Перезагрузка компьютера
reboot
Ссылки по теме:
Русская документация по Grub4dos
GFX-Boot темы для Grub4dos

Комментариев нет: