Войти

Показать полную графическую версию : [решено] Bcdedit и 2 wim проблема.


Dark Engel
13-04-2010, 11:11
Коллеги прошу помощи. Бьюсь третий день но Bcdedit упорно считает меня индусом и не хочет делать то что я прошу.
Итак: Есть два образа Wim один x86 второй x64.
Вопрос: Как сделать меню bcd с их загрузкой.

Делаю так:
bcdedit /createstore \pxe\BCD
bcdedit /store \pxe\bcd /create {ramdiskoptions} /d "Ramdisk options"
bcdedit /store \pxe\bcd /set {ramdiskoptions} ramdisksdidevice boot
bcdedit /store \pxe\BCD /set {ramdiskoptions} ramdisksdipath \Boot\boot.sdi
bcdedit /store \pxe\BCD /create /d "Windows x86" /application osloader
получаю GUID
bcdedit /store \pxe\BCD /create /d "Windows x64" /application osloader
получаю GUID2

bcdedit /store \pxe\BCD /set {GUID} systemroot \Windows
bcdedit /store \pxe\BCD /set {GUID} detecthal Yes
bcdedit /store \pxe\BCD /set {GUID} winpe Yes
bcdedit /store \pxe\BCD /set {GUID} osdevice ramdisk=[boot]\Boot\WinPE.wim,{ramdiskoptions}
bcdedit /store \pxe\BCD /set {GUID} device ramdisk=[boot]\Boot\WinPE.wim,{ramdiskoptions}

bcdedit /store \pxe\BCD /set {GUID2} systemroot \Windows
bcdedit /store \pxe\BCD /set {GUID2} detecthal Yes
bcdedit /store \pxe\BCD /set {GUID2} winpe Yes
bcdedit /store \pxe\BCD /set {GUID2} osdevice ramdisk=[boot]\Boot\WinPE2.wim,{ramdiskoptions}
bcdedit /store \pxe\BCD /set {GUID2} device ramdisk=[boot]\Boot\WinPE2.wim,{ramdiskoptions}

bcdedit /store \pxe\BCD /create {bootmgr} /d "Windows PE loader"
bcdedit /store \pxe\BCD /set {bootmgr} timeout 30
bcdedit /store \pxe\BCD /displayorder {GUID} {GUID2}

В итоге. Первый пункт работает, а второй вылетает с ошибкой 0xc000000f. + оба пункта называются Ramdisk options, а не указанными названиями.
Вопрос: что я делаю не так. Need Help.

P/S Все это предназначено для загрузки с pxe.
Заранее спасибо за помощь.

Решение тут http://forum.oszone.net/post-1393074-9.html

okshef
13-04-2010, 12:18
В принципе, никогда таких глобальных задач не решал, но давайте попробуем разобраться вместе. Первое: что является источником для выполнения именно этих команд. Второе, оно конечно муторно, но все-таки, дайте комментарий (как вы его видите) к каждой команде. (То, что BCD находится в \pxe\bcd я понимаю :))
Выполните команду bcdedit /store \pxe\bcd /enum active и посмотрите, какие записи являются активными.
Затем bcdedit /store \pxe\bcd /enum all
Сравните. Можете вывести их в файл, посмотрим.

Dark Engel
13-04-2010, 13:11
Зачем все это сделано. Замена RIS с намного большей гибкостью.
Имеем
сервер dhcp в котором прописана загрузка pxelinux.0
далее загружается pxelinux (из состава syslinux) меню isolinux (утилиты, linux, windows итд)
далее при выборе пункта нужно сделать запуск bcd с выбором Windows x86 или x64. Ибо загрузчик pxeboot.n12 из висты PE что для x86 что для x64 ищет файл BCD. То есть нужно меню bcd.

Сумбурно получилось описать. Если что уточняйте.

Результат команды bcdedit /store \pxe\bcd /enum active

C:\Windows\system32>bcdedit /store d:\pxe\bcd /enum active

Диспетчер загрузки Windows
--------------------
идентификатор {bootmgr}
description WindowsPE Loader
displayorder {17128c03-46c4-11df-8f78-0026221bc174}
{771d7171-46c4-11df-8f78-0026221bc174}
timeout 10

Загрузка Windows
-------------------
идентификатор {17128c03-46c4-11df-8f78-0026221bc174}
device ramdisk=[boot]\boot\WinPE.wim,{ramdiskoptions}
description Windows x86
osdevice ramdisk=[boot]\boot\WinPE.wim,{ramdiskoptions}
systemroot \Windows
detecthal Yes
winpe Yes

Загрузка Windows
-------------------
идентификатор {771d7171-46c4-11df-8f78-0026221bc174}
device ramdisk=[boot]\boot\WinPex64.wim,{ramdiskoptions}
description Windows x64
osdevice ramdisk=[boot]\boot\WinPex64.wim,{ramdiskoptions}
systemroot \Windows
detecthal Yes
winpe Yes

Результат команды bcdedit /store \pxe\bcd /enum all
C:\Windows\system32>bcdedit /store d:\pxe\bcd /enum all

Диспетчер загрузки Windows
--------------------
идентификатор {bootmgr}
description WindowsPE Loader
displayorder {17128c03-46c4-11df-8f78-0026221bc174}
{771d7171-46c4-11df-8f78-0026221bc174}
timeout 10

Загрузка Windows
-------------------
идентификатор {17128c03-46c4-11df-8f78-0026221bc174}
device ramdisk=[boot]\boot\WinPE.wim,{ramdiskoptions}
description Windows x86
osdevice ramdisk=[boot]\boot\WinPE.wim,{ramdiskoptions}
systemroot \Windows
detecthal Yes
winpe Yes

Загрузка Windows
-------------------
идентификатор {771d7171-46c4-11df-8f78-0026221bc174}
device ramdisk=[boot]\boot\WinPex64.wim,{ramdiskoptions}
description Windows x64
osdevice ramdisk=[boot]\boot\WinPex64.wim,{ramdiskoptions}
systemroot \Windows
detecthal Yes
winpe Yes

Настройка параметров Ramdisk
---------------------
идентификатор {ramdiskoptions}
description Ramdisk options
ramdisksdidevice boot
ramdisksdipath \boot\boot.sdi

Раньше не было необходимости в x64 и был bcd сделанный по этой статье PXE (http://sysadminman.net/blog/2007/pxe-boot-winpe-2-vista-using-linux-as-the-pxe-server-8)

Boa Soft
13-04-2010, 13:42
В итоге. Первый пункт работает, а второй вылетает с ошибкой 0xc000000f. »

Я делал загрузочным внешний HDD под server 2008 r2. Наткнулся на ту же ошибку. Пока по советам "ведущих собаководов" не переразбил и отформатировал винчестер по x64 семеркой и под ней же скопировал все файлы. После этого загрузка пошла нормально. Может это вам поможет.

Dark Engel
13-04-2010, 14:14
Я делал загрузочным внешний HDD под server 2008 r2. Наткнулся на ту же ошибку. Пока по советам "ведущих собаководов" не переразбил и отформатировал винчестер по x64 семеркой и под ней же скопировал все файлы. После этого загрузка пошла нормально. Может это вам поможет. »

Проблема к сожалению в том что все файлы для загрузки находятся на linux сервере. То есть рабочая станция получает с dhcp адрес RIS сервера и оттуда загружает меню. Далее производится выбор установки Windows и должна загрузится WinPE на базе Vista. Ранее когда был bcd на один WinPE все было пучком. Теперь добавился пункт для загрузки Winpe2. На сей момент ситуация следующая. Первый пункт (старый winPE) грузится как и раньше. А вот новый пункт (WinPe2) шлет курить help с указанной выше ошибкой.

okshef
14-04-2010, 08:16
Если руководствоваться статьей Краткое руководство: развертывание образа с помощью технологии PXE (http://technet.microsoft.com/ru-ru/library/cc722358(WS.10).aspx), то все должно получаться. Попробуйте добавить сведения по п.3 - настройка отладчика ядра. Правда не знаю, поможет ли. Буду думать.

Dark Engel
14-04-2010, 09:47
Спс за ссылочку. Сейчас попробую.

Dark Engel
14-04-2010, 10:46
Гм... странно не могу выполнить вот эту команду:
Bcdedit –store c:\BCD –create {bootmgr} /d “Windows VISTA BootManager” /inherit {dbgsettings}
если убрать /inherit {dbgsettings} то команда выполена успешно. Но результат все равно тот же. Первый пункт грузится, а второй нет.

Dark Engel
15-04-2010, 10:00
Я нашел решение. Все работает вот с таким листингом

BCD.cmd
bcdedit -createstore %1\BCD
bcdedit -store %1\BCD -create {ramdiskoptions}
bcdedit -store %1\BCD -set {ramdiskoptions} ramdisksdidevice Boot
bcdedit -store %1\BCD -set {ramdiskoptions} ramdisksdipath \Boot\boot.sdi
for /F "tokens=2" %%i in ('bcdedit -store %1\BCD -create /d "Windowsx86" /application osloader') do set guid=%%i
bcdedit -store %1\BCD -set %guid% systemroot \Windows
bcdedit -store %1\BCD -set %guid% detecthal Yes
bcdedit -store %1\BCD -set %guid% winpe Yes
bcdedit -store %1\BCD -set %guid% osdevice ramdisk=[Boot]\Boot\WinPE.wim,{ramdiskoptions}
bcdedit -store %1\BCD -set %guid% device ramdisk=[Boot]\Boot\WinPE.wim,{ramdiskoptions}
for /F "tokens=2" %%j in ('bcdedit -store %1\BCD -create /d "Windowsx64" /application osloader') do set guid2=%%j
bcdedit -store %1\BCD -set %guid2% systemroot \Windows
bcdedit -store %1\BCD -set %guid2% detecthal Yes
bcdedit -store %1\BCD -set %guid2% winpe Yes
bcdedit -store %1\BCD -set %guid2% osdevice ramdisk=[Boot]\Boot\WinPEx64.wim,{ramdiskoptions}
bcdedit -store %1\BCD -set %guid2% device ramdisk=[Boot]\Boot\WinPEx64.wim,{ramdiskoptions}
bcdedit -store %1\BCD -create {bootmgr} /d "Windows VISTA BootManager"
bcdedit -store %1\BCD -set {bootmgr} timeout 10
bcdedit -store %1\BCD -set {bootmgr} displayorder %guid% %guid2%

Строка запуска bcd.cmd диск:\путь на папку




© OSzone.net 2001-2012