290

Сезам, грузися! Установка Windows XP на древний ноутбук без физических носителей

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

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

Но как обычно, беда вылезла, откуда не ждали.

После подкидывания блока питания оказалось, что винчестер девственно чист. Однако попытки загрузиться с флешки, внешнего диска, или даже внешнего флопика, результата не приносили — неумолимо вылезала надпись «Operating System Not Found», да и названия устройств в биосе не появлялись.

Беглый гуглёж показал — ранние серии X40 были очень часто подвержены внезапной смерти мультиконтроллера (ICH6). Буквально подышишь не в ту сторону, втыкая флешку — и вот у тебя уже нету ни USB, ни чего-нибудь ещё.

Добрые люди дали посмотреть на схему, и опасения подтвердились: ICH6 отвечает за связь с аудиокодеком, блютусом и USB. Как впоследствии выяснится, ни звук, ни блютус, ни USB тоже не работают.

Удивило, конечно, что SD-ридер тут висит на шине PCI, и поэтому работает. Впрочем, это я уже забегаю вперёд, ведь загрузиться с него нельзя.

SD-ридер на PCI-шине, рядом с сетевыми адаптерами

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:

Опция 150 для PXE не нужна, у меня она прописана для работы в локалке цисковских телефонов

Опция 150 для PXE не нужна, у меня она прописана для работы в локалке цисковских телефонов

В качестве сервера был поднят 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, впрочем, нашёлся другой способ:

  1. Берём образ Windows Server 2003 SP1 (важно: именно SP1) и вытаскиваем оттуда командой expand из папки I386 файлы

    1. STARTROM.COM

    2. SETUPLDR.EXE — переименовываем в NTLDR (именно из EXE, не из BIN!)

    3. NTDETECT.COM

  2. Кладём это всё в корень нашего TFTP-сервера, а рядом кладём образ самого Windows PE, собранный из того же Server 2003 SP1.

  3. Создаём файл с именем 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

Либо мышкой

Важно: протокол 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

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

Если все драйвера на месте, то дальше будет всё то же, что и при обычной загрузке с установочного компакт-диска. Ну а как дальше переустановить шиндошс — думаю, разберетесь :)

Автор текста: vladkorotnev (@akasaka)

Написано при поддержке Timeweb Cloud.

Больше интересных статей и новостей в нашем блоге на Хабре и телеграм-канале.

Реклама ООО «ТАЙМВЭБ.КЛАУД», ИНН: 7810945525

Пожалуйста, соблюдайте правила общения в блогах компаний

TECHNO BROTHER

2.1K постов13.7K подписчиков

Правила сообщества

1-Мы А-политическое сообщество. 2-Запрещено оскорбление: Администрации Пикабу, сообщества, участников сообщества а также родных, близких выше указанных.

3-Категорически запрещается разжигание межнациональной розни или действий, направленных на возбуждение национальной, расовой вражды, унижение национального достоинства, а также высказывания о превосходстве либо неполноценности пользователей по признаку их отношения к национальной принадлежности или политических взглядов. Мат - Нежелателен. Учитесь выражать мысли без матерщины

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества