Проблема при загрузке startrom.0 через grub

Обсуждение статьи "Установка Windows XP по сети. RIS, но не Microsoft"

Модераторы: editor, Devils

Проблема при загрузке startrom.0 через grub

Сообщение linerty » 06 окт 2010, 16:24

Доброго времени суток всем.
Образовалась проблема.

Есть сервер, на котором настроена мультизагрузка через grub всевозможных полезностей (Acronis, MHDD, WinPE и пр).
В один прекрасный день захотелось ко всему этому изобилию прикрутить ещё и установку Windows XP по сети. По всевозможным справкам и советам bp инета были созданы соответствующие каталоги и настроены TFTPD32, RIS-Linux.

Теперь по существу:
1) Если DHCP отдаёт в качестве загрузчика startrom.0 или pxelinux (а затем pxelinux-ом загрузка startrom.0) то установка Windows по сети происходит нормально.
Кусок конфига pxelinux:
Код: Выделить всё
 label WinXP Install
   kernel startrom.0

Log TFTPD (только последняя часть, чтобы легче читалось):
Код: Выделить всё
Read request for file <startrom.0>. Mode octet [06/10 17:11:41.333]
OACK: <tsize=22454,blksize=1408,> [06/10 17:11:41.333]
Using local port 1755 [06/10 17:11:41.333]
<startrom.0>: sent 16 blks, 22454 bytes in 0 s. 0 blk resent [06/10 17:11:41.349]
Connection received from 172.26.8.203 on port 2092 [06/10 17:11:41.396]
Read request for file <ntldr>. Mode octet [06/10 17:11:41.396]
OACK: <blksize=1456,> [06/10 17:11:41.396]
Using local port 1756 [06/10 17:11:41.396]
<ntldr>: sent 166 blks, 241664 bytes in 0 s. 0 blk resent [06/10 17:11:41.614]
Connection received from 172.26.8.203 on port 61922 [06/10 17:11:41.771]
Read request for file <BOOTFONT.BIN>. Mode octet [06/10 17:11:41.771]
OACK: <blksize=1432,tsize=4952,> [06/10 17:11:41.771]
Using local port 1757 [06/10 17:11:41.771]
<BOOTFONT.BIN>: sent 4 blks, 4952 bytes in 0 s. 0 blk resent [06/10 17:11:41.771]
Connection received from 172.26.8.203 on port 61923 [06/10 17:11:41.786]
Read request for file <ntdetect.com>. Mode octet [06/10 17:11:41.802]
OACK: <blksize=1432,tsize=47564,> [06/10 17:11:41.802]
Using local port 1758 [06/10 17:11:41.802]
<ntdetect.com>: sent 34 blks, 47564 bytes in 0 s. 0 blk resent [06/10 17:11:41.864]
Connection received from 172.26.8.203 on port 61924 [06/10 17:11:45.864]
Read request for file <winnt.sif>. Mode octet [06/10 17:11:45.864]
OACK: <blksize=1432,tsize=1595,> [06/10 17:11:45.864]
Using local port 1759 [06/10 17:11:45.864]
<winnt.sif>: sent 2 blks, 1595 bytes in 0 s. 0 blk resent [06/10 17:11:45.880]
...


2) Если DHCP отдаёт в качестве загрузчика grub (а затем grub-ом загрузка startrom.0) то установка Windows по сети прерывается в тот момент когда виндовый установщик должен получить файл winnt.sif. При этом установщик сообщает об ошибке: "INF-файл <каракули> испорчен или отсутствует, состояние 21". Причём эти <каракули> каждый раз разные, похожи на мусор из оперативной памяти с мордочками и фигурками.
Кусок конфига grub:
Код: Выделить всё
 title Install Windows XP
 pxe keep
 chainloader --raw (pd)/startrom.0


Также в конфиг подставлялись ключи chainloader --force, --force --raw.
Использовал chainloader вместо kernel потому, что такой вариант дан в справке к grub и т.к.команда kernel наотрез отказывалась грузить startrom.0 ссылаясь на не поддерживаемый формат.

Log TFTPD (только последняя часть, чтобы легче читалось):
Код: Выделить всё
Read request for file </startrom.0>. Mode octet [06/10 17:08:14.036]
OACK: <blksize=1408,> [06/10 17:08:14.036]
Using local port 1637 [06/10 17:08:14.036]
<startrom.0>: sent 16 blks, 22454 bytes in 0 s. 0 blk resent [06/10 17:08:14.052]
Connection received from 172.26.8.203 on port 2092 [06/10 17:08:14.099]
Read request for file <ntldr>. Mode octet [06/10 17:08:14.099]
OACK: <blksize=1456,> [06/10 17:08:14.099]
Using local port 1638 [06/10 17:08:14.099]
<ntldr>: sent 166 blks, 241664 bytes in 0 s. 0 blk resent [06/10 17:08:14.255]
Connection received from 172.26.8.203 on port 61715 [06/10 17:08:14.396]
Read request for file <BOOTFONT.BIN>. Mode octet [06/10 17:08:14.396]
OACK: <blksize=1432,tsize=4952,> [06/10 17:08:14.396]
Using local port 1639 [06/10 17:08:14.396]
<BOOTFONT.BIN>: sent 4 blks, 4952 bytes in 0 s. 0 blk resent [06/10 17:08:14.411]
Connection received from 172.26.8.203 on port 61716 [06/10 17:08:14.427]
Read request for file <ntdetect.com>. Mode octet [06/10 17:08:14.427]
OACK: <blksize=1432,tsize=47564,> [06/10 17:08:14.427]
Using local port 1640 [06/10 17:08:14.427]
<ntdetect.com>: sent 34 blks, 47564 bytes in 0 s. 0 blk resent [06/10 17:08:14.489]
Connection received from 172.26.8.203 on port 61717 [06/10 17:08:18.505]
Read request for file <ѓ<ќ?w>. Mode octet [06/10 17:08:18.505]
File <ѓ<ќ?w> : error 123 in system call CreateFile Синтаксическая ошибка в имени файла, имени папки или метке тома. [06/10 17:08:18.505]
TIMEOUT waiting for Ack block #2  [06/10 17:08:24.380]
TIMEOUT waiting for Ack block #2  [06/10 17:08:26.411]


Из всего вышесказанного следует, что либо в справке не всё написано, либо grub неправильно работает с загрузчиком startrom.0. Т.е grub "коцает" у startrom.0 сегмент данных, либо его не загружает целиком.
linerty
 
Сообщения: 4
Зарегистрирован: 06 окт 2010, 15:19

Re: Проблема при загрузке startrom.0 через grub

Сообщение linerty » 06 окт 2010, 16:36

Забыл что в теге "Code" не работает подсветка, так что вместо "<ѓ<ќ?w>" должно быть "<ѓ<ќ?w>". В последнем логе TFTPD. Предыдущее сообщение подправить не могу.
Последний раз редактировалось linerty 14 окт 2010, 22:21, всего редактировалось 1 раз.
linerty
 
Сообщения: 4
Зарегистрирован: 06 окт 2010, 15:19

Re: Проблема при загрузке startrom.0 через grub

Сообщение linerty » 14 окт 2010, 22:18

Ну раз никто не знает придётся отвечать себе самому.
Основная статья _http://diddy.boot-land.net/pxe/files/xp_hack.htm
Общий смысл в необходимости использования ntdetect.com, setupldr.ex_ and startrom.n1 из дистрибутива Windows 2003 Server. Winnt.sif свой.
1) startrom.n1_ распаковывается и переименовывается в xp001.0 (Обязательно расширение *.0).
В hex-редакторе заменить все вхождения ntldr на xp001.
2) setupldr.ex_ распаковывается и переименовывается в xp001 (обязательно без расширения).
В hex-редакторе заменить все вхождения winnt.sif на xp001.sif.
В hex-редакторе заменить все вхождения ntdetect.com на xp001ntd.com.
3) ntdetect.com переименовывается в xp001ntd.com (обязательно расширение 8.3).
4) winnt.sif переименовывается в xp001.sif (обязательно расширение 5.3).

И всё это нужно поместить соответственно в корневой каталог TFTPD.
В общем так всё работает отлично.
linerty
 
Сообщения: 4
Зарегистрирован: 06 окт 2010, 15:19

Re: Проблема при загрузке startrom.0 через grub

Сообщение Devils » 14 окт 2010, 23:09

Стесняюсь спросить, а причем здесь груб? Вы почти в точности описали этот процесс. Только в том случае, там немного проще, там все вхождения редактирует скрипт.
Devils
 
Сообщения: 231
Зарегистрирован: 25 июн 2009, 16:40
Откуда: Подмосковье

Re: Проблема при загрузке startrom.0 через grub

Сообщение linerty » 15 окт 2010, 11:34

Devils писал(а):Стесняюсь спросить, а причем здесь груб? Вы почти в точности описали этот процесс. Только в том случае, там немного проще, там все вхождения редактирует скрипт.


Я знаю данный метод, он был мною прочитан и усвоен, только в конкретном случае была совсем другая задача и проблема.

В первом посте всё подробно описано.
1) Имеется дистрибутив винды настроенный для установки по сети.
2) Если загрузочные файлы от XP и имеют оригинальные имена (startrom.0, ntldr, ntdetect.com, winnt.sif) то:
a) Выбираю в меню загрузчика pxelinux установку виндовс (startrom.0), она устанавливается без проблем.
b) Выбираю в меню загрузчика grub установку виндовс (startrom.0), она на запросе winnt.sif серверу tftpd присылает каракули.
3) Если загрузочные файлы взяты из Windows 2003 (с XP-ными не пробовал) имеют имена (xp001.0, xp001, xp001ntd.com, xp001.sif) то:
a) Выбираю в меню загрузчика pxelinux установку виндовс (xp001.0), она устанавливается без проблем.
b) Выбираю в меню загрузчика grub установку виндовс (xp001.0), она устанавливается без проблем.

Почему смена имени файла приводит к таким колоссальным переменам понятия не имею. Но именно так и работает сейчас.
На форуме, кстати, подобный вопрос задавался и остался без ответа. Вот тут.
А в рускоязычном интернете на ошибку 21 только про txtsetup.sif разговоры ведут, поэтому пришлось на буржуйских искать.


И если быть точным загрузчик Grub4Dos.
linerty
 
Сообщения: 4
Зарегистрирован: 06 окт 2010, 15:19


Вернуться в Установка Windows XP по сети. RIS, но не Microsoft

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1

cron
@Mail.ru