English version here
Минимизация Инсталлированных Windows 95
Windows 95 minimized with docs 3.8M
Необходимая отмазка
АВТОР ДАННОГО ТЕКСТА НИЧЕГО НЕ ГАРАНТИРУЕТ И НЕ ОТВЕЧАЕТ НИ НА КАКИЕ
ПРЕТЕНЗИИ ПО ПОВОДУ ПОСЛЕДСТВИЙ ПРОЧТЕНИЯ КЕМ-ЛИБО ОНОГО ДОКУМЕНТА,
А ТАКЖЕ ПОСЛЕДСТВИЙ ИСПОЛЬЗОВАНИЯ УПОМЯНУТОЙ ЗДЕСЬ ИНФОРМАЦИИ. АВТОР
НЕ ГАРАНТИРУЕТ ДАЖЕ ТОГО, ЧТО ЭТА ИНФОРМАЦИЯ КОРРЕКТНА ИЛИ ИМЕЕТ
ОТНОШЕНИЕ К ДЕЙСТВИТЕЛЬНОСТИ.
Вы можете следовать нижеприведённым инструкциям исключительно на свой страх и риск.
История версий данного текста
- v0.2 от 14-Feb-2003: fdisk.exe взят из японского Миллениума
для поддержки винтов более 128Gb размером.
- v0.1 13-Jun-2001: добавлены недостающие: unicode.bin, vfd.vxd.
Добавлены ссылки на похожие проекты и документации.
Добавлено пояснение к процедурам конфигурирования.
Преамбула
История MSDOS'a подходит к концу. Новая эра началась с 95-ми Виндами.
Эра безудержного роста потребностей в памяти и месте на винчестере.
Но иногда нам приходится собирать работающую систему для работы в странных
условиях.
- Мало места на диске. Или диск старый, или это маленькая карточка,
считающая себя винчестером. Или ПЗУ. Или электронный диск.
- Быстрая инсталляция, быстрый запуск.
- Минимизация ресурсов, предоставленных виртуальной машине под
другой ОС, в которой непременно надо запустить Win32 задачу.
- Желание переставлять один и тот же жёсткий диск не заморачиваясь
с драйверами устройств и не страдая от излишнего интеллекта Виндов.
- Запуск некоторых ДОСовских программ, не могущих корректно определить
размер диска из простого ДОСа. Например - TIRAMISU (программа восстановления
данных с жёсткого диска) не видит дисков более 8 Гб размером из-под ДОСа.
Однако будучи запущенной в Вин32 среде - хотя бы под "минимизированными"
95-ми - видит такие диски как надо и успешно восстанавливает данные с них.
- Запретить обращение к системным DLL от тех, кому не положено.
- Простой контроль за файлами и DLL. А меньше файлов - проще контроль,
больше уверенности.
- И так далее
Конечно - Вам известны ОС, в которых всё это сделано лучше.
Конечно - есть специальный софт, который эти проблемы решает.
Но если Вам пришлось использовать Win32 среду хотя бы для пары программ -
вы вынуждены войти в это прекрасный новый мир недопонимания и
недокументированности, построенный Микрософтом.
И в этом случае, если Вы захотели отрезать неиспользуемое - сделайте.
Я публикую результаты своих исследований, поскольку это был довольно
тяжкий труд. Программы от Микрософта подразумевают, что все файлы лежат
на своих местах. И вместо нормального сообщения "Файл ... не найден" Вы
видите недопустимую операцию, зависание, идиотские сообщения, программа
может просто ничего не делать... Много попыток. Почти каждая -
перезагрузка.
Я надеюсь, что этот текст уменьшит количество необходимых Вам перезагрузок.
Минимизация установленных Windows 95. Суммарный размер 7.4-8.5М
Выбрана Пан-Европейская версия, так как я не люблю длинных русских имён
файлов. Получившийся архив содержит только латинские 8.3 имена для простоты
и совместимости, и при запуске создаёт одну директорию (Start Menu)
и один файл (ShellIconCache) с длинными именами. Хватит.
Но русские длинные имена поддерживаются. Как и Фат32. :-)
Процедура минимизации
- Устанавливаем Windows 95 без сети
- Настраиваем клавиатуру, мышь, Региональные установки.
Я рекомендую по крайней мере:
- - Изменить десятичную запятую на точку в ДВУХ местах
в Regional Settings
- - Установить английскую раскладку клавиатуры по умолчанию
- - Включить индикатор раскладки клавиатуры
- - Создать все необходимые иконки на десктопе
- - Очистить строку "AppWiz.cpl NewLink..." в системном реестре.
- Сохранить конфигурацию (см. ниже, отмеченные зелёным и красным файлы) в
какое-нибудь безопасное место
- Перезагрузиться в режиме "Command prompt only"
- Переместить все лишние файлы (то есть не упомянутые в списках,
приведённых ниже) в какое-нибудь третье место.
- Отредактировать файлы конфигурации вручную, если хотите:
- system.ini [386enh] редактируем строку :
mouse=*vmouse, msmouse.drv заменяем на mouse=*vmouse
(косметическое изменение, чтобы не было ругательств об отсутствии
файла MSMOUSE.DRV из директории SYSTEM
- system.ini [386enh] Если хотите перенести свопинг на
другой диск:
PagingDrive=Disk
MinPagingFileSize=Number
MaxPagingFileSize=Number
- Перезагрузиться и посмотреть на результат
Заметим, что ряд файлов и директорий будут созданы Виндой автоматически
в процессе запуска.
Заметим, что ряд программ НЕ МОЖЕТ быть запущен под таким образом
минимизированной Виндой - им нужно мнооооого специфических DLL файлов.
Это и есть та причина, по которой Вы не стёрли лишнее немедленно, а
только убрали в сторону. ;-)
Полный список НЕОБХОДИМЫХ файлов с полезными комментариями
('?' означает, что Я не знаю смысла этого файла,
но без него всё плохо...
Зелёным цветом отмечены редактируемые текстовые
файлы конфигурации
Красным цветом отмечены бинарные конфигурационные
файлы
Коричневым цветом отмечены файлы, необходимые
для русификации системы. Если русские буквы вам совсем не нужны - эти файлы
можно потереть.
Подразумеваемая конфигурация и опции установки системы
- Стандартный компьютер
- Драйвер стандартной VGA driver (640*480/16 colors) или стандатной PCI VGA,
Независимо от стоящей реально.
Если Вам нужно установить драйвера реальной видеокарточки - будьте
внимательны. Может оказаться совсем не очевидным - каким образом аккуратно
сохранить сопутствующие ему файлы и как их найти.
- Стандартная Serial Mouse
- Стандартная клавиатура
- IDE винчестер
- IDE CD-Rom
- Отсутствуют SCSI и другие экзотические контроллеры HDD
- Нет звуковой карты, все звуки выключены нафиг
- Нет сетевой карты и установки сети
- Нет модема и диалап-сети
- Региональные установки - Россия
- Не забудьте поставить Russian keyboard layout при инсталляции
- Никаких изменений конфигурации после минимизации, или только через
редактор реестра
Что заведомо требуется для старта MSDOS 16 бит в самом начале?
- \AUTOEXEC.BAT - DOS резидентные программы, переменные окружения
- \CONFIG.SYS - DOS драйверы
- \MSDOS.SYS - Установки параметров загрузки (Рекомендую Logo=0)
- \IO.SYS - Собственно DOS
- \COMMAND.COM - шелл DOS
Что заведомо требуется для запуска Win32 графической среды
(Пути указаны относительно C:\WINDOWS\)
- WIN.INI - Установки старта Виндов
- SYSTEM.INI - Аналогично
- SYSTEM.CB - Информация о кодовой таблице и раскладке клавиатуры. Кому-то нужна.
- SYSTEM.DAT - 1-я часть системного реестра
- USER.DAT - 2-я часть системного реестра
- SYSTEM\VMM32.VXD - Собранный на этапе установки комплект драйверов
Все остальные файлы могут быть распакованы из дистрибутива и помещены в соответствующие директории:
- IFSHLP.SYS - драйвер инсталлируемых файловых систем
- WIN.COM - Запускающая программа
- RUNDLL.EXE - запускает 16-bit DLLs
- RUNDLL32.EXE - запускает 32-bit DLLs
- SMARTDRV.EXE - загружается в DOS среде. дисковый кеш
- HIMEM.SYS - загружается в ДОС среде. XMS память
Из директории SYSBCKUP актуальны только эти два файла. На самом деле
в эту директорию складываются DLL для корректного изменения их списка
и корректной передачи функций от старой версии к новой.
- SYSBCKUP\VER.DLL - Контроль верси файлов
- SYSBCKUP\LZEXPAND.DLL - Распаковщик стандартный
А вот и самая сложная в разгребании директория SYSTEM...
- SYSTEM\CP_1251.NLS - 1251 кодовая таблица
- SYSTEM\CP_866.NLS - 866 кодовая таблица
- SYSTEM\INDICDLL.DLL - индикатор раскладки клавиатуры
- SYSTEM\KBDRU.KBD - русская раскладка клавиатуры
- SYSTEM\XLAT866.BIN - таблица перекодировки OEM/ANSI
- SYSTEM\KEYBOARD.DRV - драйвер клавиатуры
- SYSTEM\KBDUS.KBD - USA раскладка клавиатуры
- SYSTEM\UNICODE.BIN - не-ASCII символы в длинных именах файло
- SYSTEM\UNICODE.NLS - Unicode кодовая таблица
- SYSTEM\LOCALE.NLS - ?
- SYSTEM\CONAGENT.EXE - Нужен для запуска консольных приложений
- SYSTEM\WINSPOOL.DRV - Нужен для запуска консольных 32 битных приложений
- SYSTEM\SHELL32.DLL - Нужен для запуска шеллов
- SYSTEM\SHELL.DLL - Нужен для запуска 16-битных шеллов
- SYSTEM\WINOA386.MOD - Нужен для запуска консольных приложений
- SYSTEM\LINKINFO.DLL - Показывает иконки на десктопе
- SYSTEM\PIFMGR.DLL - Именно им редактируются параметры (Свойства, Properties) файлов .PIF
- SYSTEM\MMSOUND.DRV - Нужен даже если все звуки отсутствуют
- SYSTEM\VGAFULL.3GR - драйвер, отрабатывающий Full-Screen
- SYSTEM\VGA.DRV - Часть драйвера стандартной VGA для Safe Mode
- SYSTEM\MOUSE.DRV - драйвер мыши
- SYSTEM\SYSTEM.DRV - драйвер стандартного компьютера
- SYSTEM\COMM.DRV - ?
- SYSTEM\GDI.EXE - ?
- SYSTEM\GDI32.DLL - ?
- SYSTEM\KRNL386.EXE - ?
- SYSTEM\KERNEL32.DLL - ?
- SYSTEM\USER.EXE - ?
- SYSTEM\USER32.DLL - ?
- SYSTEM\INTERNAT.EXE - ?
- SYSTEM\SYSTRAY.EXE - ?
- SYSTEM\ADVAPI32.DLL - ?
- SYSTEM\MSGSRV32.EXE - ?
- SYSTEM\COMCTL32.DLL - ?
- SYSTEM\COMMDLG.DLL - ?
- SYSTEM\COMMCTRL.DLL - ?
- SYSTEM\DDEML.DLL - механизм DDE передачи параметров между программами
- SYSTEM\MSPWL32.DLL - Работает с файлами .PWL и участвует в стартовом логоне
- SYSTEM\MPREXE.EXE - ?
- SYSTEM\MPR.DLL - ?
- SYSTEM\MPRSERV.DLL - ?
- SYSTEM\IOSUBSYS\BIGMEM.DRV - Драйвер распределения памяти
- SYSTEM\IOSUBSYS\CDFS.VXD - Драйвер файловой системы CD
- SYSTEM\IOSUBSYS\CDTSD.VXD - Драйвер файловой системы CD
- SYSTEM\IOSUBSYS\CDVSD.VXD - Драйвер файловой системы CD
- SYSTEM\IOSUBSYS\DISKTSD.VXD - Драйвер файловой системы
- SYSTEM\IOSUBSYS\DISKVSD.VXD - Драйвер файловой системы CD
- SYSTEM\IOSUBSYS\VOLTRACK.VXD - Драйвер контроля доступа к CD
- SYSTEM\IOSUBSYS\ESDI_506.PDR - стандартный драйвер для IDE/ESDI
- SYSTEM\IOSUBSYS\HSFLOP.PDR - ?
- SYSTEM\IOSUBSYS\RMM.PDR - Real Mode Mapper (благодаря ему работают 16-битные драйвера DOS, загруженные до виндов)
- SYSTEM\IOSUBSYS\SMARTVSD.VXD - Дисковый кеш
- SYSTEM\VMM32\IFSMGR.VXD - ?
- SYSTEM\VMM32\IOS.VXD - Контролирует успешность запуска систем ввода-вывода на старте виндов
Обратите внимание, что в поддиректории SYSTEM\IOSUBSYS присутствует ряд драйверов
для SCSI адаптеров. Если Вы минимизируете винды на SCSI диске - не удаляйте
соответствующий файл и обязательно сохраните файл ASPI2HLP.SYS в директории
C:\WINDOWS\
- SYSTEM\IOSUBSYS\AIC78XX.MPD
- SYSTEM\IOSUBSYS\AMSINT.MPD
- SYSTEM\IOSUBSYS\NCRC710.MPD
- SYSTEM\IOSUBSYS\NCRC810.MPD
- SYSTEM\IOSUBSYS\APIX.VXD
- SYSTEM\IOSUBSYS\ATAPCHNG.VXD
- SYSTEM\IOSUBSYS\NECATAPI.VXD
- SYSTEM\IOSUBSYS\SCSI1HLP.VXD
- SYSTEM\IOSUBSYS\SCSIPORT.PDR
- SYSTEM\IOSUBSYS\TORISAN3.VXD
Шрифты в поддиректории FONTS. Я рекомендую оставить весь этот
набор дабы минимизировать проблемы с программами, использующими шрифты.
- FONTS\DESKTOP.INI - Задаёт специальный способ просмотра этого каталога из Control Panel
- FONTS\DOSAPP.FON - Фонт для ДОС приложений
- FONTS\COURE.FON - Courier, самый по умолчанию.
- FONTS\SERIFE.FON - С засечками
- FONTS\SMALLE.FON - Маленькие фонты 2-7
- FONTS\SSERIFE.FON - Без засечек
- FONTS\VGAOEM.FON - Фонт для терминала (866 кодовая таблица)
- FONTS\VGAFIX.FON - Fixed Sys
- FONTS\VGASYS.FON - System
- FONTS\SYMBOLE.FON - Греческие и математические символы
- FONTS\MARLETT.TTF - Рисунки - части интерфейса Виндов
Изменение конфигурации в минимизированных Win95
- REGEDIT.EXE - собственно редактор системного реестра
- SYSTEM\COMDLG32.DLL - часть оного редактора
Обратите внимание, что Control Panel пуста в этих минимизированных Win95.
Вы можете совершать изменения, использую REGEDIT. Лучше всего совершать такие
изменения по следующей схеме:
- На нормальных виндах делаем экспорт всего реестра в текстовый файл t1.reg
- Изменяется нужная Вам настройка
- Снова делаем экспорт всего реестра в текстовый файл t2.reg
- Сравниваем. Делаем файл изменений app.reg
- regedit app.reg в минимизированных виндах
Заметим также, что regedit.exe по совместительству - 16-битное ДОС
приложение, и Вы можете менять реестр за пределами Виндов, в голом ДОСе.
Но в командной строке.
Шеллы и их элементы
Вы можете выбрать один из желательных шеллов, отредактировав
строку 'Shell=explorer.exe' в файле system.ini
Например - вместо експлорера использовать Far. Даже если Вы отказались от
других стандартных средств - я рекомендую сохранить taskman.exe.
- COMMAND\START.EXE - Позволяет запускать новые окна из командной строки любого шелла
- COMMAND.COM - Нужен для запуска нортоноподобных шеллов
- EXPLORER.EXE - Классический Эксплорер
- TASKMAN.EXE - Таск Менеджер, вызываемый по Ctrl-Esc. Неплох как шелл
16-битные DOS файлы для корректной установки страны, экрана и клавиатуры
- COMMAND\KEYBRD3.SYS - Ctrl+Shift переключение клавиатуры
- COMMAND\COUNTRY.SYS - Таблицы преобразования большие/маленькие буквы
- COMMAND\DISPLAY.SYS - Драйвер дисплея
- COMMAND\EGA3.CPI - Загружаемый фонт
- COMMAND\KEYB.COM - Стартовалка переключения клавиатуры
- COMMAND\KEYBOARD.SYS - драйвер клавиатуры
- COMMAND\MODE.COM - Нужен для установки codepage
Заметим, что большая часть русификаторов НЕ устанавливает код страны и не
изменяет таблиц преобразования большие/маленькие и обратно. Проверить это
можно, попробовав создать в волков-коммандере директорию ЖОПА. ДОС позволит
это сделать, но внесёт цензурное исправление - директория окажется
названной ПОПА.
Если Вы всё-таки хотите использовать любимые русификаторы - не забудьте
использовать в autoexec.bat программу,
cyrdos.com -
маленький (740 байт) эквивалент строки
Country=007,866,C:\WINDOWS.000\COMMAND\country.sys
в config.sys
Файлы, в которых запускаемая винда не нуждается, но которые
могут быть очень нужны при её построении и после...
- драйвер CD-ROM (для IDE - можно воспользоваться универсальным
nec_ide.sys
- COMMAND\MSCDEX.EXE - CD-ROM редиректор для ДОСа. Применяется
для восстановления конфигурации, если Винда не грузится даже в Safe Mode
- COMMAND\SCANDISK.EXE - Фиксит проблемы файловой системы
- SETVER.EXE - Нужен только если Вам необходимо запускать софт, проверяющий версию ДОСа
- EMM386.EXE - Нужен, если некоторой программе требуется поддержка EMS
- IO.SYS - копия системного IO.SYS чтобы можно было корректно сказать SYS
- COMMAND\SYS.COM - Нужен, чтобы записать Boot
- COMMAND\FDISK.EXE - Нужен, чтобы записать Master Boot Record
- VC.COM
- Волков Коммандер, удобный и маленький
файл-менеджер под ДОС. Конечно, можно использовать и другие.
Результат
Суммарный размер получившегося - 7.4М перед первым запуском, и ок. 8.5М
после запуска (создаются Backup копии .DA0 файлов реестра,
ShellIconCache, TtfCache и прочие мелочи)
w95min02.zip - Основной архив
w95min.bat - Файл, который надо запускать
attrib.exe - программа установки атрибутов
w95min02.txt - Файл, который
можно использовать как список файлов с путями. Внимание! "WINDOWS.000"
в моём файле используется вместо "WINDOWS" дабы уменьшить вероятность
ошибочной распаковки полученного файла поверх нормально установленных
Виндов. :-)
Если Ваш дистрибутив достаточно похож на имевшийся в моём
распоряжении - Вы можете построить архив командами (предварительно
откорректировав пути в файл в текстовом редакторе):
C:\> copy io.sys C:\WINDOWS\
C:\> pkzip -whs -P w95min02.zip @w95min02.txt
Распаковка и установка этого архива на чистый диск C:
C:\> pkunzip -d w95min02.zip
C:\> cd \WINDOWS\COMMAND
C:\WINDOWS\COMMAND> fdisk /mbr
C:\WINDOWS\COMMAND> SYS ..\ C:
Таким образом, процедура переноса существенно проще и
быстрее, нежели переустановка Виндов.
Кое-что по той же теме
Have a nice DOS!
Пишите,
сообщайте о замеченных ошибках