Недавно в моём районе открылась новая комиссионка, и конечно же, я наведался туда в первый же день. Особо заинтересовавшего улова было немного, но среди прочего попался красивый, хоть и побитый жизнью, ноутбук — ThinkPad X40.

За каких-то 500 йен (260 рублей) такое чудо забрать было просто обязательно. Ну, подумаешь, софттач уже разложился — к счастью, он миновал стадию превращения назад в нефть, и сразу перешёл в состояние наждачки.

Но как обычно, беда вылезла, откуда не ждали.
После подкидывания блока питания оказалось, что винчестер девственно чист. Однако попытки загрузиться с флешки, внешнего диска, или даже внешнего флопика, результата не приносили — неумолимо вылезала надпись «Operating System Not Found», да и названия устройств в биосе не появлялись.
Беглый гуглёж показал — ранние серии X40 были очень часто подвержены внезапной смерти мультиконтроллера (ICH6). Буквально подышишь не в ту сторону, втыкая флешку — и вот у тебя уже нету ни USB, ни чего-нибудь ещё.
Добрые люди дали посмотреть на схему, и опасения подтвердились: ICH6 отвечает за связь с аудиокодеком, блютусом и USB. Как впоследствии выяснится, ни звук, ни блютус, ни USB тоже не работают.

Удивило, конечно, что SD-ридер тут висит на шине PCI, и поэтому работает. Впрочем, это я уже забегаю вперёд, ведь загрузиться с него нельзя.
В случае обычного ноутбука, можно было бы просто кинуть винчестер в USB-переходник и залить образ с другого компьютера, но и тут подстава — винчестер в нём 1.8 дюйма, и на шину IDE с напряжением до 3.3 вольта, поди найди такой адаптер. Вкладываться в покупку переходника, SSD и ещё адаптера с USB на mSata тоже не хотелось, ибо уже жаба задушит :-)
Однако, в нём всё ещё есть опция загрузки по сети через PXE, может, это и спасло бы?
❯ Сначала было слово, и слово это — DHCP
Первым делом я попробовал самое очевидное решение — iVentoy. Вебморда и все дела, конечно — стильно, модно, молодёжно, но ноутбук при этом успешно загружал PXE-бинарник и вешался. Видимо, с i386 проект уже не совместим. Придётся делать всё вручную.
Для того, чтобы загрузиться через PXE, DHCP-сервер должен отдать грузящемуся клиенту в ответе как минимум два параметра:
№ 66 — адрес/имя TFTP-сервера, с которого грузимся, в моём случае 192.168.1.228
№ 67 — имя файла на TFTP-сервере, которое будем загружать
В OpenWRT их можно указать в параметрах интерфейса локальной сети на вкладке DHCP Server:

В качестве сервера был поднят TFTPD64, а загрузчиком для пробы был закинут iPXE в сборке от проекта netboot.xyz (файл netboot.kpxe).
Пробуем грузиться и... почему-то ноутбук всё равно усердно пытается найти TFTP-сервер на роутере.
Тут я перепробовал кучу разных настроек, но, видимо, моя версия OpenWRT забагована и никакие попытки прописать DHCP Next-Server другими способами не прокатили.
К счастью, сам файл iPXE весьма небольшой, поэтому я просто установил на роутер atftpd и положил его в /srv/tftp/netboot.kpxe.

После этого ноутбук загрузился в iPXE, показал меню выбора образа, из которых грузились на 512 метрах оперативки далеко не все, и я даже зачем-то установил на него OpenBSD, но быстро его поломал.
❯ Попробуем туда за-PE-реться
Дальше были многочисленные попытки загрузить хоть какой-то ISO-образ через memdisk. В общем случае это делается следующей последовательностью команд в iPXE Shell:
kernel memdisk
initrd http://192.168.1.228:3939/bartPE.iso
boot
Однако, все имеющиеся у меня установочники падали даже не доходя до загрузки, собственно, ОС из образа, и я толком не разобрался, что делал не так. Для загрузки конкретно же Windows PE, впрочем, нашёлся другой способ:
-
Берём образ Windows Server 2003 SP1 (важно: именно SP1) и вытаскиваем оттуда командой
expandиз папкиI386файлыSTARTROM.COMSETUPLDR.EXE— переименовываем вNTLDR(именно из EXE, не из BIN!)NTDETECT.COM
Кладём это всё в корень нашего TFTP-сервера, а рядом кладём образ самого Windows PE, собранный из того же Server 2003 SP1.
-
Создаём файл с именем
WINNT.SIF, в который пишем[SetupData] BootDevice = "ramdisk(0)" BootPath = "\i386\System32\" OsLoadOptions = "/noguiboot /fastdetect /minint /rdexportascd /rdpath=WINPE16.ISO"где WINPE16.ISO — название образа Windows PE.
Если вам влом этим всем заниматься — можете забрать готовую папку с архиворга :-)
После этого, если конфигурация DHCP у вас работает, можно просто указать STARTROM.COM в опции №67, и система должна загрузиться. Если же у вас всё так же сломано, как и у меня, то грузимся в IPXE Shell и выполняем команды:
dhcp net0
set net0/next-server 192.168.1.228
chain tftp://192.168.1.228/STARTROM.COM
После чего, в теории, наш компьютер будет медленно и печально вытягивать ISO-файл по UDP.



Это может быть полезно, например, чтобы вытащить какие-то важные файлы с машины эпохи XP, которая не грузится, но ещё как-то шевелится. Однако, для установки, как оказалось, есть способ ещё проще, быстрее и надёжнее.
❯ Serva — всему голова
Оказывается, есть современный, более надёжный инструмент «всё в одном» специально для Windows: Serva.
Он позволяет развернуть установку Windows XP по сети с куда меньшим геморроем.
Сначала скачиваем дистрибутив, распаковываем и запускаем. Окно по дефолту будет пустым и загадочным — нужно нажать на иконку в строке заголовка, а затем Settings:

На вкладке TFTP включаем сервер и создаём для него новую папку (без всего хлама из прошлых шагов)

На вкладке DHCP можно сделать по-разному:
Если соединяем комп с сервером витухой напрямую, то включаем DHCP Server
Если, как у меня, всё идёт в общую локалку, то включаем proxyDHCP
Также не забываем включить и BINL — через него будут, собственно, загружаться системные файлы.

Нажимаем OK и затем закрываем Serva полностью.
Далее тысячу раз проверяем файрвол, что у нас не торчит голой задницей порт SMB в интернет, а затем идём в PowerShell и выполняем:
Enable-WindowsOptionalFeature -Online -FeatureName SMB1Protocol -All -NoRestart
Либо мышкой
Control Panel -> Turn Windows features on or off -> SMB 1.0/CIFS File Sharing Support: включить SMB 1.0/CIFS Server

Важно: протокол SMBv1 дырявый, и лучше это дело после установки откатить сразу назад, либо проворачивать это всё на виртуалке.
Затем идём в Панель управления → Network and Sharing Center → Advanced Sharing Settings и выключаем Password protected Sharing

После чего перезагружаем компьютер.
Возвращаемся к папке, которую создали для TFTP-сервера в Serva, и открываем её свойства. На вкладке Sharing жмём на Advanced Sharing и делаем её доступной с названием, дословно, WIA_RIS_SHARE.

После чего на той же вкладке жмём на просто Share... и даём доступ на чтение для Guest и Everyone:

Важно: сделать то же самое через Advanced Sharing — не прокатит.
Затем в папке создаём подпапку WIA_RIS, в которой — любую другую, но без пробелов и спецсимволов. Я, например, создал папку WXPJpn. В неё перетаскиваем содержимое всего нашего установочного диска с Windows XP.

Загрузиться в теории это сможет уже сейчас, но установиться не сможет — сети-то нету. Поэтому создаём подпапку $OEM$\$1\Drivers\NIC и вбрасываем туда драйвера от сетевой карты нашего Thinkpad'а.

Запускаем Serva ещё раз. Должны побежать логи, но все без ошибок:

Теперь, опять же, если вы используете DHCP-сервер внутри Serva, или в вашей сети опции 66/67 работают корректно — можно прописать в опцию 66 адрес сервера, на котором Serva запущена, а в 67 — строку \BM\PXESERVA\BIOS\pxeserva.0, и грузиться.
В моём же поломанном случае нужно было зайти снова в папку TFTP-сервера и скопировать всё из BM\PXESERVA\BIOS\*.* в её корень. В итоге получилась такая структура:

И как в прошлый раз — загружаюсь в iPXE, раздаваемый роутером, а затем выполняю команды:
dhcp net0
set net0/next-server 192.168.1.228
chain tftp://192.168.1.228/PXESERVA.0

Наблюдаю на экране меню с заветным пунктом, значит всё настроено успешно!


Если все драйвера на месте, то дальше будет всё то же, что и при обычной загрузке с установочного компакт-диска. Ну а как дальше переустановить шиндошс — думаю, уж не на хабре рассказывать! Зато, может быть, я ещё расскажу о каких-нибудь таких находках и экспериментах в своём лунном телеграме :-)
Новости, обзоры продуктов и конкурсы от команды Timeweb.Cloud - в нашем Telegram-канале ↩
Перед оплатой в разделе «Бонусы и промокоды» в панели управления активируйте промокод и получите кэшбэк на баланс.
Комментарии (34)

nickston
12.11.2025 08:44У меня на древнем ноуте была примерно такая же ситуация. Были юсб порты но ноут с них не умел грузиться. Так же сделал загрузку по сети, но одним из пунктов сделал загрузку не с хдд а с флешки, и все. Ноут нормально запустил установку с флешки.

vladkorotnev Автор
12.11.2025 08:44А через что это делается? Я пытался подсунуть plop boot в надежде запуститься с карты памяти, но увы.

nickston
12.11.2025 08:44TFTPD там и dhcp и tftp. галка совместимость pxe и папку корня. В корень pxelinux.0 и тд. там свое меню и все

vladkorotnev Автор
12.11.2025 08:44Вот кстати говоря эта самая галка у меня и ломала загрузку винды по второму описанному способу из статьи — загрузчик просто не мог найти ntldr, не знаю почему именно.

CEBEP51
12.11.2025 08:44Я перепрошивал USB флешку в CD привод. Для этого нужна древняя разборная флешка. Надо разобрать флешку, посмотреть номер чипа. По номеру скачать соответствующую утилиту и перепрошить флешку. Теперь в BIOS появляется оптический привод и можно ставить систему.

nickston
12.11.2025 08:44Это вариант, но не для древних, это уже сильно поновее так могут

vladkorotnev Автор
12.11.2025 08:44Да фиг его знает, у этого тинкпада вполне себе есть пункт USB-DVD в биосе, просто как обычно был нюанс.
Ранее этим годом устанавливал винду на аппарат для фоновой музыки, у которого форматом аудиодиска был подписанный сертификатом загрузочник с линуксом. Поэтому на загрузочник винды 98 он ругался и выплёвывал. Но вот закрыть USB-FDD они забыли, поэтому дос 7, fdisk, mscdex, а дальше уже по накатанной. Биос датирован был 2001 годом при этом.

domix32
12.11.2025 08:44Интересно можно ли таким макаром накатить какую-нибудь ReactOS

vladkorotnev Автор
12.11.2025 08:44Сомнительно, ибо серва использует какой-то хитрый механизм из винды для корпоративного деплоя. Но через memdisk может и прокатит.

domix32
12.11.2025 08:44Я имел ввиду в принципе через сеть, не обязательно конкретно этим же механизмом.

TemArtem
12.11.2025 08:44Через Serva скорее всего нет, она заточена под механизмы сетевой установки именно Windows (RIS/WDS), а вот через iPXE и memdisk - вполне возможно. Если ISO-образ ReactOS умеет загружаться как "live CD", то memdisk должен его подхватить

TemArtem
12.11.2025 08:44Вся эта возня с PXE - это прекрасно, но не проще ли было просто вытащить винчестер?) Да, он редкий, 1.8" IDE, но адаптеры на алике стоят недорого, заказал бы за 300 рублей переходник IDE 1.8" -> USB, спокойно залил бы образ на любом другом компе и вставил обратно, получилось бы в сто раз быстрее и надежнее. Но конечно не так интересно)

vladkorotnev Автор
12.11.2025 08:44И нафига потом этот одноразовый переходник в хозяйстве нужен будет? %)

kma21
12.11.2025 08:44За тем же, зачем этот древний ноутбук + потраченное на него время.

vladkorotnev Автор
12.11.2025 08:44Ну, аппарат на ивентах в общей зоне стоять будет, а время — на то, чтобы разобраться наконец, как pxe работает, и иметь наготове сервак для раскатки виндов без болванок.
Тратить же деньги и ждать месяц переходник, который нужен будет один раз в жизни, ибо никто больше такие извратные диски не ставил — ну такое себе... Если вкладываться, то тогда уж в msata, он хотя бы ещё сколько-то лет актуален будет.
Жаба давит, проще говоря!

old_gamer
12.11.2025 08:44Этот древний ноутбук, полагаю, нужен как раз для того, чтобы поиграться с древний нетбут и подобные штуки. Переходники не интересно :)

VT100
12.11.2025 08:44Лет 15 назад игрался с ПК не поддерживающим загрузку по USB. Основными вехами пути стали:
GRUB на дискете;
его модули xHCI ("драйвер" хост-контроллера, USB (собственно обмен данными) и USBMS (реализация Mass Storage class).

ED-209
12.11.2025 08:44Тоже проходил через подобное лет 15 назад. Был защищенный ноутбук Panasonic CF-29. CD/DVD-ROM в комплекте не досталось, а USB ни разу не загрузочные.
Выручила тогда эта статья (2007г):

IvUyr
12.11.2025 08:44Судя по интернету, в ноуте таки есть PCMCIA. Можно было бы взять PCMCIA-карту контроллер USB, и попробовать загрузится через неё. В отличии от упомянутого выше моста (zif?)IDE-USB, PCMCIA-карта подойдёт для любого ноута со слотом PCMCIA, где нет USB, они отгорели либо же он только один (мой IBM Thinkpad 380z передаёт привет).

vladkorotnev Автор
12.11.2025 08:44Самое весёлое, что у меня был PCMCIA-CF ATA адаптер в загашниках, валялся лет пять. Но на этот новый год при зачистке шкафов подумал, что уже хз сколько лет PCMCIA в хозяйстве не было, и отдал его товарищу, который старым железом регулярнее меня занимается. А тут оно вон как вышло %)

ncix
12.11.2025 08:44❯ Serva — всему голова
Оказывается, есть современный, более надёжный инструмент «всё в одном» специально для Windows: Serva.
Он позволяет развернуть установку Windows XP по сети с куда меньшим геморроем.
По объему статьи, выглядит так что с Serva подпрыгиваний нужно гораздо больше, чем первый описанный вариант ))

Anywake
12.11.2025 08:44А зачем вы копипастите некростатьи технического плана на развлекательный сайт Пикабу? Эта реклама денег стоит, какой в именной этой статье смысл там?
ЗЫ посмотрел цены, деньги у вас есть... да.

bodyawm
12.11.2025 08:44У меня есть уставший-уставший Thinkpad на P II, который я пару лет назад купил за копейки. Как же обидно, что он вроде работает, но не проходит POST и жалуется на неверный пароль. Я сдампил EEPROM'ку, там вроде всё сходится, занулил - тоже самое. Такое чувство будто обрыв где-то от мульта/моста до EEPROM :(

mihmig
12.11.2025 08:44А можно ли через PXE не установить систему, а запустить (на современном компе) с гигабитной сетевой картой.
Например простенький Linux чтобы использовать компьютер в качестве простого рабочего места (нет диска - нет проблем)...
vladkorotnev Автор
12.11.2025 08:44Всякие тонкие клиенты зачастую именно так и работают. Загрузчик по PXE, оттуда ядро и рамдиск, корневая ФС — например, NFS, и поехали
key08rus
Забавное совпадение. Занимался вчера почти тем же самым, но на IBM T22 и под Linux
vladkorotnev Автор
По ощущениям, линух куда проще такое извращение переживает, и гайд бы сократился раза в два
key08rus
Как выяснилось, не совсем. На старых (точнее, древних) клиентах есть некоторые ошибки в реализации PXE. Лишние символы в запрашиваемом имени файла.
vladkorotnev Автор
Хотя бы так. Тут тоже, может быть, дело не в роутере, а в клиенте, который всегда на default gateway ищет сервер.
И ЕМНИП попадались клиенты, которые вообще вместо TFTP требуют что-то там на нетвари, но тут уже не помню %)
key08rus
В роутере. Точнее, в DHCP-сервере. Собственно, как раз в опции next-server