Ru-Board.club
← Вернуться в раздел «Microsoft Windows»

» Загрузка Windows 2003 Server R2 SP2 с GPT диска без UEFI

Автор: FunnyLorax
Дата сообщения: 17.06.2014 12:09
Идея описана здесь с картинками:
http://winitpro.ru/index.php/2014/03/11/zagruzka-windows-7-s-gpt-na-bios-bez-uefi-2/
У меня есть HDD0 с MBR и HDD1 с GPT. Я установил Win2003 на GPT винчестер (предварительно преобразовав его в MBR ,иначе установка просто не начнется), сейчас диск в GPT.
Возможно ли заставить ntldr загружать файлы с GPT партиции? В той статье автор использует bootmgr для Vista и выше. Также я установил GRUB4dos ,но он также загружает ХР\2003 через ntldr.
Автор: KLASS
Дата сообщения: 18.06.2014 16:20
По словам автора статьи:

Цитата:
Подобный трюк можно проделать со следующими (даже 32 битными версиями) Windows:
Windows 8, Windows 8.1
Windows Server 2012 / 2012 R2
Windows 7
Windows Server 2008 / 2008 R2
Windows Vista
Windows Server 2003 SP1 / 2003 (64-bit)
Windows XP x64

У вас, как понял, Windows 2003 Server R2 SP2 x86, чего не попробовать x64 и нам потом рассказать
Автор: FunnyLorax
Дата сообщения: 19.06.2014 00:45
Речь о Windows 2003 x64. Ну вообщем в результате экспериментов получается такая картина:
Windows 2003 x64 - не грузится ,ntldr не видит диск с системой
Windows 2008 x86 - не грузится, bootmgr не может прочитать файл winload.exe
Windows 7 x86 - грузится
Windows 2008 x64 - грузится
ну не трудно догадаться,что Vista x64, Win7 x64, Win8 x32 и x64 так же будет загружаться.
А вот Виста обычная и Сервер 2008 32 разрядный не загружаются. Как и вся линейка NT 5.1


Добавлено:
Причем проблема именно в файле winload.exe ,если его заменить на другую версию (от чужеродной системы), то у bootmgr вдруг наступает "прозрение" и он пытается запустить систему. Но естественно там файлы ядра дают ошибки разные. Вообще я впервые с таким сталкиваюсь, что загрузчик видит партицию,имеет доступ к файлам и не может загрузиться.. файл точно рабочий т.к. после перевода винта в MBR всё загружается. Хоть прям делай полдиска в GPT, полдиска в MBR
Автор: BVV63
Дата сообщения: 19.06.2014 05:37
FunnyLorax
А почему Вы решили, что это вообще возможно (на практике, а не в абстрактной теории)?
Using GPT Drives

Цитата:
Can be used as a boot volume on x64-based editions of Windows 7, Windows Vista, and Windows Server 2008. Starting with Windows Server 2003 SP1, GPT disks can also be used as a boot volume on Itanium-based systems.

У Вас Itanium?
Автор: KLASS
Дата сообщения: 19.06.2014 07:16
BVV63
На самом деле многое возможно, знаний просто не хватает. А по вашей ссылки перевод гугла:
Может использоваться в качестве загрузочного тома на 64-разрядных версиях Windows 7, Windows Vista, и Windows Server 2008. Начиная с Windows Server 2003 с пакетом обновления 1, GPT диски могут также использоваться в качестве загрузочного тома на системах на базе Itanium.
FunnyLorax
СПС за инфу
Автор: BVV63
Дата сообщения: 19.06.2014 07:27
KLASS
Думаю, однако, что в данном случае союз "также" (also) не стоит понимать буквально. Ибо по логике выйдет, что Windows 7, Windows Vista и Windows Server 2008 на Itanium не установить, т. к. они не указаны в последнем предложении.
Автор: KLASS
Дата сообщения: 19.06.2014 07:31
BVV63
беру слова назад, вот тут FAQ
Автор: FunnyLorax
Дата сообщения: 19.06.2014 11:51
MSDN я читал прекрасно, там речь идет о прямой загрузке через BIOS. Т.е. простейший вариант, когда юзер имеет древний комп без UEFI и винт 3 терабайта в GPT. Вот для этих случаев написан FAQ.
Я же использую сложную многоуровневую загрузку, когда скажем имеется пара винтов MBR и они должны инициализировать загрузчик и передать управление на GPT том. Ничего сложного здесь нет.
Почему не хочет грузить winload.exe от Висты и 2008, тоже в Гугле никакой информации. Видимо ещё мало людей столкнулись с этой проблемой.

Добавлено:
Хотя по поводу ntldr скорее всего тухлый номер, едва ли он умеет читать GPT тома. Может конечно надо искать на китайских сайтах, там вполне возможно уже сделали патч. И опять же непонятно, он именно не видит диск с системой или в boot.ini нужно менять параметры.
Автор: KLASS
Дата сообщения: 19.06.2014 17:04

Цитата:
Может конечно надо искать на китайских сайтах, там вполне возможно уже сделали патч.

Не сегодня так завтра...
Помнится мелкие много писАли про то, что низя конвертнуть обратно динамический диск без потерь, на деле пару байт поправить. Или ДОС низя загрузить со второго винчестера из файла boot.ini, который на первом. Опять же, один байт правим и грузитцо, как с дискеты. Знаний просто пока мало...
Автор: FunnyLorax
Дата сообщения: 19.06.2014 17:58
Вот тоже непонятно:
http://en.community.dell.com/techcenter/extras/w/wiki/2837.hdd-support-for-2-5tb-3tb-drives-and-beyond.aspx

GPT – You can use a large capacity drive with a GPT partition as a DATA drive in Windows Server 2003 SP1 and newer operating systems. BOOT drive support is in Windows Server 2008 X64 and newer operating systems (that support UEFI mode) as noted above.

Что понимается под boot drive? Очевидно диск, который получает эстафету от Legacy BIOS\UEFI.
И на другом ресурсе тоже я прочитал,что должно работать. Все системы выше ХР должны грузиться со второго GPT винчестера.
Есть энтузиасты,кто конвертирует свой винт с Вистой в GPT и попробует выяснить, откуда вылазит ошибка:
http://social.technet.microsoft.com/Forums/windows/en-us/b26a0560-b3a1-4236-b0de-35065ac38575/missing-or-corrupt-winloadexe-0xc000000e?forum=itprovistadeployment

Добавлено:
Уточненные данные: Windows Vista x64 также не способна загружаться с GPT ,даже если bootmgr находится на первом MBR жестком диске.
Итого, что мы имеем:
WindowsXP SP3 32-bit - никак с GPT работать не может

WinXP SP2 64 bit, Windows 2003 SP2 32 и 64 бита, Vista 32 и 64 бита, Windows 2008 SP2 32 бита:
GPT только в качестве дополнительного диска, загрузка невозможна ни при каких условиях

все ОС начиная с Windows 2008 R2 x64 , в том числе 32 битные Win7 и Win8 умеются загружаться с GPT даже на компьютере с Legacy BIOS, если использовать в качестве HDD0 MBR диск.

Если у кого будут другие наработки и исследования по этому вопросу, пишите сюда.
Автор: botva0
Дата сообщения: 21.06.2014 22:06
спасибо, прочитал с интересом. информация познавательная, но, имхо, практической пользы от нее не много. какой смысл цепляться за старые операционки? если семерка нормально грузится с gpt, то зачем использовать хр?
имхо не так просто пропатчить загрузчик, ибо он использует функции биос для загрузки ядра системы, а вот функции ядра уже умеют работать с gpt разделами.
с uefi биосами понятно, они содержат нужные функции для работы с gpt разделами. с классическими биосами тоже понятно - нет у них подобных функций, поэтому эти функции должен поддерживать загрузчик. загрузчики хр и висты (и их серверные варианты 2003 и 2008 без r2) просто не содержат нужных функций, они присутствуют только на уровне ядра этих систем.
кроме этого, подозреваю, что 32-разрядные версии этих загрузчиков вообще не умеют правильно адресовать дисковое пространство gpt разделов. ведь загрузчик предельно туп, его задача просто загрузить ядро из файловой системы и передать ему управление, используя при этом минимальный набор системных функций.
а вот в системах начиная с семерки (2008r2 и восьмерка собраны на том же ядре с аналогичным загрузчиком) обновлены функции загрузчика для работы с дисками. наверное, именно с целью расширения ореола обитания этих систем.
можно, конечно, поизголяться, попробовав завести висту с семерочного загрузчика. но смысл?
Автор: FunnyLorax
Дата сообщения: 24.06.2014 17:52
Зачем нужна ХР,если есть Семерка? Ну это какие-то вопросы для передачи типа Пусть говорят, в стиле "зачем нужна любовница,если есть жена".. Наверно потому,что они не 100% эквивалентны по своим функциональным возможностям.
Многие пользователи не будут в ближайшее время менять свои быстрые,современные компы на новую платформу только из-за UEFI. Это всем очевидно.
И я покупая первый раз 3 ТБ винт тоже долго думал,что же меня ожидает, вообще смогу ли я на него установить какую-нибудь ОС. Вот оказалось что не все так плохо, если не выбрасывать старые MBR винчестеры,то и на GPT вполне встает Windows 7 и выше.
Но M$ то что мешает допилить загрузчики старых систем под GPT? Вероятно именно жажда наживы, т.к. надо толкать свои андройдные системы в массы.
Ведь не секрет что очень много людей до сих пор сидит на ХР и выход сомнительной Win8 ещё больше утвердил их позицию, что старое лучше нового. Ну в самом деле,нахрена мне с мышью и клавиатурой их убогий,планшетный метро-интерфейс? Это всё равно что на автомобиле вместо руля управлять тумблерами какими-нибудь.
Автор: botva0
Дата сообщения: 25.06.2014 12:54
ну с любовницей и женой аналогия не стопроцентная.
в случае жены и любовницы можно использовать и то и другое одновременно, а в случае хр и семерки - одно вместо другого.
и если уж использовать подобные аналогии, то скорее стоит спросить зачем нужна старая любовница, если есть молодая жена.
я сам перешел на семерку только тогда, когда купил хард 3тб, ибо для фоток место кончилось.
и, честно говоря, не нашел ни одного довода, зачем стоит цепляться за хр. ну кроме того, что лень систему переставлять, ибо и так все работает.
в семерке есть много полезных фишек - драйвера для новых устройств и поддержка новых интерфейсов, хотя нужно сказать, справедливости ради, что отсутствие драйверов под хр вызвано скорее искусственными факторами, нежели невозможностью их написать.

Цитата:
Но M$ то что мешает допилить загрузчики старых систем под GPT? Вероятно именно жажда наживы

естественно, ведь жажда наживы - основа любого бизнеса, хотя у микрософта она порой выходит за границы здравого смысла. но мы же не требуем от автопроизводителей, чтобы они на шару переделывали свои проданные старые машины, используя новые технологии, вместо того, чтобы клепать новые тачки.
а вообще, я согласен с тем, что хр вполне может работать на старых компах не хуже семерки, но если уж возникло желание что-нибудь обновить - добро пожаловать на семерку. и слава богу, что пока еще под нее драйвера пишут, а не только под восьмерку.
я же без наезда, мне самому было бы интересно покопаться в свободное время и попробовать поднять хр на gpt, но чисто забавы ради. а для использования в реальной жизни, я бы остановился на проверенных решениях. все-таки сохранность данных на харде мне не безразлична.
когда-то я писал на ассемблере мультизагрузочный бутсектор, для загрузки разных версий дос, и впихивал в 512 байт вполне работоспособный код. так что я с интересом прочитал про ваши эксперименты, но если цель этих экспериментов - использование в реальной работе, то все-таки лучше ставить семерку и не париться.
и в заключение скажу, что на сегодняшний день 32-разрядные системы свое отживают, ибо тот кривой метод адресации, который они используют, чтобы заюзать доступное сейчас адресное пространство, не имеет права на существование.
Автор: FunnyLorax
Дата сообщения: 25.06.2014 18:07
Дело в том,что не все программы корректно ведут себя под 64 битными ОС. Из последних феноменов видел такую картину: игра Call of Duty - World at War , выпущена конец 2008 - начало 2009 года. Вполне свежачок. В системе с Core2Duo и Intel 965P всё нормально как с 32,так и 64 битных ОС. В системе с PhenomII X4 и AMD770 в 32 битной Win7 FPS в норме, на 64 битной системе идет просадка в 3-4 раза.
Тестировал на видеокарте GTX650Ti и сначала удивился,почему FPS всего 15-20 кадров в секунду.. оказывается в норме он должен быть 90-120 FPS. Что это,кривой драйвер или кривая оптимизация для AMD64 можно только гадать.
Другая игра Race Driver GRID ,тоже 2008 года, нормально запускается на ХР и 2003. Начиная с Висты без танцев с бубном в неё не поиграешь.
Это только 2 примера, в реальности есть огромная масса софта под ХР и на современных осях он не запускается.

Добавлено:
Но давайте вернемся к теме. Как я вижу ситуацию? Во-первых не совсем мне понятно по поводу GRUB, будет ли от него толк в решении проблемы с GPT дисками. Если я правильно понимаю, то GRUB все равно NT5.1 будет загружать через NTLDR ,а NT6.0 он будет грузить через bootmgr. Никаких других способов не существует, т.е. GRUB не умеет напрямую работать ни с ntoskrnl.exe ,ни с winload.exe. Так я понимаю?
Поэтому энтузиастам,которые захотят допилить загрузчик GPT , нужно будет ковырять в отладчике только 2 файла: ntldr и winload.exe . Странно что китайцы до сих пор ничего не смастерили, или может просто не выкладывают на паблик.
Автор: botva0
Дата сообщения: 26.06.2014 10:42
ну проблемы совместимости всегда были и будут. я знаю немало хороших программ, которые были написаны тогда, когда висты или семерки даже в проекте не было, но, тем не менее, они отлично работают на новых системах. просто их руками писали.
что касается игр, то тут проблема скорее в драйверах, хотя кто его знает. вообще, настройка разных игр граничит с шаманством, иногда на соседних версиях драйверов можно получить прямо противоположные результаты, даже не меняя платформу.
но "вернемся к нашим баранам". многоступенчатая загрузка работает таким образом, что на каждом этапе результат работы предыдущего загрузчика полностью игнорируется. если груб должен загрузить ntloader, то он загрузит его в память по строго определенному адресу и передаст туда управление. после этого все происходит так же, как если бы груба и не было вовсе. т.е. груб имеет смысл только, как мультизагрузчик, в нашем же случае он бесполезен.
скорее всего висту можно было бы загрузить, накрапав простенький эмулятор uefi, т.е. загрузив дамп с нужными функциями биос в определенную область памяти. но это еще нужно проверить как работает вистовский загрузчик, умеет ли он использовать функции uefi биоса, иными словами, можно ли загрузить висту с gpt раздела на uefi биос. думаю, что 64-разрядную можно, но не проверял.
но с вистой эти все приседания беспонтовы, т.к. на уровне ядра виста мало отличается от семерки, да и отличается в худшую сторону, поэтому не стоит тратить на нее время.
что касается хр-шного загрузчика, то боюсь, что его не патчить надо, а переписывать. ведь те драйверы для файловых систем и структуры разметки диска, которые он содержит, ничего не знают про gpt, да и с адресацией могут быть приколы - т.е. нужно посчитать максимально допустимый размер системного раздела, думаю, что больше 2тб загрузчик не увидит.
не пойму, чего вы на китайцев уповаете, часть работы уже проделана программистами из paragon. взять хотя бы paragon gpt loader. но в итоге все равно все сводится к загрузке с mbr, как ни крути. так что не особо принципиально грузить ли с mbr раздела только загрузчик или всю систему целиком. при сегодняшних размерах флэш-накопителей можно легко загрузить с флешки всю систему и не страдать по этому поводу, вот как здесь описано. да и цена на 32-гиговые ssd сейчас достаточно сладкая. можно поставить систему на такой девайс и спокойно юзать gpt диск с драйверами от парагона. так что частичная загрузка с gpt скорее выдуманная проблема, да и не проблема, а так - зарядка для мозга. практический же эффект ее решения стремится к нулю, потому и решений нет.
Автор: FunnyLorax
Дата сообщения: 27.06.2014 22:39
Я говорю что обсуждать операционные системы, какая лучше, какая хуже - можно до бесконечности. У каждого свой вкус. Вечные эти холивары AMD vs Intel, C++ vs Delphi, Nvidia vs ATI, Windows vs Linux и так далее.. по большому счету пустая трата времени.
Большинство людей в интернете это упрямые,упертые существа, я тоже к ним отношусь, которым бесполезно навязывать иную точку зрения. Они уверены на 100% в своей правоте и плевать на всех хотели. Нельзя сказать ХР, Виста, 7, 8 хуже-лучше, каждая имеет свои плюсы и минусы. И если надо использовать массовый зоопарк всевозможного софта, как древнего ,так и нового, то без установки мультисистемного ПК не обойтись.
Другой простейший пример, разработка ПО. Я хоть и примитивные программки пока умею писать (по меркам Майкрософт или Adobe), но уже сколько раз сталкивался что переносишь откомпилированный файл на флешке на другой комп - и прога там не идет. Чтобы предусмотреть это, надо её запускать сразу под всеми системами. Это называется альфа-тестирование. По научному если.


Добавлено:
А по поводу ядра Виста\7, то оно здесь никакой роли не играет. Потому что:
1. bootmgr если вы обратите внимание используется общий, его версия зависит от самой новой ОС какая у вас установлена. Т.е. bootmgr от 8.1 умеет грузить все системы, bootmgr умеет грузить всё <=7 ,но не грузит 8.1 , bootmgr от Висты умеет грузить только Висту и Сервер 2008 и ничего кроме них.
2. bootmgr прекрасно видит диск GPT и файлы на нем. Проблема именно в файле winload.exe
Нужно чего-то с ним сделать,чтобы он прозрел и увидел все системные файлы ОС.
Автор: botva0
Дата сообщения: 30.06.2014 11:47
ну так это же и есть загрузчик ядра. он тупо не понимает gpt разбивку.
что с ним сделать? дописать нужные функции? сомневаюсь, что его можно пропатчить так просто. имхо, он лезет в mbr, а mbr отсутствует, т.к. на диске gpt таблица.

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

но, опять к "баранам". я прошу прощения, если вы это знаете, но на всякий случай запощу ссылки, необходимые для понимания процесса.
вот здесь до пункта 7.
и здесь более подробно.
а вот здесь очень подробно и с картинками, но много букв.
прочитав это вы легко сможете понять почему затыкается winload и почему не грузится ntloader.
применительно к висте: нужные нам функции находятся в ядре, а загрузчик не может загрузить ядро, ибо не понимает структуру диска. на картинках из третьего документа все наглядно нарисовано. как мы видим, в случае с efi, в памяти уже находятся нужные нам функции работы с дисками и загрузчик может к ним обратиться. в случае без efi, эти функции в эту же область памяти грузит ядро системы, подменяя старые дисковые функции, загруженные туда биосом. поэтому, когда загрузчик ядра вызывает дисковые функции и инициирует системное прерывание, то в ответ он получает код ошибки от старых функций, которые не понимают gpt таблицу.
как обычно, ответ на вопрос "как это исправить?" начинается с ответа на вопрос "почему оно не работает?"
я хорошо представляю себе почему оно не работает, поэтому не вижу легких путей исправления.
имхо, самый легкий - написание предзагрузчика, который будет грузить в память функции uefi биос и передавать управление загрузчику системы. ковырять код системного загрузчика интересно, но очень трудоемко, особенно, если не ты сам его писал. а ведь еще и работать надо. хотя энтузиасты всегда есть. будьте уверены, если кто-то его перепишет (именно перепишет, а не пропатчит), то мы об этом узнаем, ибо новость не останется за кадром.
Автор: FunnyLorax
Дата сообщения: 07.07.2014 15:14
Первые две ссылки читал раньше,а выдержку из книги Реестр Vista изучил с интересом.
Плохо что целиком нельзя скачать,только одну главу.
Автор: botva0
Дата сообщения: 07.07.2014 21:26

Цитата:
Первые две ссылки читал раньше,а выдержку из книги Реестр Vista изучил с интересом.
Плохо что целиком нельзя скачать,только одну главу.

про висту я специально поискал, т.к. речь была о ней и я вспомнил, что в этой книге процесс загрузки проиллюстрирован хорошо. вот здесь уже свежее издание, про семерку.
кстати, вопрос об отличиях загрузчиков висты и семерки там тоже затронут. но, видимо, функциям работы с дисками автор особого значения не придала, поэтому этот нюанс не освещен детально. зато там есть много другой полезной информации, которая может пригодиться желающим написать предзагрузчик для висты.
Автор: hilary31
Дата сообщения: 17.04.2015 11:20
Как получить доступ к UEFI BIOS Setting в операционной системе Windows
http://www.recoverlostpassword.com/windows-8-1/how-to-access-uefi-bios-setting-in-windows-8-1-and-8.html

Страницы: 1

Предыдущая тема: Компьютерная помощь в Милане (Италия) установка WINDOWS


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.