Вызвали тут к клиенту, у которого на станке с ЧПУ отвалилось рабочее место оператора, оказалось, накрылась винда. АРМ представляло из себя весьма древний комп с Windows XP и совтом для станка на борту. Именно, не софтом, а совтом, sovt’ом когда-то называли софт, разработанный в СССР, так и тут — второй раз за неделю сталкиваюсь с колхозом, написанным сумрачным российским гением под сумрачные российские разработки в лохматых годах.
Машина оказалась не раритетной, но уже винтажной.
Сетевая карта внешняя, PCI, без PXE-загрузчика, так что загрузка по сети отмелась сразу же. Слава Ктулху, с флэшек оно все-таки грузилось.
Везти машину ко мне домой или в офис смысла не было. На флешках, взятых с собой, была мультизагрузочная, подготовленная с помощью YUMI с Acronis Disk Director, Hiren’s Boot CD и виндой XP на борту, но оказалось, что для установки винды из образа в машине мало оперативной памяти, распаковывать его некуда.
Но Hiren’s Boot CD после некоторого шаманства, загрузился с WinPE, удалось слить совтину от станка.
Образ винды XP был с собой, чистый дистрибутив, перенесенный с помощью Rufus на флэшку, но это тоже не помогло, после копирования файлов в текстовом режиме установщика, на этой машине установщик винды, терял флэшку и сыпался с невнятными ошибками.
Но тут я вспомнил! XP можно установить из DOS-окружения! А почему бы и не попробовать! DOS-то мы раздобудем!
Сначала, с помощью Rufus я сделал флэшку с Hiren’s Boot CD (ссылки на софт см. в конце заметки), на нее записал в каталог DISTR
распакованный из образа ISO дистирибутив Windows XP, драйвера (в данном случае, пришлось воспользоваться старой версией DriverPack Solution), необходимый софт от АРМ станка (был слит заранее, вам не надо).
Проверяем, чтоб в настройках Rufus была выставлена файловая система FAT32 и MBR для компьютеров с BIOS или UEFI-CSM.
Также может понадобиться какая-нибудь форматилка (утилита для разметки и форматирования) жесткого диска, у меня загрузилась старая версия Acronis Disk Director на отдельной флэшке.
На некоторых старых машинах, оказывается, играет роль порядок указанных в BIOS жестких дисков, причем, это не зависит от меню загрузочных устройств, которые вызываются обычно по F8, т.е. обычно, если по F8 выбираешь вместо HDD флэшку, обычно она первым жестким диском и ставится, но в данном случае, это оказалось не так.
Я попытался загрузить Mini Windows XP (Windows PE) с флешки, на которую был распакован Hiren’s Boot CD, и получил ошибку:
SETUPLDR: Couldn't open drive multi(0)disk(0)rdisk(0)partition(1)
Если такое случилось, надо поменять порядок жестких дисков в BIOS:
1. Заходим в BIOS, обычно по нажатию клавиши DEL
при загрузке
2. Переходим в раздел Boot
, ищем пункт Hard Disk Drivers
(в моем случае), иногда он может называться по-другому, например Hard Disk Drivers Priority
:
3. Переставляем флэшку на место первого загрузочного диска:
4. Перезагружаемся, сразу начинается загрузка с флэшки, и с нее все прекрасно грузится:
На этом этапе подгружаем менеджер жестких дисков, например Acronis Disk Director, если даже он не грузится, надо найти машину-донора, выкрутить HDD из старого компа, вкрутить в новый и там его обработать.
Но у меня получилось без этого.
Создаем новый раздел жесткого диска, он должен быть основным, активным и иметь файловую систему FAT32 (если будет NTFS, то из DOS ее не будет видно, а нам надо, чтоб было):
Получилось:
Теперь перезагружаемся в Hiren’s Boot CD в XP PE (Mini Windows XP), так быстрее, хотя можно изначально все делать из-под DOS, копируем файлы дистрибутива Windows, драйвера и необходимый софт на созданный только что раздел:
Скопировано (для иллюстрации повторял действия на виртуальной машине, так что на скриншоте только каталог с дистрибутивом Windows):
Установка DOS на жесткий диск. Подготовка.
Когда копирование всего, чего нужно, будет завершено, перезагружаемся, и загружаемся опять с флешки с HBCD, только в первом загрузочном меню выбираем вместо Mini Windows XP пункт DOS Programs.
Далее, попадаем в загрузочное меню программ DOS HBCD, меню двухстраничное, между страницами можно переключаться с помощью последних пунктов меню на странице
9. Next... и 9. ...Back
На второй странице выбираем пункт File Managers...
Если у вас другая версия HBCD, пункт может быть и на первой.
Далее, выбираем пункт Volkov Commander 4.99
Далее происходит загрузка DOS и запуск файлового менеджера Volkov Commander, перед загрузкой появится несколько диалоговых окон, выбираем параметры по умолчанию, т.е. драйвер NTFS4DOS подгружать не нужно, отвечаем No, поддержка длинных имен файлов (LFN) так же не нужна.
Итак, мы загрузились.
Volcov Commander является классическим двухпанельным файловым менеджером для DOS
На иллюстрации вы видите диск виртуальной машины, и он уже основной (диск C:
), но это приводится для иллюстрации, т.к. некоторые скриншоты я делал на виртуальной машине. На реальной мне пришлось перейти в меню выбрать на правой панели диск реальной машины, на которой располагалась копия дистрибутива Windows XP (комбинацией клавиш ALT-F2 и выбором нужного диска из меню), а комбинацией клавиш ALT-F1 был выбран виртуальный диск A: с системными файлами DOS.
Примечание: здесь выбор дисков в файловом менеджере производится только для того, чтоб вы знали, как искать нужные вам диски, на реальной машине основной диск с ранее скопированным дистрибутивом, в DOS может оказаться под другой буквой (чаще всего D:
, а C:
, может оказаться виртуальный диск с программами DOS)
Итак, когда мы определились с дисками, где у нас что находится, можно производить установку DOS на жесткий диск. Вводим команду:
sys A: <ваш раздел на жестком диске>
, где
<ваш раздел на жестком диске>
— подготовленный раздел для установки XP
На реальной машине это был раздел D:
, соответственно, команда:
sys A: D:
Если все сделано правильно, на системном диске должны появиться файлы IO.SYS
, MSDOS.SYS
и COMMAND.COM
:
IO.SYS
— в последних версиях DOS содержит в себе ядро операционной системы MS-DOS (MS-DOS версии 7.1 из Windows 98), в более ранних — часть ядра, отвечающая за загрузку драйверов и взаимодействие с «железом». Подробнее см. IO.SYS
[https://ru.wikipedia.org/wiki/IO.SYS] А также была альтернативная группа с таким названием 🙂
MSDOS.SYS
— Изначально, компонент ядра, отвечающий за некое подобие современных API, начиная с MS-DOS 7.1 (DOS от Windows 95-98), объединен с IO.SYS
, в последних версиях DOS представлял собой обычный INI-файл[https://ru.wikipedia.org/wiki/.ini] позволяющий управлять некоторыми параметрами загрузки Windows 98.
COMMAND.COM
— командный процессор (командная оболочка, командная строка MS-DOS во всех версиях). В Windows NT и выше (XP, Windows 7 и т.д.) был заменен на CMD.EXE
Далее переходим к установке минимального окружения для быстрой установки Windows XP.
Предупреждение: Если этого не сделать, установка Windows XP из-под DOS потребует самовара (с водкой), т.к. продлится очень долго.
Ищем флэшку среди наших дисков, на ней должен быть каталог DOS из архива (ссылка в конце статьи), он должен содержать следующие файлы:
AUTOEXEC.BAT
CONFIG.SYS
HIMEM.SYS
SMARTDRV.EXE
Копируем их на системный диск с установленным DOS и дистрибутивом Windows XP.
AUTOEXEC.BAT
— BAT-файл расположенный в корневом каталоге, который выполняется при загрузке DOS, т.е. это аналог «Автозагрузки» в Windows, или же ключей автозагрузки в Реестре. Начиная с Windows XP игнорируется.
В нащем случае, в нем должна быть записана единственная строчка:
smartdrv.exe
CONFIG.SYS
— файл, изначально представляющий собой список загружаемых драйверов, в следующих версиях DOS его функции были расширены, вплоть до того, что с его помощью можно было создавать загрузочные меню, позволяющие на одной машине загружать разные варианты конфигурации (драйвера. программы, и т.д.)
Подробнее смотрите CONFIG.SYS
По формату напоминает текстовый INI-файл
В данном случае он должен содержать единственную строку:
device=himem.sys
загружающую драйвер HIMEM.SYS
.
HIMEM.SYS
— драйвер «верхней памяти», без него DOS не будет доступна оперативная память размером более 1 Мб Подробнее см.
SMARTDRV.EXE
— программа кеширования диска, ускоряющая работу с ним, за счет оперативной памяти. Без предварительно загруженного HIMEM.SYS
работать не будет.
После копирования необходимых файлов с флэшки, корневой каталог системного диска выглядит так:
Установка Windows XP
Теперь можно вытащить флешку и загрузиться с жесткого диска. Перед нами откроется минимальная консоль DOS:
Теперь надо ввести команды для перехода в каталог дистрибутива Windows:
cd DISTR\I386
winnt
Пойдет первый этап установки Windows XP из под DOS, установщик пропишет загрузочный сектор Windows XP, подправит главную загрузочную запись, скопирует основные файлы, необходимые для установки.
Далее XP начнет копировать файлы:
После завершения первого этапа установки, нас попросят нажать Enter для перезагрузки.
После перезагрузки установка будет продолжена, опять нажимаем Enter:
Выбираем раздел диска для установки, в моем случае, раздел единственный:
Далее можно сразу задать преобразование в NTFS при установке. Впрочем, это можно сделать позже, ниже расскажу как:
Далее установка продолжится:
А после перезагрузки перейдет в графический режим.
ФАНФАРЫ!
По окончанию установки ставим драйвера и программы.
NTFS несколько надежней устаревшей FAT32, так что, если не сделали преобразование диска во время установки, можно сделать это после, с помощью стандартных средств Windows. Преобразование пройдет без потери данных.
1. Запускаем командную строку от имени пользователя, наделенного правами администратора (обычно первый пользователь, создаваемый при установке Windows XP).
Пуск —> Выполнить (или Win+R), вводим команду cmd и попадаем в командную строку Windows.
2. Вызываем утилиту convert
, которая и будет преобразовывать файловую систему:
convert C: /FS:NTFS /V
где C:
— наш системный диск
/FS:NTFS
— указание файловой системы, в которую преобразовывать. Видимо, Вовчик Воротов планировал несколько поддерживаемых файловых систем, но в итоге оставили одну NTFS, а про параметр забыли, он остался и является обязательным.
/V
— необязательный параметр, можно опустить. Показывает преобразуемые в данный момент файлы, если его не указать — утилита convert будет молчать, как партизан, и не даст никакого понятия о прохождении процесса.
Нас попросят ввести метку тома для диска C:
Вводим ее.
Далее предлагают отключить том, отвечаем согласием (Y), но отключить том не удастся, так что будет предложено начать преобразование при следующей перезагрузке, отвечаем Y.
Перезагружаем машину.
После перезагрузки Windows перейдет в Native-режим и начнется обратный отсчет перед проверкой диска:
НИЧЕГО НЕ НАЖИМАЕМ!
Далее последует проверка диска:
И преобразование диска в NTFS. Если был указан ключ /V
, будут показываться имена преобразуемых файлов:
Если без ключа /V
, то процесс будет выглядеть так:
Убираем останки от DOS, дистрибутива.
После окончания установки с диска можно удалить каталог DISTR
с подкаталогами, а также файлы с диска C:
AUTOEXEC.BAT
BOOTLOG.TXT
BOOTSECT.DOS
COMMAND.COM
HIMEM.SYS
IO.SYS
MSDOS.SYS
SMARTDRV.EXE
Некоторые файлы могут быть скрыты, делаем «Показывать скрытые файлы» в «Свойствах папки», или пользуемся, например, Far manager’ом.
При установке из-под DOS Windows XP оставит возможность загружать предыдущую ОС, которая была опознана как Windows 98 (DOS-часть из этой ОС используется в HBCD), что неудобно, придется при каждой загрузке Windows XP или ждать лишних 30 секунд, или нажимать Enter:
Чтобы его отключить надо, или в Far Manager’е открыть в редакторе (F4), файл boot.ini
, находящийся в корневом каталоге диска C:\
. Или зайти в Свойства, щелкнув правой клавишей по значку Мой компьютер, перейти на вкладку Дополнительно, и нажать кнопку Параметры под надписью Загрузка и восстановление
Далее нажимаем кнопку Правка около Отредактировать список загрузки вручную:
В Блокноте (или в Far’е) откроется файл boot.ini
, оттуда надо удалить последнюю строчку:
C:\="Microsoft Windows"
Готово. Сохраняем файл, перезагружаемся. Загрузочное меню пропадает.
Минимальные файлы DOS (HIMEM.SYS, SMARTDRV.EXE, AUTOEXEC.BAT, CONFIG.SYS
):
— Скачать с Mega.NZ
— Скачать с Google.Drive
— Hiren’s Boot CD 15.2