Windows на RAM-диске или компьютер без винчестера…

Martin, martin_martin@inbox.ru

Следующая информация для тех, кто имел опыт установок Windows, знает про реестр, умеет работать с программным обеспечением для CD-RW. В основе «исследований» лежала идея использования среды Windows для просмотра фильмов DivX с компакт дисков, при этом для минимизации стоимости компьютера из распространённой конфигурации были исключены монитор, флоппи дисковод и жёсткий диск. В итоге экспериментов удалось загрузить Windows98 и посмотреть фильм с выводом изображения и звука на телевизор, используя системный блок, собранный из таких комплектующих (указаны цены нашего города):

Case MiniTower ATX 250 W

$26,00

MB Acorp 7KTA1 (VIA KT133A) (ATX) (socketA) (+SB)

$66,00

CPU AMD Duron 800 SocketA 200MHz

$45,00

SDRAM 128Mb 133MHz

$38,00

SVGA AGP GeForce 2MX-200 32Mb TVout

$51,00

Cooler for socketA (45mm)

$2,40

CD-ROM 52x Acer  (OEM)

$32,00

Keyboard PS/2

$5,80

Mouse A4 OK-720 (520dpi, 2 button)

$2,40

Итого:

$268,60

Истратив позднее ещё около $300 (монитор, HDD, FDD), можно получить полноценный мультимедийный аппарат, а в данном случае использовать такого «монстра» можно только для просмотра видео через телевизор и проигрывания звука MP3 через внешний усилитель.

Стоит заметить, что для создания загрузочного компакт диска с облегчённой версией Windows понадобится, как минимум уже установленный Widows с необходимым ПО для записи CD болванок (как и сам CD-RW привод). Созданный boot CD, конечно будет корректно загружать систему только под конкретную конфигурацию компьютера.

Сама идея следующая – система должна грузиться с загрузочного CD (режим эмуляции флоппи диска), затем создаётся RAM-диск (электронный диск в памяти, размером не более 85 мб. при общем объёме 128 мб.), потом настроенный и «обрезанный» Windows с установленным софтом для Divx и драйверами распаковывается (или копируется) с CD на RAM-диск, и уже с RAM-диска собственно сам Windows и загружается. В итоге винчестер не нужен, сам boot CD после запуска Windows можно вынуть из лотка, если стоит видеокарта nvidia с видеовыходом, то изображение наблюдаем не на мониторе, а на телевизоре.

Немало информации для реализации идеи я почерпнул на http://www.slawwwa.boom.ru/ в статье с похожим названием, но сделал всё несколько иначе.

Итак, исходные ингредиенты для нашего коктейля (основным критерием отбора является размер после инсталляции, чем меньше – тем лучше):

a)      Дистрибутив Windows98SE

b)      Кастратор Windows 98lite желательно версии Pro 4 (при установке Windows позволяет получить продукт весом около 50 мб. (!) в чистом виде). Прочитать об этой утилите можно здесь.

c)       Программа для изменения разделов жёсткого диска PARTITION MAGIC 7 под ДОС (надеюсь, вы умеете с ней обращаться)

d)      XMS Disk - Альтернативный драйвер RAM-диска, которому можно букву задать (один из лучших, понимает длинные имена, позволяет запускаться Windows)

e)      Drive Load - Программулина для загрузки .SYS - драйверов из командной строки.

f)        CD-ROM - драйвер - желательно, чтоб цеплял, по возможности все IDE-CD приводы.

g)      Дистрибутив Windows Commander (не представляю, как жить без него)

h)      Проигрыватель Divx фильмов Zoom Player 2.5 (другие просто не работают под устанавливаемым компонентом DirectX 6, почему такая версия Direct? Смотрите сами: 6-ой весит 8мб, 7-ой 45 мб, 8-ой 65 мб.), который ещё и поддерживает плэй листы для MP3.

i)        Кодек DivX (версия 3.2 – разумный компромисс)

j)        Для владельцев карт nvidia с TV-out драйверы Detonator 6.5 (небольшие по размеру и имеют поддержку TwinView), а также утилита TvTool 5.5 (для отображения рабочего стола на телевизоре, если не подключен монитор)

k)      Двоичный редактор Hiew или Edit.com из набора Windows

Перед тем как начать, делаем резервные копии родных IO.SYS, MSDOS.SYS, AUTOEXEC.BAT и CONFIG.SYS, создаём резервную копию реестра. А ещё лучше всё это проделать (безопасности ради) на отдельно взятом (у друга) винчестере.

Далее  в следующем порядке:

1. При помощи Partition Magic создаём логические диски. К примеру последний в системе был С:\, создаём D:\ и E:\ для видимости (минимального размера, для того чтобы создать F:\), создаём F:\ 200 мб. (сюда и будем устанавливать наш огрызок Windows). Вместо разбиения диска можно также воспользоваться командой subst (должен быть в наличии файл subst.exe), которая указывается в самом начале autoexec.bat и назначает существующему пути букву диска (например subst %RAMD%: c:\martin , где %RAMD% - буква диска (F), а c:\martin папка с"а-ля" корневой директорией (содержимое нашего F диска).

2. Копируем дистрибутив Widows на диск C:\, при помощи утилиты 98LitePro запускаем процесс установки, выбираем минимальную конфигурацию, устанавливаем операционную систему на диск F:\, при выборочной установке оставляем только компоненты DitectX и DirectX шоу.

3. После завершения установки Windows, ставим драйвер звука (в нашем случае это звук встроенный в материнскую плату). Устанавливаем и настраиваем Detonator, Windows Commander (прописываем автозагрузку в реестре в разделе Run), TvTool (прописываем автозагрузку в реестре в разделе Run), Zoom Player, кодек DivX.

4. Запускаем Windows\System\msconfig.exe и убираем из автозагрузки scanregw.exe

5. Тестируем работу системы, конфигурируем её и напоследок загружаемся в ДОС. Теперь подчищаем систему (удаляем все длинные имена папок и файлов, например директория Program Files нам всё равно не нужна), в папке Windows оставляем все файлы (за исключением ShellIconCache и Win386.swp, которые удаляем), оставляем только папки Config, Fonts, System, System32, остальное удаляем. Переименовываем файл реестра System.dat в System.cdr Двоичным редактором (или HEX редактором) находим в io.sys значение system.dat и меняем на system.cdr (иначе при последующей загрузке с CD и уже установленной системе на c:\ получим большой глюк, система начнёт использовать информацию реестра из C:\WINDOWS\system.dat).

6. Сжимаем содержимое диска F:\ папки Windows, Wincmd, Tvtool, ZoomPlay в SFX-архив (самораспаковывающийся файл, например назовём его winlite.exe). Я использовал архиватор ACE под ДОС.

7. Командой sys f:\ a:\ создаём загрузочную дискету, заменяем на ней msdos.sys на такой же с диска С:\. Находим и копируем на неё файлы (например они есть в полноценной системе на C:\) Command.com, Country.sys, Display.sys, Drvload.com, Ega3.cpi, Himem.sys, Ifshlp.sys, Keyb.com, Keybrd3.sys, Mode.com, Xmsdsk.exe.

8. Создаём SFX-архив (например copycd.exe) с файлами Command.com, Mscdex.exe, Smartdrv.exe, Uniidecd.sys и копируем его на дискету

9. Создаём на дискете autoexec.bat примерно следующего содержания:

@ECHO OFF

SET DIRCMD=/O:N

set RAMD=f

set cdrom=g

xmsdsk 85000 %RAMD%: /y /t /c1

set temp=%RAMD%:\

set tmp=%RAMD%:\

path=%RAMD%:\;%CDROM%:\

copycd %ramd%:\

set comspec=%RAMD%:\command.com

set shell=%RAMD%:\command.com

drvload %RAMD%:\uniidecd.sys /D:MSCD001

%RAMD%:\MSCDEX.EXE /D:mscd001 /L:%CDROM%

%RAMD%:\SMARTDRV.EXE 512

%cdrom%:\winlite %ramd%:\

SET PATH=%RAMD%:\WINDOWS

cd %RAMD%:\windows

set cmdline=%RAMD%:\

%RAMD%:\

10. Создаём на дискете config.sys примерно следующего содержания:

dos=high,umb,noauto

AccDate = a- b- c- d- e- f- g- h-

Switches = /F

NumLock = On

device=himem.sys /testmem:off

lastdrive=z

device=display.sys con=(ega,,1)

device=Ifshlp.sys

country=007,866,country.sys

install=mode.com con cp prepare=((866) ega3.cpi)

install=mode.com con cp select=866

install=keyb.com ru,,keybrd3.sys

files=10

buffers=10

stacks=9,256

11.  Итак, мы имеем загрузочную дискету и архив winlite.exe, т.е. всё готово для записи болванки. Теперь восстанавливаем систему (см. пункт 0), при помощи Partition Magic удаляем созданные логические диски, т.е. всё приводим к тому, что было вначале.

12.  Теперь грузим наш полноценный Windows с диска с:\, и например в Nero записываем загрузочную (указав в качестве загрузочного сектора нашу дискету) болванку (для пробы лучше на перезаписываемую), в корневой каталог проекта помещаем архив winlite.exe.

13.  Последний шаг – проверяем продукт, грузимся с созданного CD. Windows должен оказаться на F:\ и загрузится с него (дополнительно можно отключить жёсткий диск, всё должно работать)

Опытным путём установлено, что для просмотра DivX с CD нужно иметь 55 Мб свободной памяти и 5 Мб отвести под файл подкачки (который следует ограничить размером 5 Мб в настройках, без свопа не будут нормально звучаить ISA звуковые платы от Creative), т.е. объём RAM диска должен быть не более 68 Мб при 128 Мб оперативной памяти. Таким образом размер распакованной операционной системы и др. утилит (пригрыватель, Wincmd и др.) не должен быть более 65 Мб, добится "похудения" системы можно подчисткой папки Windows\System (поверьте там - ещё много лишнего), сделайте это самостоятельно опытным путём (смотрите свойства файлов и решайте, нужны они или нет, более точного решения предложить не могу, аппаратные средства - вещь индивидуальная).

Данную систему можно сделать "универсальной" (т.е. способную работать на компьютере любой конфигурации), если в конце установки Windows (см. пункт 5.) удалим из "панель управления\система" все устройства (если удалены все до одного устройства - система при последующей загрузке не будет автоматически искать новое оборудование и спокойненько загрузится на любой машине). Получим оболочку Windows но без возможности использовать звук и полноценное видео (будем иметь VGA режим 16-цветов).

Напоследок немного о железе. Я использую видеокарту GeForce2 MX , на борту разъём TV-out типа S-Video (4-pin). Чип ТВ кодера Conexant BTC 869, стоящий на данной плате, позволяет программно изменять тип сигнала на выходе (композитный или s-video, я использую композитный и переходник s-video - тюльпаны). Если телевизор и видеокарта имеют S-video разъёмы, то следует соединять их именно этим кабелем (изображение лучше, чем при использовании тюльпанов). Если монитор не подключен (что не мешает однако запускаться системе) при включении компьютера, то микросхема видеовывода семейства BT 8x9 (Chrontel или Philips глюковатые, хотя работают примерно в таких же режимах) сразу выводит сигнал на телевизор, при этом можно наблюдать экраны загрузки BIOS и DOS. Опытным путём выяснено, что после загрузки Windows изображение на ТВ пропадает (или имеет режим 16-цветов), если в автозагрузке не стоит Tvtool 5.5 или в настройках TwinView не указано, что в качестве основного монитора используется телевизор. Видео наверно стоит брать GeForce2 (например MX400 или более разогнанные), т.к. 3 и 4 форсы с ТВ-out или не двухголовые и не поддерживают одновременный вывод на монитор и ТВ или не имеют поддержки драйверов и альтернативного софта для этих режимов.

Ну вот и всё, надеюсь это вам поможет...

Hosted by uCoz