Имеется:
В компе 2 винта, на одном стоит Windows XP, на другом Linux (OpenSuse 11.4).
Линукс в свое время установил, предварительно отключив виндовый диск, чтобы никакие MBR не затирались, т. к. основной системой до сих пор остается винда, линукс был "для баловства", когда требуется - в биосе меняю очередность винтов и запускаю Линукс.
И вот уже начинаю привыкать к Suse, "баловство" потихоньку перерастает в интерес, а переключаться всякий раз на линукс через биос становится не удобно.
Задался вопросом, как добавить в nt loader пункт для загрузки линукс, прочитал все темы, содержащие "загрузку линукс через загрузчик windows", но они, насколько я понимаю, предполагают, что винда и линукс устанавливаются при неизменной последовательности винтов в системе, а у меня получается что они меняются местами.
При этом, всё таки, для меня важна загрузка через nt loader, а не grub!
Посоветуйте пожалуйста, как это сделать
Как подключить линуксовый раздел (на выделенном диске) к загрузчику NT
http://www.opennet.ru/base/sys/linux_xp_load.txt.html
http://www.tldp.org/HOWTO/Linux+NT-Loader.html
http://www.linuxmisc.com/1-linux-networking/a41186a455c4105e.htm
http://ru.wikibooks.org/wiki/LOR-FAQ-Admin#.D0.9A.D0.B0.D0.BA_.D0.BF.D1.80.D0.BE.D0.BF.D0.B8.D1.81.D0.B0.D1.82.D1.8C_linux_.D0.B2_NT_Loader.3F
http://citforum.ru/operating_systems/linux/user/gl-02/gl_02_06.shtml
геморрой ваш конфиг. обе системы на один диск! файлопомойку- на другой!
радикально, но идеально smile
А по-моему очень удобно, пока еще не дорос до радикальных мер и винда, в принципе, устраивает.
И неужели такую конфигурацию под один лоадер никак не подцепить ?
А что касается ссылок из предыдущего ответа, спасибо большое, но они все оперируют винтами без изменения их последовательности в биосе (насколько я понял).
Стоп, вы меняете диски в биосе, то есть в один момент времени у вас либо не доступны или отдельный диск с виндовс или так же с линукс.
Так?
Или просто туда-сюда не поими зачем тасуете, при этом оба видны и в линуксе и в виндовс.
Но так понимаю хотите без перетасовок видеть оба диска и загрузчиком будет NTloader -> тогда не вижу проблем с приведенными выше ссылками, менять диски туда-сюда то уже не придется.
AlOks,
ntldr и подсунутый ему загрузочный сектор решают одну задачу -- передача управления загрузчику. Для LILO проблемы никакой нет, он в 512 байт влезает целиком, второй HDD от первого отличается только кодом 0x80 и 0x81.
А с GRUB, увы, не пробовал, не могу точно сказать.
И неужели такую конфигурацию под один лоадер никак не подцепить ?
пробуйте. но по "разборам полетов" многие не справляются с таким конфигом. Дуалбут вообще хрень, если уж озвучивать мое мнение- проще виртуалку использовать. Да, без игрушек. This is SPARTA!!! :lol:
AlOks,
с другой стороны, может оказаться намного проще оставить в BIOS загрузку со второго HDD с Linux-ом, а в конфиг GRUB-а дописать загрузку Windows с первого HDD.
ps. Посмотрите в документации на свой BIOS, возможно у него есть клавиша для выбора загрузочного устройства при обычной загрузке, без необходимости запуска самой BIOS Setup Utility. Обычно бывает F8, F11, F12 или что-то наподобие того. В таком варианте вам меню BIOS заменит меню загрузчика более чем полностью.
AlOks,
с другой стороны, может оказаться намного проще оставить в BIOS загрузку со второго HDD с Linux-ом, а в конфиг GRUB-а дописать загрузку Windows с первого HDD.
У меня так и есть, любая система может загружаться из GRUB-а (если первичным в биосе выставлен линуксовый диск).
Но в том то и дело, что такая мультизагрузка меня не устраивает, когда систему ты можешь вибирать только в момент перезагрузки. На самом деле у меня на виндовом диске 3 винды: XP, XP 64 и Win7, и выбираю я ту, с какой стартовать при следующей перезагрузке путем выбора активного раздела командой diskpart (каждая из этих систем стоит на Primary разделе винта). И такой способ выбора операционной системы куда удобнее, чем перезагружать комп и сидеть ждать когда выйдет меню загрузчика с вариантами, и если пропустил этот момент - перезагружаться вновь. Это некое подобие PQboot из раннего Partition Magic, которым было очень удобно пользоваться.
Вот я и подумал, если создать еще один Primary раздел на основном винте (где все винды стоят), и поместить туда bootsect.lnx, можно будет точно также загружать линукс путём переключения активного раздела.
AlOks,
стало быть, загрузчик от 7-ки, а не ntldr, так?
Далее, несмотря на то, что идея понятна, не совсем понятна реализация, по крайней мере до тех пор, пока отлельный /boot или / не будут на разделе 1-го hdd.
То есть при работе сегодня в Linux Вы на завтра делаете активным разделом допустим Win64, ( если я Вас правильно понял), потом когда завтра наступило стартуете с него? Не проще ли поставить в первый SATA разъем диск с Linux, объявить его загрузочным в BIOS, потом загрузиться в Linux , и обновить конфигурацию загрузчика(остальные диски могут быть включены в произвольно-доступные разъемы SATA) . Тогда при старте системы (физическом включении компьютера) Вы будете видеть весь список доступных к загрузке систем.
AlOks,
для определённости подытожу вашу текущую ситуацию.
В MBR первого жёсткого диска (hd0) установлена загрузочная запись от Windows. Её особенностью является то, что она передаёт управлению загрузчику активного раздела.
На (hd0,1), (hd0,2), (hd0,3) установлены WinXP, WinXPx64, Win7.
Выбор загружаемой системы производится переключением активного раздела:
> diskpart
> select disk=0
> select partition=n
> active
> exit
Для продолжения загрузки системы с раздела используется родной загрузчик установленной на разделе системы: ntldr, ntldr64, bootmgr. Возможность выбора загружаемой системы через меню загрузчика не используется.
Вот я и подумал, если создать еще один Primary раздел на основном винте (где все винды стоят), и поместить туда bootsect.lnx, можно будет точно также загружать линукс путём переключения активного раздела.
Если MBR от Windows умел бы загружать с активного раздела что-либо кроме Windows, то сценарий имел бы право на жизнь. Если правильно путаю, таким умением он не обладает(*), это умеют делать ntldr, bootmgr, но об этом позже.
Кроме того, нужно убедиться, что Windows7 при установке не создала отдельный 100Мб скрытый primary раздел под собственный boot. Если подобное произошло, то лимит первичных разделов (4 шт.) исчерпан.
Для реализации задуманного потребуется такой код в MBR, который умеет грузить с активного раздела не только Windows, но и Linux. При наличии такого MBR на 4-й раздел нужно будет вынести /boot -- отдельный или с корнем вместе -- неважно, зависит от личных предпочтений. Загрузчик Linux будет получать управление от MBR, грузить со своего раздела ядро, передавая ему параметры, в том числе корневой раздел.
Далее. Все варианты с загрузочным сектором в виде файла, по типу упомянутого выше BOOTSECT.LNX или любого другого, имя не принципиально, отрабатывают ровно на один уровень позже, вторичными загрузчиками ntldr или bootmgr, то есть уже после начала загрузки с активного раздела, смена варианта загрузки производится не выбором активного раздела, а записью в настройках загрузчика (boot.ini для ntldr и реестроподобная бинарная структура для bootmgr). Эти варианты не отличаются от варианта с использованием в качестве такого загрузчика GRUB/GRUB-legacy, поскольку выбор всё равно придётся осуществлять правкой конфига, а не выбором раздела, а конфиг bootmgr из Линукса, если правильно путаю, править нечем.
(*) Возможно случилось чудо и MBR от MS в свежих версиях (Vista/Seven) научился грузить не-Windows загрузчики раздела, нужно проверить.
bormant,
(*) Возможно случилось чудо и MBR от MS в свежих версиях (Vista/Seven) научился грузить не-Windows загрузчики раздела, нужно проверить.
Такого чуда нет. Microsoft в упор не видит другие файловые системы, кроме: FAT16, FAT32, ExtFAT, NTFS, NTFS v2.0 :(
AlOks,
для определённости подытожу вашу текущую ситуацию.
В MBR первого жёсткого диска (hd0) установлена загрузочная запись от Windows. Её особенностью является то, что она передаёт управлению загрузчику активного раздела.
На (hd0,1), (hd0,2), (hd0,3) установлены WinXP, WinXPx64, Win7.
Выбор загружаемой системы производится переключением активного раздела:
> diskpart
> select disk=0
> select partition=n
> active
> exit
Для продолжения загрузки системы с раздела используется родной загрузчик установленной на разделе системы: ntldr, ntldr64, bootmgr. Возможность выбора загружаемой системы через меню загрузчика не используется.
Всё именно так!
AlOks,
Если MBR от Windows умел бы загружать с активного раздела что-либо кроме Windows, то сценарий имел бы право на жизнь. Если правильно путаю, таким умением он не обладает(*), это умеют делать ntldr...
Именно так и хочу сделать, через ntldr, почему, собственно, и тему начал "издалека".
AlOks,
Кроме того, нужно убедиться, что Windows7 при установке не создала отдельный 100Мб скрытый primary раздел под собственный boot. Если подобное произошло, то лимит первичных разделов (4 шт.) исчерпан.
W7 на едином разделе, никаких скрытых primary нет (во всяком случае не "управление дисками" в администрировании ни Paragon их не показывает).
AlOks,
Далее. Все варианты с загрузочным сектором в виде файла, по типу упомянутого выше BOOTSECT.LNX или любого другого, имя не принципиально, отрабатывают ровно на один уровень позже, вторичными загрузчиками ntldr или bootmgr, то есть уже после начала загрузки с активного раздела, смена варианта загрузки производится не выбором активного раздела, а записью в настройках загрузчика (boot.ini для ntldr и реестроподобная бинарная структура для bootmgr). Эти варианты не отличаются от варианта с использованием в качестве такого загрузчика GRUB/GRUB-legacy...
Пусть уровнем позже, но ведь можно по идее для этого ntldr в boot.ini прописать загрузку bootsect.lnx по умолчанию, ну или с минимальным timeout, а уже он (bootsect.lnx или еще кто) будет перенаправлять загрузку на, собственно, линуксовый диск (hd1,1), как я думал. То, что следом будет (по идее) появляться grub - это разумеется, его тоже можно "пропустить" уже в настройках в линуксе.
Именно так и хочу сделать, через ntldr, почему, собственно, и тему начал "издалека".Если MBR от Windows умел бы загружать с активного раздела что-либо кроме Windows, то сценарий имел бы право на жизнь. Если правильно путаю, таким умением он не обладает(*), это умеют делать ntldr...
а зачем нужен такой кривой путь? По очевидным причинам, мысы не хочет, что-бы её загрузчик грузил не венду.
Задался вопросом, как добавить в nt loader пункт для загрузки линукс
мне кажется, что это стратегически неправильно ставить в зависимость от виндового загрузчика обе независимые системы. Слетит винда - слетит загрузка систем. Все таки я сторонник хорошего мультизагрузчика. Причем Grub на втором диске возможно и на раздел и в МБР пихнуть, как Вам нравится. Ну а на первом мультизагрузчик в МБР, чтоб либо винду грузил, либо перекидывал на второй HDD.
Впрочем поддерживаю подсказку обе системы на первый диск перетащить, а второй под файлпомойку, тут достаточно одним Grub-ом обойтись.
Слетит винда - слетит загрузка систем. Все таки я сторонник хорошего мультизагрузчика.
нормальный в NT мультизагрузчик, который никогда и никуда не "слетает". Если-бы он ещё умел не только венду грузить...
А EasyBCD не пойдёт?
Пусть уровнем позже
/dev/sda -- диск с Windows
/dev/sda1 -- активный раздел с ntldr
/dev/sdb -- диск с Linux
Если бы хватало ntldr (но он не сумеет загрузить Vista/Seven).
С LILO легко проходит следующий вариант:
1. Грузимся в линукс, сохраняем загрузчик в файл:
# mkdir -p /mnt/sda1
# mount -t ntfs-3g /dev/sda1 /mnt/sda1
# dd bs=512 count=1 if=/dev/sdb of=/mnt/sda1/bootsect.lnx
2. Грузимся в Windows на sda1, правим boot.ini
добавляем загрузку Windows со второго раздела и Linux из бутсектора:
[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP RU" /noexecute=optin /fastdetect
multi(0)disk(0)rdisk(0)partition(2)\WINDOWS="Microsoft Windows XP x64 RU" /noexecute=optin /fastdetect
C:\bootsect.lnx="Linux"
3. Перезагружаемся и проверяем загрузку. Если спотыкается, выясняем, на чём именно. Если дело не дошло до загрузки ядра/initrd, то разбираемся с загрузчиком. Если ядро получило управление, разбираемся с линуксом.
Если загрузка в таком варианте работает, делаем начисто при помощи загрузчика от Vista/Seven, для чего укладываем загрузочный сектор на диск с Windows 7, делаем раздел активным, и при помощи стокового bcdedit добавляем в загрузку Windows/Windows64/bootsect.lnx. Теоретически, если являетесь уверенным пользователем bcdedit, можно сразу начинать с W7 и bootmgr. Однако, поскольку управление им всё же сложнее, чем ntldr, полагаю разумным для начала убедиться в работоспособности самого метода исключив дополнительный источник возможных ошибок.
Проделал тот же эксперимент с GRUB-legacy. Как и ожидалось, чуда не произошло, stage1_5 на втором HDD не нашёлся (дело закончилось выводом "GRUB"). Создание для GRUB раздела на первом HDD проблему должно решать.