LINUX.ORG.RU

Запуск альтернативной ОС с логического раздела, при помощи Grub


0

0

Собственно, Уважаемые прошу подскажите возможен ли сабж?

На данный момент

daldon@daldon-desktop:/dev$ ls |grep sdb sdb sdb1 sdb2 sdb5 sdb6 sdb7

На данный момент sdb1 -- Microsoft Windows XP sdb2 -- Exstented sdb5 -- /home sdb6 -- swap sdb7 -- Ubuntu Linux

Прошу не ругать за такую вот разметку не очень удачную, но тут дело в том, что когда это я делал, даже по сути не я а установщик Ubuntu 7.04 я ничего не понимал особо, что происходит, а теперь вот приходиться думать головой чтобы выкрутиться из ситуации, в общем есть желание от sdb5 взять место и установить туда Windows Vista.

Я пробывал различные способы в виртуальной машине.

Создал виртуальный hdd установил Grub тупо переместил Vista на последний раздел. Я знаю, что она в MBR хранит UUID и так далее, я прочитал МНОГО докуметации чтобы понять и делать всё осмысленно.

В общем имею Grub error 13

Вопрос такой -- возможно ли загрузить Vista с ЛОГИЧЕСКОГО неактивного раздела при помощи GRUB? На данный момент я делаю chainloader +1 но у меня есть очень стойкое подозрение, что eror 13 как раз и получаеться из-за того что НЕВОЗМОЖНО присвоить разделу находящемуся в расширенном разделе активность, нет, почему не возможно по сути понятно НО. Вопрос, что можно сделать? Как сделать чтобы Windows Vista запускалась с логического раздела? Точнее несколько по другому задам вопрос - "Как сделать чтобы Grub мог присвоить активность логическому разделу, для запуска этой сраной винды?". Буду рад любому хоть сколько-нибудь толковому ответу.

P.S. саму Windows я сначало планирую поставить на другой жёсткий диск в активный раздел, а затем с помощью образа развернуть её уже на логическом разделе. P.P.S. Передвигать разделы чтобы создать ещё один основной не хочеться. Этот способ понятен и очевиден. Хотелось бы малой кровью.

★★★★★

Ответ на: комментарий от anonymous

default 0 timeout 10 Title Shit_Vista rootnoverify (hd0,4) makeactive chainloader +1

Вот такой конфиг.

rootnoverify (hd0,4) --- вот тут указан раздел с Vista.

Или я чего-то не понял..?

Буду рад любой помощи.

DALDON ★★★★★
() автор топика
Ответ на: комментарий от anonymous

И первичные, и логические разделы можно "скрывать" (hide), устанавливая четвёртый бит в байте типа системы (тот самый, который MicroSoft игнорирует, начиная от win'2000). Вставив, например, в некоторую секцию загрузки команды:

hide (hd0,1)

hide (hd1,1)

unhide (hd0,0)

Ну собственно вот. Если верить описанию, то ничего не выйдет из этой затеи... Если уж 2000 Windows не "смотрит" на эти биты скрытости раздела, то я думаю, что темболее не поможет и в Vista. Но я всё равно попробую, пока на виртуальной машине правда, отпишу о результатах. Вот если бы выставлялись биты не скрытости а

0xFF - таблица дефектных блоков Xenix

То было-бы лучьше.

Всё равно спасибо за идею, прочтение статьи дало ещё больше понимания в процес происходящего, но думаю, что не подойдёт для меня, но я всё равно попробую перенесу образ в логический диск раздела и попробую запусить это дело из Grub самое главное избавиться от error 13 и передать в цепочке управление загрузчика Windows как сделать всё остальное у меня есть материал.

DALDON ★★★★★
() автор топика

-----------8< c:\grub\menu.lst -----------
title Windows XP -- ntldr
savedefault
root (hd1,0)
chainloader (hd1,0)/ntldr


title Windows Vista -- (hd0,0)+1
root (hd0,0)
chainloader (hd0,0)+1

title Mac OS X -- chain0
rootnoverify (hd0,1)
chainloader (hd0,0)/macosx-boot.mbr
-----------8< c:\grub\menu.lst -----------

PS. использую grub4dos, установлен в NTFS-раздел
это grub 0.97 c патчами для NTFS. Ещё можно попробовать grub 2.0, тоже
должен читать NTFS "из коробки"

см. http://grub4dos.sf.net/ https://gna.org/projects/grub4dos/
http://forum.ru-board.com/misc.cgi?action=printtopic&forum=5&topic=22426

он ещё стоит по умолчанию в RIP Linux, умеет грузить cd через ISOLinux. собственно, можно загрузиться в RIP Linux с CD и из него установить grub4dos

>Grub error 13


не может прочитать раздел (NTFS?)

> "Как сделать чтобы Grub мог присвоить активность логическому разделу, для запуска этой сраной винды?"


hide/unhide, makeactive.

anonymous
()

до установки визды сохрани старый mbr, установи и грузи через chainloader старый mbr или новый с виздой.

grub4dos (не смотри что 4dos) можно и из линукса установить.

anonymous
()

>возможно ли загрузить Vista с ЛОГИЧЕСКОГО неактивного раздела при помощи GRUB?

"активный раздел" = тот, с которого стандартный загрузчик windows (bootmgr, ntldr) умеет загрузиться. Если грузить через chainloader или mbr из файла, то grub сумеет загрузить загрузчик, а дальше уже сам загрузчик будет выпендриваться.
Проще поставить на физический активный раздел, а линукс в любое другое место (всё равно он грузится грубом, и ему пофиг активность раздела)
То есть, ставить визду в sdb2, а линукс при необходимости передвинуть в логический (sdb8, например), и поправить /etc/fstab (хотя в убунте вроде GUID-метки, может, ничего править и не понадобится)

anonymous
()
Ответ на: комментарий от anonymous

Да, вот предпоследние сообщения это вот то, что видимо мне надо. Большое спасибо, для начало буду тестировать в виртуальной машине, выгружу пока RIP Linux и почитаю предыдущие советы.

Уважаемый Анонимус мне советует поставить Vista в основной раздел. Но в первом посте я в принципе описал почему делать этого мне не очень хочеться и привёл карту диска Linux и так стоит на самой последней расширенной партиции, так, что двигать его уже некуда просто, а если я буду двигать WinXP и ставить Vista потом мутить с загрузчиком труда выйдет не меньше, всё равно надо будет мирить две ОС от Microsoft. Что такое UUID я знаю, если я подвину раздел то все эти UUID посыплються как иголки с высохшей ёлки... Это не страшно, всё восстановлю, главное чтобы после этого вообще хоть что-то грузилось, и ДАННЫЕ на /home разделе были целые!

Больше всего я опасаюсь что мои манипуляции с MBR могут затронуть таблицу разделов, если с MBR худо-бедно справлюсь, то вот уже с Partition Table боюсь нет.

Буду отписывать результат здесь!

БОЛЬШОЕ спасибо за примеры, конфигурационных файлов, если честно не думал, что мне тут хоть как-то помогут, больше думал, что нафлудят, устроят холе-вар и всё.

DALDON ★★★★★
() автор топика
Ответ на: комментарий от DALDON

>Анонимус мне советует поставить Vista в основной раздел.

собственно, потому что в моём конфиге 3 винта и 3 винды на каждом из них стоят в отдельном физическом разделе. Может ли Виста работать из логического раздела -- честно говоря, ХЗ, не пробовал потому что не уверен. В гугле по форумам пишут, что Виста вываливается в BSOD если поменять размер/подвигать её раздел, тоже ХЗ, не пробовал.
Линукс честно говоря, двигать проще всего: ставится в логический раздел, не требует активного раздела, грузится отовсюду. В твоём случае двигать надо только '/' , остальные все можно оставить как есть.

> Что такое UUID я знаю, если я подвину раздел то все эти UUID посыплються как иголки с высохшей ёлки...


ЕМНИП, нет, если раздел получил UUID метку, она не должна меняться. На всякий случай, можно прописать не по UUID меткам, а по названиям томов: /dev/disk/by-label/XXX, ХХХ придумать такие, чтобы сильно не пересекались (если придешь например к другу со своим винтом, чтобы названия томов у тебя и у него разные были)
В принципе, названия это ерунда, можно хоть /dev/sdbX прописать (и руками перепрописывать заново, когда будешь двигать разделы).
В линуксе на тему разделов на будущее можно осилить LVM, чтобы отвязаться от физических разделов: если понадобилось новое место, просто добавить новый раздел в LVM-пул.

>ДАННЫЕ на /home разделе были целые!


на всякий случай лучше забекапиться. Хотя Partition Magic / Acronis / Parted / Clonezilla умеют двигать/изменять разделы без потерь, если посредине этой операции вырубят например свет, будет жопа.

> Больше всего я опасаюсь что мои манипуляции с MBR могут затронуть таблицу разделов, если с MBR худо-бедно справлюсь, то вот уже с Partition Table боюсь нет.


просто забекапь MBR вместе с таблицей разделов. Таблица разделов -- это часть MBR с 0x1BE + дополнительный кусок в случае логических разделов, http://ru.wikipedia.org/wiki/MBR . То есть, забекапь например не первые 512 байт раздела (MBR включая физические разделы в таблице разделов), а 2048 байт или 8 Кб, чтобы захватить побольше кусок (физические 4 + ссылку на остальные логические), см. http://en.wikipedia.org/wiki/Master_boot_record#Unix-like_systems . Восстанавливать правда нужно аккуратнее, то есть пересадить первые 512 байт + "только кусок, относящийся к логическим расширенным разделам".

Это дополнительно к тому, что возиться с физическими разделами проще :)

Кроме, того, если Partition Table уж совсем накрылась и в ней мусор, можно воспользоваться тем же testdisk из RIP linux CD : оно умеет составлять таблицу
разделов по меткам разделов ( 0x55 AA и т.п.), и автоматически высчитывает начало-конец. Если сильно больших движений с диском не было, это может и сработать (могут быть ложные срабатывания, или может наткнуться на образ раздела, получается несколько вариантов, как с восстановлением стёртых файлов). Ещё R-Studio под виндой ЕМНИП, так умеет.

anonymous
()
Ответ на: комментарий от anonymous

> ЕМНИП, нет, если раздел получил UUID метку, она не должна меняться.

Даже если я поменяю размер раздела? Я думаю что поменяеться. В UUID наверно забито не только начало но и размер и конец раздела... Впрочем это только мои догадки ибо не очень хорошо знаком с этим UUID. Умею только смотреть UUID и прописывать в fstab

> В принципе, названия это ерунда, можно хоть /dev/sdbX прописать (и руками перепрописывать заново, когда будешь двигать разделы).

Да, раньше так и делал. Тут проблем не возникнет.

> на всякий случай лучше забекапиться. Хотя Partition Magic / Acronis / Parted / Clonezilla умеют двигать/изменять разделы без потерь, если посредине этой операции вырубят например свет, будет жопа.

По идее стоит UPS должен помочь в этом плане. Но боюсь в этом плане больше своих кривых рук.

> просто забекапь MBR вместе с таблицей разделов. Таблица разделов -- это часть MBR с 0x1BE + дополнительный кусок в случае логических разделов, http://ru.wikipedia.org/wiki/MBR . То есть, забекапь например не первые 512 байт раздела (MBR включая физические разделы в таблице разделов), а 2048 байт или 8 Кб, чтобы захватить побольше кусок (физические 4 + ссылку на остальные логические), см. http://en.wikipedia.org/wiki/Master_boot_record#Unix-like_systems . Восстанавливать правда нужно аккуратнее, то есть пересадить первые 512 байт + "только кусок, относящийся к логическим расширенным разделам".

Большое спасибо за ссылочки. Буду читать.

> В линуксе на тему разделов на будущее можно осилить LVM, чтобы отвязаться от физических разделов: если понадобилось новое место, просто добавить новый раздел в LVM-пул.

Это моя мечта, уже начал знакомиться с этой штукой, но пока думаю, что рановато.

Большое спасибо за помощь. Если не трудно то заходите в этот топик иногда, я буду пытаться описывать свои потуги.

> В гугле по форумам пишут, что Виста вываливается в BSOD если поменять размер/подвигать её раздел, тоже ХЗ, не пробовал.

Да-да я вот тоже такого начитался... Что вот по сути не понятно чего и как... Вот поэтому и решил спросить.

БОЛЬШОЕ СПАСИБО ЕЩЁ РАЗ ВСЕМ КТО ПОМОГАЕТ! БУДУ отписывать, чего и как получаеться.

DALDON ★★★★★
() автор топика
Ответ на: комментарий от DALDON

А ещё такой вопрос ---

Подскажите, вот я на данный момент перенёс Vista с активного раздела в неактивный путём создания образа, MBR не удалось перенести ибо Acronics заругался на то, что MBR побьёт все разделы на этом диске видимо mbr он бекапил вместе с таблицей разделов, а так-как в этом и соль, что разел не логический нужен. то я восстановил просто раздел.

Собственно вопрос: а BR самого раздела тоже должен быть перенсён ведь верно?

Сейчас на кусочек спецом оставленый на тестовом диске буду устанвливать Grub и пытатья запустить Vista с логического раздела.

http://forum.antichat.ru/thread42720.html --- вот по сабжу немного. Моя задача добраться до этой ошибки пока... :-) То бишь передать управление BR раздела Vista - я так понимаю, что если всё будет успешно то я должен получить такое сообщение?

DALDON ★★★★★
() автор топика
Ответ на: комментарий от DALDON

>Собственно вопрос: а BR самого раздела тоже должен быть перенсён ведь верно?

да, по идее если загрузиться в консоль восстановления и восстановить ей MBR, должен прописаться родной загрузчик Висты. Его потом сохранить в Vista.mbr и грузить chainloader'ом из груба (или грузить из раздела, chainloader +1)

anonymous
()
Ответ на: комментарий от anonymous

Так-как всё увлекательнее и увлекательнее становиться...

Так, значит загрузился с RIP Linux,

http://www.tux.org/pub/people/kent-robotti/looplinux/rip/ --- брал отсюда. Bootable CD ISO (RIPLinuX-6.3.iso -- эту версию.

Может надо было взять Bootable CD ISO (RIPLinuX-6.3.grub.iso) ? Но как я понял, что и та подойдёт.

В утилитах нашёл grub installer псевдографический.

Установил всё как надо по идее в автоматическом режиме! То бишь сам ничего не делал. Только кнопочки нажимал, всё установилось. Только я не понял ОДНОГО. Там написанно grub v 0.97... Или это просто написано, а на самом деле эта версия поддреживает NTFS? Или я чего не то установил, но больше ничего такого я не нашёл на диске.

В общем в автомате добавил в конфигурационный файл Windows Вот чего программа мне туда написала.

title Windows

map (hd0.0) (hd0.4)

rootnoverify (hd0.4)

makeactive

chainloader +1

Определено всё корректно. Ручками по сути такой-же конфиг вышел. После перезапуска имею вот чего при выборе ОС Windows

Booting 'Windows on (/dev/hda5)

map (hd0.0) (hd0.4)

Error 1: Filename must be either an absolute patname or blocklist

Press any key to continue...

Пока не гуглил на эту тему. Но при первом приближении не очень понятно какой надо указать путь...

map (/dev/hda0) (/dev/hda5) ? Нет, не так, ибо получаю error while parsing number.

Да, вопрос к последнему ответевшему... А скажите если так и сделать то куда потом положить можно будет сохранённый MBR, как его grub будет грузить, вернее откуда? Ведь там будет запись и о таблице разделов, ибо мы же не знаем конкретно сколько байт занимает загрузчик Vista... Да и я думаю если честно, что НЕ ПОЛУЧИТЬСЯ у меня восстановить MBR Vista ибо коносль восстановления "не врубиться чё за дела" когда не обнаружит любимой Vista на основном разделе..? НО я попробую. Всё равно пока на виртуальной машине всё делаю.

DALDON ★★★★★
() автор топика
Ответ на: комментарий от DALDON

Внимание в последнем моём сообщении ошибка. Конфиг вылядит естевственно так

title Windows

map (hd0.0) (hd0.4)

map (hd0.4) (hd0.0)

rootnoverify (hd0.4)

makeactive

chainloader +1

НЕ ХВАТАЛО этой строки, map (hd0.4) (hd0.0) -- это просто моя описка.

DALDON ★★★★★
() автор топика
Ответ на: комментарий от DALDON

В общем попробывал восстановить загрузчик Vista как и ожидалось ничего не вышло fixboot и fixmbr уже видимо нету в этой версии ОС. А полудурошное автоматическое средство восстановления загрузчика сказала, что не может мне ничем помочь.

Вот как-то так пока. Прошу помощи пока в установке grub4dos с RIP Linux... Или я чего не понимаю или его там нету. Скорее первое правда.

Сори я спать а то мозг уже не работает.

DALDON ★★★★★
() автор топика
Ответ на: комментарий от DALDON

Значит продолжу.

НАПОМНЮ Я перенёс образ раздела с установленной Vista на другой виртуальный жёсткий диск но уже в логический раздел, до переноса Vista работала в активном разделе! Задача запустить её уже из логического раздела.

И так как мне посоветовали тут, поставил grub4dos, эта такая версия Grub которая понимает NTFS как надо. И понимает ISO как понимаю, по наличию модуля.

Ставил через RIP LinuX который мне очень понравился.

И так, значит обещали нам доступ к NTFS разделу... Интересно а NTFS в Vista другой или такой же? Мне кажеться, что там что-то более свежее нежели NTFS-5 или чего там было в Windows XP.

Ну так вот. Установил. А толку нету...

Сделал следующий конфиг

title Windows Vista -- (hd0,4)+1

rootnoverify (hd0,4)

chainloader (hd0,4)+1

Пробывал различные конфиги.

title Windows Vista -- (hd0,4)+1

rootnoverify (hd0,4)

makeactive

chainloader (hd0,4)

Или

title Windows Vista -- (hd0,4)+1

hide (hd0,0)

unhide (hd0,4)

rootnoverify (hd0,4)

makeactive

chainloader +1

Конфиги пробывал править grub пробывал убирать скрытие, пробыва rootnoverify и просто root, на root говорит, что не может эта ФС стать рутовой, дык по идее ведь NTFS... То говорит, что не может скрыть раздел, так-как не понимает, чего это за такое, хотя скрываю ext3, вроде всё правильно... Даже не знаю чего ещё можно попробывать.

Есть последняя идея —- установить биты резерва в активные раздел жёсткого диска ибо Windows не обращает внимания на биты скрытости раздела, далее через grub установить активность на логический раздел makeactive, затем попробывать загрузить образ ISO установочного диска Windows ЧЕРЕЗ ГРУБ чтобы логическому разделу была присвоена активность, и уже начать прямо туда установку Windows, затем после первой фазы установки ОС и ребута, не запускаться, ибо Windows затрёт MBR , а заного туда проинсталировать GRUB и уже через GRUB вместо iso образа Windows запускать BR Vista и она дальше поставиться и всё будет уже в шоколаде... ОДИН вопрос, как загружать образ iso через GRUB, я думаю, что надо в device map прописать ещё один диск пока виртуальный и на нём разместить образ ISO, но вот как его загрузить через GRUB пока не знаю. Ну как такая идея..? Или пора уже вызывать людей в белых халатах..?

DALDON ★★★★★
() автор топика
Ответ на: комментарий от DALDON

Да вот попробывал так --

title Windows Vista -- (hd0,4)+1

rootnoverify (hd0,4)

makeactive

chainloader +1

Получаю

Error 13

rootnoverify (hd0,4)

makeactive

Invalid device requested

Такое ощущение, что он не может сделать активным логический раздел... Может я фигнёй занимаюсь и ничего не выйдет? И не возможно прискоить бит активности на логический раздел..?

DALDON ★★★★★
() автор топика
Ответ на: комментарий от DALDON

РЕШЕНО!!!!

СПАСИБО anonimus который писал в самом начале мне!!!!

В общем суть такая, что не надо устанавливать makeactive на раздел, он не будет устанавливаться. hide и unhide я так понимаю тоже будут работаь ТОЛЬКО в случае первичных разделов, впрочем точно также как и map.

title Windows Vista

rootnoverify (hd0,4) --- думаю, что можно и root если grub4dos стоит.

chainloader (hd0,4)/bootmgr --- вот она соль, вся, он ЦЕПЛЯЕТ загрузчик и передаёт ЕМУ управление, ВСЁ!

Vista заработала как ни в чём не бывало.

Теперь пока вот только осталось придумать как туда прямо её поставить чтобы не переносить образом из другого активного раздела. Если чего отпишу.

БОЛЬШОЕ СПАСИБО ВСЕМ!!! Очень жаль, что почти все Anonimus, ОЧЕНЬ И ОЧЕНЬ МНЕ ПОМОГЛИ! И grub4dos поставил и во всём разобрался с ВАШЕЙ ПОМОЩЬЮ УВАЖАЕМЫЕ, тоже не буду в долгу тоже другим буду ОБЯЗАТЕЛЬНО ПОМОГАТЬ! СПАСИБО!!!

DALDON ★★★★★
() автор топика
Ответ на: комментарий от DALDON

>СПАСИБО anonimus который писал в самом начале мне!!!!

Отлично. Рад что все решилось.

P.S. Все же Grub хорошая штука. Согласитесь...

anonymous
()
Ответ на: комментарий от anonymous

Да кто-ж спорит, это просто хорошая штука, это ОТЛИЧНАЯ штука. Даешь по Grub в каждый ПК мира! Только Grub однозначано, не надо больше никаких красноглазых поделий от Microsoft.

У меня всё получилось, поставил в логический раздел Vista при этом она туда согласилась установиться потерев при этом загрузчик WinXp в первом основном разделе, именно там у меня живёт ХР, я скачал grubinst под windows установил его ВО ВСЕ BR где живут форточки, и теперь главный Grub у меня может загрузить ЛЮБУЮ систему, он просто передаёт управление в BR нужного раздела, а те Grub уже запускают Loader Windows. Таким образом я смогу и любую из реально установленной Windows запускать прямо в Linux через Vbox ибо Vbox работает только либо c MBR или с BR раздела, и волки ссыты, и зайцы целы. Теперь можно всем тем кто боиться поменять ОС на ПК предлагать такой отнюдь не сложный способ мультизагрузки, и не надо больше бояться, что Win больше не загрузиться, мы всё умеем, всё восстновим, вот как Open Source проникает в недра пропиретарщины... Супер.

DALDON ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.