Альтернативный способ установки Windows XP по сети (PXE) из Linux-окружения.

Преамбула

Способ довольно странный, а само Linux-окружение для установки несколько кривовато, потому пишу больше чтоб тему закрыть и к установке XP более не возвращаться.

Принцип действия программы основан на возможности установки Windows XP из под DOS. Сначала по сети грузится специальный дистрибутив Linux (ядро и initrd), он настраивает сеть, подключает нужные сетевые шары, запускает предварительное конфигурирование, генерирует файл unattend.txt и разные послеустановочные скрипты, теоретически запускающие установку необходимых программ. На практике вся автоматизация работает криво (возможно, надо править скрипты и конфиги), но доступ к установщику винды, который думает, что запущен из-под DOS, мы в результате получаем.

Установка Linux-окружения

Вот где, кто и когда и откуда эту штуковину взял, я не ведаю. Поэтому вот вам архив прямо с сервера (естественно, без дистрибутива винды внутри).

Скачать

Распаковываем содержимое каталога unatxp (внутри архива) куда-нибудь в отдельный подкаталог в каталоге с дистрибутивами на PXE-сервере.
Пусть будет для примера такой вот путь:
/home/pxe/tftp/distrib/windows/unatwinxp

Настройка шары

Для работы установочному Linux-окружению необходимо расшарить каталог distrxp
Добавляем в smb.conf:

[unatdistr]
        path=/home/pxe/tftp/distrib/windows/unatwinxp/distrxp
        public=yes
        browsable=yes
        read only=yes
        guest ok=yes

Перезапускаем samba.

Подготовка дистрибутива Windows XP

Дистрибутив XP надо скопировать с установочного диска или распаковать из ISO-образа и поместить в подкаталог distrxp/os/winxp, а также установить права на все файлы в подкаталогах в 755.

cd /home/pxe/tftp/distrib/windows/unatwinxp/distrxp/os/winxp
chmod -R 755 *

Загрузка Linux-окружения, загрузочное меню PXE-сервера.

Осталось подправить меню PXE-сервера.

LABEL winxpunatted
    menu label Windows XP Unattended install
    kernel distrib/windows/unatwinxp/bzimage
    initrd distrib/windows/unatwinxp/initrd.gz
    append z_user=guest z_password=guest z_path=\\10.10.1.5\unatdistr

Как видно из кода выше, необходимо передать ядру Linux-окружения имя пользователя и пароль для доступа к шаре, а также ее адрес на сервере. Все данные передаются в соответствующих параметрах ядра.

Подготовка целевой машины

Теперь надо подготовить машину, на которую будем устанавливать XP. На самом деле, Linux-окружение само предложит переделить диск и сделать активный раздел при помощи своих инструментов, но я ему не особо доверяю, потому сделал это с помощью Acronis. Главное, чтоб перед установкой на машине уже был активный раздел, отформатированный в FAT32, иначе Linux-окружение перевет работу где-то на середине, и выбросит в линуксовую консоль, так и не запустив эмулятор DOS.

Запуск Linux-окружения и установка Windows XP

Далее с картинками под катом

Плюсы и минусы

— Довольно кривое Linux-окружение
— Много мелких суетливых движений, как говорил классик. Необходимость отвечать на кучу вопросов.
— Требует раздел FAT32, потом придется переделывать командой convert.

+ Отсутствует возня с сетевыми драйверами и BINL
+ Идет даже на очень слабых машинах, тестировалось на PIII 700

Скачать

Установочное Linux-окружение для Windows XP

Психоделические графики (DOS, Turbo Pascal)

Наконец нашел дико красивые графики, которые наш товарищ рисовал в Turbo Pascal под DOS. Ни я, ни товарищ алгоритма не помним, помним только то, что в качестве входных данных была матрица 3×3. Писалось это в качестве какого-то зачета. Но товарищ, тот еще креатвищик, усовершенствовал формулу и задание, в результате программа рисовала четырехмерные графики. Поскольку четырехмерного монитора у нас не было (хотя была мысль собрать, но что б мы делали со своими трехмерными глазами), четвертое измерение отображалось цветом.
С этими графиками связана забавная история, которая, минимум до 2010 г. будоражила универ. Дело в том, что условное задание «нарисовать в паскале графики», давалось всем. Но по внутриуневеровской сети до сих пор ходит, или ходил, легендарный исходник моего товарища. И его периодически некоторые долбозавры брали, и пытались сдать преподу Б. А препод Б. спрашивал, «объясните, как написали, и что оно делает». И это был провал. Сдающего.

Вообще хочу это соптимизировать и сделать из оригинала заставку, на Юнити, например.

https://youtu.be/qutWWmHYjYc

В оригинале звука не было, и работало оно гораздо медленнее, но может в этом виноват эмулятор DOS, я ускорил видео в 20 раз примерно.

Один из исходников, вроде последняя версия, на PasteBin и пример файла данных к нему
Весь архив с проектом

Про «Жизнь»

Спрашивают, есть ли что-то подобное в текстовом режиме. Есть, только предупреждаю, там такой говнокодище, что самому смотреть страшно. И некрасиво выглядит, в отличие от графической версии. Если переделаешь, сойдет за зачет, наверное.
Даже картинки не будет.

LIVE.PAS
Архив с экзешником и исходником

Текстовый редактор FOTON для DOS

Охрененная софтина была для 1989 года.
Макросы, возможность компиляции программ, не выходя из бассейна из редактора и множество передовых фишек для того времени.

А самое главное, в нем есть одна штука, которой до сей поры нет ни в одном более современном текстовом редакторе. Выделение прямоугольных блоков текста! Которые можно переносить, вставлять и т.д. Вот нет такого больше нигде и все, а надо иногда. Причем настолько надо, что периодически пользуюсь сим олдовым произведением программерского искусства. Хоть сам бери и пиши редактор с подобной функцией, блин.
UPD.
Есть, оказывается. Не знаю насчет vim и emacs, правда, но Notepad++ делает как надо. И Far (по Аlt+стрелки). А вот Студия делает, но не совсем так.


Его собственная внутренняя демка:

https://youtu.be/vc5ONlBnPrg
Скачать

Игра «Жизнь» на Turbo Pascal for DOS

От ведь блин, нашел лохматого возраста исходник игры «Жизнь». Писалось с другом на Turbo Pascal для DOS в лохматых годах, когда еще в школе учился.

Написано, конечно, криво, косо, неоптимизированно и все это жутко тормозит, особенно «редактирование» картинки. Но все равно круто, аж детство вспомнилось, когда не пил, не курил, мониторы были зеленее, компьютеры медленнее, Ельцин президент, а я хотел вступить в КПРФ.


https://youtu.be/W7VRyfoaOkg
Еще видео

Думал даже переписать сие произведение, Free Pascal вроде умеет в графику. Может и займусь, или найду еще более крутой исходник шизово-психоделических трехмерных графиков и сделаю из него заставку на Юнити, все равно давно хотел попробовать что-нибудь написать, чтоб с триде, да в голову ничего не приходило.
А гадский Ютуб почему-то пакостит в видео, во всяком случае, в эти. На локальной машине все четко видно, а публикуешь, как-то лажовенько выглядит, ерунда какая-то непонятная с ютубом.

Исходник
Скачать

Создание загрузочного образа диска DOS в Slackware Linux

Продолжая тему загрузочных образов.
Расскажу, как сделать загрузочный образ диска DOS в который можно добавить свои программы, загружаемый по сети или с CD-диска. На примере тестового образа, который использовал в одной из предыдущих заметок.
Загрузчик, соответственно, оставлю такой же, какой использовал ранее — SYSLINUX. Вообще SYSLINUX, а точнее memdisk поддерживает кроме ISO загрузку образов дискет и жестких дисков, в т.ч. и сжатых gzip’ом.
С дискетами возникает небольшая проблема — файл образа должен быть строго определенного размера (хотя SYSLINUX поддерживает и нестандартные размеры дискет, но все равно они должны быть строго определенными), в образе дискеты, естественно, не может быть два логических раздела и т.д. Чтобы не заморачиваться с этими ограничениями, буду делать образ жесткого диска, его размер можно определить произвольно, главное, чтоб влез в память машины, на которой его потом будем загружать.

Подготовка системы

1. Устанавливаем простенькую виртуальную машину QEMU, для DOS ее вполне хватит.
2. Устанавливаем multipath tools, для того, чтобы получить доступ к файлам, расположенным в образе диска из Linux (ну если мы хотим добавить в образ какие-нибудь программы). У меня multipath tools были уже установлены, ибо нужны для работы с шифрованными контейнерами truecrypt/tcplay
Я установил необходимые программы с помощью менеджера sbopkg без всяких дополнительных опций при сборке.
3. Если будем работать на удаленной машине через SSH, то настраиваем X11-forwarding
4. Создаем отдельный каталог в котором разместим необходимые образы дисков
5. Скачиваем выдранный из Hiren’s boot CD образ с досовыми утилитами. Или делаем его сами, как я описывал ранее
6. Проверяем, все ли работает, запускаем с досом, выдранным из HBCD:

qemu-system-i386 -cdrom dos.iso -boot d
где:
qemu-system-i386 — программа QEMU для 32-разрядных систем. В 64-разрядной версии Linux необходимо использовать команду qemu-system-x86_64
-cdrom — указываем программе местонахождение ISO-образа диска (тут dos.iso, расположенный в текущем каталоге).
-boot d — указываем программе, что необходимо грузиться с виртуального CDROM’а (из указанного образа диска).

Должно получиться как-то так:


Во втором меню нужно выбрать пункт Next, далее File Managers и Volkov commander
Если Volkov Commander успешно загрузился, то закрываем QEMU и приступаем к созданию образа диска DOS

Создание образа

Первым делом создаем пустой файл (заполненный нолями) нужного размера, например 10 мегабайт. Делается это с помощью стандартной утилиты dd
dd if=/dev/zero of=diskc.img bs=10M count=1
Грузимся опять в QEMU с ISO-образа, но подключив созданный образ диска:
qemu-system-i386 -cdrom dos.iso -hda diskc.img -boot d
Выбираем в загрузочном меню HBCD Volkov Commander
Продолжение со множеством иллюстраций под катом

Готовый образ можно сжать gzip’ом, включить в состав загрузочного ISO-образа или загружать по сети. Пример конфига для ISOLINUX описан здесь

Примеры

Как и что можно таким образом запускать:


Acronis Disk Director for DOS


Acronis True Image for DOS

Скачать

Готовый образ диска
Заметку в формате PDF

Выдираем досовую часть из Hiren’s Boot CD

Зело полезный набор утилит Hiren’s Boot CD за время своего существования уж как-то очень сильно раздулся, несмотря на то, что авторы в последних версиях повыкидывали оттуда всякую совсем уж проприетарщину, типа Windows 98, загружающейся с болванки. HBCD 15.2 весит целых 600 метров, что пофиг, если загружаешься непосредственно с болванки, и неприемлемо, если надо грузиться по сети на слабую машину со 128 метрами памяти, например. Но на такой машине весь HBCD и не нужен, а нужна только его досовая часть. Итак, выдираем ее и формируем отдельный образ.
Все дико просто, если пользоваться моей предыдущей инструкцией по ручной сборке образа загрузочного CD в Linux .
Итак, будем считать, что вы ее читали, и у вас уже подготовлена директория iso_root, ней лежит минимальный набор файлов для загрузки (загрузчик ISOLINUX isolinux.bin, его конфиг isolinux.cfg, необходимые файлы *.C32 и memdisk), а также скрипт вне директории iso_root, который вызывает mkisofs c нужными параметрами.

1. Создаем в директории iso_root директорию HBCD, а в ней директорию Dos (все именно так, с сохранением регистра, иначе чуда может не получиться).
2. Вставляем в дисковод диск HBCD, и копируем все файлы из директории HBCD/Dos в созданную директорию.
3. Выходим в директорию iso_root и правим конфиг isolinux.cfg, добавляя следующий пункт меню:

label dossoft
	menu label DOS Programs
	kernel memdisk
	initrd HBCD/Dos/dos.gz
	append floppy
	timeout 1000

4. Правим заголовок меню:

menu title DOS programs

5. Выходим на уровень выше и запускаем скрипт createiso
6. …
Образ готов! ФАНФАРЫ!


Загрузочное меню диска

Загрузочное меню досовой части Hiren’s Boot CD

Конечно, если попытаться загрузить Mini XP из этого меню или вернуться в основное меню HBCD, получим ошибку. Зато все досовые утилиты прекрасно работают (тестировано на «мониторе»). И весит этот образ всего 20 Мб, вместо 600 с гаком целого HBCD.

Готовый образ здесь