Сайт | Скачать | Видео | Wiki

Автор Тема: [Мультизагрузка мини-линухов под Windows]  (Прочитано 10792 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Abnormal Terminate(R)

  • Постоялец
  • ***
  • Сообщений: 102
  • Репутация: +6/-0
  • Автор темы
Мультизагрузка мини-линухов под Windows*
//Multi-booting Mini Linux under Windows*//

* Это гарантированно работает под Win2k .. XP - проверено; под "младшими" Окнами - тоже должно (см. скажем здесь: http://forum.puppyrus.org/index.php/topic,545.msg6638.html#msg6638), а вот под Windows 7 / Vista - сомнительно без существенной переработки стадии подключения загрузчика Grub4dos (говорят, пригоден иной путь: используется софтина EasyBCD - см.: http://forum.puppyrus.org/index.php/topic,916.0.html), но последнее мной пока не проверено [добавление #1 к тексту статьи].

I. Введение в тему

Настоящий Профессионал, Мастер, обустройство своего места работы, пусть - "виртуального", начинает с удобной инструментальной среды. Программист, разработчик, бета-тестер (включая и майнтайнеров) - не исключение. Поэтому данная статья-рекомендация и, своего рода, обмен опытом подпадает под вышеуказанное определение. Она наиболее полезна не только и не столько "простым пользователям", но скорее именно профи. Исходя из этого она писалась, это же следует иметь в виду и читателю...
Второе: огромное "сенькс" автору статьи "Как установить PuppyRus под Windows XP?" г-ну Азамату (http://www.puppyrus.org/articles/HowTo/HOW-TO-Kak-ustanovit-PuppyRus-pod-XP.html) - спасибо как за "наводку", так и за сугубо специальную и неочевидную информацию, пригодившуюся мне как крепкая основа по основной теме данной статьи, но одновременно и за открытие для меня лично прекрасного мира мини-линухов!
Третье: в данной статье рассматривается некое универсальное "расширение" уже описанного им ранее способа. Это приёмы, позволяющие таким вот "хитрым", но в сущности простым способом установить и попеременно "юзать" линух, и не одну "копию" (версию) мини-линуха (скажем, PuppyRus), но даже несколько его версий или "клонов" сразу. При том, загружаясь не с LiveCD, без заморочек с жестким диском и конечно без переустановок ОСей.
Набор этих ОСей довольно основателен, включая оригинальные дистросы Puppy Linux 3.хх и 4.хх версий, его русские клоны - см. на сайте http://puppylinux.org/ либо "экзотические" варианты навроде Аскетика (имеется там же) или скажем можно попробовать на каком-то компьютере старенький дистрос Breeezy LINUX: http://minipc.org/ (но последний пока мною не отлажен для запуска в этих условиях).
Зачем это нужно? Для указанных профи иногда важно и подобное "изобилие" вариантов загрузки, версий и клонов линухов. Это бывает крайне удобно вообще, подчас - необходимо для удобства тестирования, сравнения, проверок совместимости пакетов и т.п. проф-деятельности, притом - работая с ними и не отвлекаясь на переустановки ОСей либо "прожиг" LiveCD (и не нуждаясь в двух и более компьютерах, установленных рядышком).
Перезагрузка этих ОСей здесь - в пределах одной минуты!..
В иных случаях это же может быть для кого-то просто полезно либо познавательно. Решение же подобной задачи так сказать "малой кровью" - это и есть сугубо профессиональное и потому изящное решение.

ЕСЛИ ВАС это заинтересовало, прочтите ПОЛНОСТЬЮ статью здесь:
http://abnormalter.wordpress.com/2009/04/01/multiboot/
Если вас интересует краткое "хавту", см. его ниже в этой теме.
« Последнее редактирование: 05 Май 2009, 18:16:44 от Zloy_T »

Оффлайн Abnormal Terminate(R)

  • Постоялец
  • ***
  • Сообщений: 102
  • Репутация: +6/-0
  • Автор темы
Re: Мультизагрузка мини-линухов под Windows
« Ответ #1 : 01 Апрель 2009, 21:33:23 »
II. HowTo

Шаг 1. Скачиваем нужные нам дистрибутивы (лучше с официальных сайтов):
1.1. дистрибутив Grub4dos (на февраль-март 2009 - версии grub4dos-0.4.4) например с сайта http://nufans.net/grub4dos/ (это братья-китайцы :)...) или версию 0.4.3 с sourceforge (прямая ссылка: http://sourceforge.net/projects/grub4dos/files/GRUB4DOS/grub4dos%200.4.3/ grub4dos-0.4.3.zip). Разумеется, Grub4dos можно найти и не только там!..
1.2. все нужные именно ВАМ дистрибутивы мини-линухов.

К сведению. Лично я, как вы поймёте далее, экспериментировал (на нескольких доступных мне машинах, и это лишь на сегодня), сразу с таким нехилым набором: Puppy Rus бета "Siberia 0.1" и стабильный "PuppyRus 1.20U Lite-M" + "PuppyRus 4.12" (это тоже бета) + "Ascetic 0.7 b2r" (т.е. русская бета 2 крошечного "Аскетика") - все их можно взять на официальном русском сайте: http://www.puppyrus.org/ см. в репозитарии: директория /pub - плюс к тому, пробуя ОСи "не наши" :) - такие версии и клоны, как: "Puppy 3.01" и "Puppy 4.12" (их "фэйс" на англ. яз.) - взять с http://puppylinux.org/
Также я пробовал (по этой схеме пока не вполне успешно) установить старую "Breeezy 2.13" (с http://minipc.org/) и DSL (Damn Small Linux - http://www.damnsmalllinux.org/) - всё это с разной степенью приятности юзанья, а также успеха или неуспеха в каждом конкретном случае (на каком-то компьютере)...

Шаг 2. Устанавливаем Grub4dos - все файлы из архива просто распаковываем в предварительно созданный каталог c:\boot\grub
Сразу после этого имеющийся там файл grldr следует переместить в корень системного диска С.

Шаг 3. Далее вы должны добавить grub в ваш основной бут-файл Окон C:\boot.ini (Как это правильно сделать? - вы должны знать это сами: я ж пишу это отнюдь не для "чайников", и поэтому разжовывать не стану "из прынципа"!..) А конкретно говоря, там в конец прописывается одна строчка:

Код
C:\grldr=Start GRUB :: Mini Linux's SET : Start Chooser for my Linux!

(Впрочем, обязательной и неизменной её часть является лишь это: "C:\grldr=", а вот прописанное дальше знака "=", - это ваш индивидуальный выбор и возможное "творчество"; помните только, что на этой стадии загрузки системы - как и впрочем и в Grub4dos - поддержана шрифтами только латиница.)

Шаг 4. В корне диска С: создаём несколько именных папок для вашего набора мини-линухов, - именно столько, сколько вы решили попробовать их "за один раз" но, возможно, станете их и далее юзать. Скажем, я создал такие папки (они и прописаны в моём конфигурационном файле - см. ниже): puppyrus, puppyrus412, puppyrus12r, puppy3, puppy4, siberia, siberia-test, breeezy, ascetic07b2r, dsl4.4.1. Часть из них - временные варианты или для экспериментов. Кстати, в загузочном меню всегда можно "ОТКЛЮЧИТЬ" ненужные (быть может, временно) строчки, просто поставив знак # в начале каждой из строк данной секции.
Можно даже залить и юзать две и более "копии" одной ОС - скажем, над одной "издеваться" для тестирования (скажем у меня: siberia-test), а в другой - без проблем и риска для своих данных повседневно работать.

NB. Помните: под Линухом имена файлов и директорий - регистро-чувствительные! (Потому что подчиняются стандарту Posix, в отличие от DOS/Windows.) Хотя Grub4dos возможно не использует еще на стадии загрузки "регистро-чувствительность" к именам (лишь возможно: я не проверял специально), однако лучше и надежнее учитывать этот фактор в любых конфигурационных ф-лах и писать их ТОЧНО ТАК, как вы прописали имена файлов и/или папок при их создании или копировании. Второе: WinRAR часто не сохраняет "регистро-чувствительность": например, лично я столкнулся с таким случаем, когда из дистроса (конкретно, ф-л "puppy-4.1.2-k2.6.25.16-seamonkey.iso") все имеющиеся там ф-лы с именами в стандарте 8.3 MS-DOS извлеклись WinRAR'ом как имена "в верхнем регистре", а это значит, что под Windows они автоматически трансформировалось в "слова", написанные как бы "с заглавной буквы", то есть, скажем архивное имя VMLINUZ стало в файловой системе Окон - Vmlinuz и т.д. Поэтому нужно обратить на это внимние и при нужде привести ВРУЧНУЮ (после распаковки) всё к нижнему регистру (т.е. поправить на vmlinuz и т.д.) и...  тогда вы станете "спать спокойно" - не рискуя поймать багов там, где совсем не ждали! :)

Шаг 5. В каждую из этих папочек распаковываем вручную основные файлы дистрибутивов мини-линухов данного класса* - набор их типичен, а имена стереотипны; скажем дистрос "Паппируса" содержит такие нужные нам здесь файлы:
Код
initrd.gz
pup_301.sfs //или что-то похожее на pup_ххх.sfs, зависит от версии!
vmlinuz
zdrv_301.sfs
- вот их и распаковываем туда.
(Заметьте: из загруженного с сайта образа .iso берем ф-лы просто WinRAR'ом.)

*Примечания:
5.1. имейте в виду, что дистросы Siberia, Breeezy и Puppy 4.12 (список не исчерпывающий!) НЕ СОДЕРЖАТ файла zdrv_301.sfs - последний является РАСШИРЕНИЕМ (подгружаемым динамически) и характеризует индивидуальный набор расширений каждого дистрибутива линухов этого класса; конкретно, он есть в дистросе PuppyRus-1.20U-Lite-M (и -R);
5.2. в некоторых клонах, скажем в дистросе Breeezy (breeezy_Dec31_updated_Feb01_2008.zip) основной его файл (pup_213.sfs) следует извлечь из архива в корень диска С: это особенность загрузчика у этой уже устаревшей версии ОСи - он "не понимает" местонахождение файла в "домашней" папке, впрочем, как и прочие некоторые иные, здесь не рассмотренные клоны мини-линухов;
5.3. вполне возможно, что сходным образом можно загружать из-под Grub4dos и иные "живые" ОС, включая и иные мини-линухи - навроде DSL (Damn Small Linux - http://www.damnsmalllinux.org/) и, возможно, некоторые другие. Но Автор на момент написания статьи еще не до конца разобрал этот вопрос, тем более что иные дистросы "не хотят" запускаться в том случае, когда на компьютере имеется лишь файловая система Окон (fat, ntfs), но нет никакой файловой системы Линуха (ext2, ext3, swap...) - нет ни на одном из разделов диска или дисков...
(Скажем, Автор неоднократно юзал "Малого Чёрта" (DSL) - в основном в технологических целях и лишь в "классическом" виде LiveCD загружаемого линуха. Понимая, что он из одного "класса" с основными здесь рассматриваемыми, хотя и другого назначения и основного состава ПО, включил-таки и его в состав своей личной перспективной программы экспериментов. ;) Однако тот несколько видоизмененный способ попытки подключения Breeezy показывает и возможный иной путь, и общее направление поиска путей приспособления каких-либо иных мини-ОСей);
5.4. все дистросы указанных ОСей имеют в себе 4-5 неиспользуемых нами файлов, типично это: 8x16.psf, boot.bat, boot.msg, isolinux.bin, isolinux.cfg - именно ИХ нам НЕ НУЖНО копировать в папочки наших линухов, что мы создавали в корне диска С:!

Шаг 6. Перезаписываем имеющийся в Grub4dos файл menu.lst (сохранив на вский случай оригинал как menu.lst.bak - он лежит у нас в папке  C:\boot\grub\), ЗАМЕНИВ его таким содержимым (конечно, это МОЙ пример и моя надобность - у вас может быть свой, написанный "по образу и подобию"):

Код
# This is a sample menu.lst file. You should make some changes to it.
# The old install method of booting via the stage-files has been removed.
# Please install GRLDR boot strap code to MBR with the bootlace.com
# utility under DOS/Win9x or Linux.

color black/cyan yellow/cyan
timeout 10
default /default

title Start Siberia 0.1.42 eeePC :: Frugal install: http://puppyrus.org/
rootnoverify (hd0,0)
kernel   /siberia/vmlinuz psubdir=siberia
initrd   /siberia/initrd.gz

title Start Siberia (TEST) eeePC :: Frugal install: http://puppyrus.org/
rootnoverify (hd0,0)
kernel   /siberia-test/vmlinuz psubdir=siberia-test
initrd   /siberia-test/initrd.gz

title Start PuppyRUS 1.20U LiteM :: Frugal install: http://puppyrus.org/
rootnoverify (hd0,0)
kernel   /puppyrus/vmlinuz psubdir=puppyrus
initrd   /puppyrus/initrd.gz

#title Start PuppyRUS 1.20 Retro :: Frugal install: http://puppyrus.org/
#rootnoverify (hd0,0)
#kernel   /puppyrus12r/vmlinuz psubdir=puppyrus12r
#initrd   /puppyrus12r/initrd.gz

title Start PuppyRUS 4.12 b :: Frugal install: http://puppyrus.org/pub/
rootnoverify (hd0,0)
kernel   /puppyrus412/vmlinuz psubdir=puppyrus412
initrd   /puppyrus412/initrd.gz

title Start Puppy Linux 4.12 :: Frugal install: http://puppylinux.org/
rootnoverify (hd0,0)
kernel   /puppy4/vmlinuz psubdir=puppy4
initrd   /puppy4/initrd.gz

#title Start Ascetic 0.7 b2 Rus :: Frugal install: http://puppyrus.org/
#rootnoverify (hd0,0)
#kernel   /ascetic07b2r/vmlinuz psubdir=ascetic07b2r
#initrd   /ascetic07b2r/initrd.gz

#title Start Puppy Linux 3.01 :: Frugal install: http://puppylinux.org/
#rootnoverify (hd0,0)
#kernel   /puppy3/vmlinuz psubdir=puppy3
#initrd   /puppy3/initrd.gz

#title Start Breeezy 2.13 (retro) :: Frugal install: http://minipc.org/
#rootnoverify (hd0,0)
#kernel   /breeezy/vmlinuz psubdir=breeezy
#initrd   /breeezy/initrd.gz

#title Start Damn Small Linux 4.4.1 (http://www.damnsmalllinux.org/)
#rootnoverify (hd0,0)
#kernel   /dsl4.4.1/linux24 psubdir=dsl4.4.1
#initrd    /dsl4.4.1/minirt24.gz

title Find and load NTLDR of Windows NT/2K/XP
fallback 1
find --set-root /ntldr
chainloader /ntldr
savedefault --wait=2

title Find and load CMLDR of Windows NT/2K/XP
fallback 2
find --set-root /cmldr
chainloader /cmldr
savedefault --wait=2

title Find and load IO.SYS of Windows 9x/Me
fallback 3
find --set-root /io.sys
chainloader /io.sys
savedefault --wait=2

title Find and boot Linux with menu.lst already installed
fallback 5
find --set-root /sbin/init
savedefault --wait=2
configfile /boot/grub/menu.lst

title Break to commandline
savedefault --wait=2
commandline

title Start with a floppy (fd0)
chainloader (fd0)+1
rootnoverify (fd0)
savedefault --wait=2

title Back to DOS
savedefault --wait=2
quit

title Reboot
savedefault --wait=2
reboot

title Halt
savedefault --wait=2
halt

(За образец взят приложенный к Grub4dos одноимённый файл, несколько сокращенный согласно личным надобностям и дополненный несколькими секциями, описывающими набор ОСей, нужных лично мне и подключенных по "рецепту" Азамата. Первой секцией в нём стОит включить ту вашу ОС, которая должна стартовать дефолтно.)

Вуаля! Мы создали в 6 шагов свою собственную МУЛЬТИЗАГРУЗОЧНУЮ систему. На это ушло (не считая времени скачивания дистосов) всего 5-10 минут (а вот описывал и документировал я для вас этот процесс в десятки раз большее время).

Теперь нам осталось перезагрузиться и испытать всё!

Старт происходит в два этапа:
1. Старт Оконного загрузчика - там вам нужно выбрать:
Start GRUB :: Mini Linux's SET : Start Chooser for my Linux!
(Или что вы там сами прописали.)
2. Старт уже самого GRUB - там выбираем нужную нам в данный момент копию (версию) мини-линуха.

Итак, успехов и НАСЛАЖДЕНИЯ желаю я вам, которое ДОЛЖНО прийти от общения с чудесными созданиями человеческого гения - мини-линухами - притом, обязательно "хорошими и разными"!..

ВНИМАНИЕ! Для тех, кто впервые сталкивается с подобными ОСями либо с подобным способом их загрузки, советую прочесть :
Часть III. Примечания и пояснения
http://abnormalter.wordpress.com/2009/04/01/multiboot/#3

Успехов!

Abnormal Terminate, написано вчерне 20-23 марта 2009 г.
Редакция для форума ПаппиРуса от 01.04.2009 г.

Оффлайн Zloy_T

  • Почетный участник
  • Старожил
  • *
  • Сообщений: 326
  • Репутация: +74/-2
Re: Мультизагрузка мини-линухов под Windows
« Ответ #2 : 03 Апрель 2009, 19:34:14 »
* Это гарантированно работает под Win2k .. XP ..., а вот под Windows 7 / Vista - сомнительно без существенной переработки стадии подключения загрузчика Grub4dos
кстати щас в конфиге обнаружил такую запись:

Код
title Start Vista Load bootmgr From HD-0 Part-0
root (hd0,0)
chainloader (hd0,0)/bootmgr
так что возможно и под вистой прокатит. Если флешку до ума доведу, проверю.