Уменьшение размера операционных систем Windows 2000/XP/2003
В этой статье описано, как уменьшить объём, занимаемый установленной операционной системой семейства Windows 2000 / XP / Server 2003. Для Windows 98/ME это не так актуально, поскольку инсталлятор этих систем позволяет выбирать необходимые компоненты. xcm
🕛 15.11.2004, 22:00
В этой статье описано, как уменьшить объём, занимаемый установленной операционной системой семейства Windows 2000 / XP / Server 2003. Для Windows 98/ME это не так актуально, поскольку инсталлятор этих систем позволяет выбирать необходимые компоненты. В NT-системах ситуация иная. Здесь всегда устанавливается стандартный набор компонентов, не спрашивая пользователя о том, что ему нужно, а что нет. В результате пространство на жёстком диске захламляется тем, что, возможно, никогда не будет использоваться.
Итак, уменьшить размер операционной системы можно несколькими способами.
1. Вручную
1.1. Используйте Добавить/удалить компоненты Windows (Add/Remove windows Components)
В директории %WinDir%\inf найдите файл sysoc.inf и удалите в нём слово hide или HIDE везде, где найдёте. При удалении будьте внимательны: удалять нужно только само слово «Hide», а запятые, между которыми оно находится, надо оставить нетронутыми.
После проведенной операции в Панели управления > Установка и удаление программ > Установка и удаление компонентов Windows появятся новые пункты.
Конечно, система не позволит вам удалить такие компоненты, как WMI или COM+ и некоторые другие. Но, например, вы сможете избавиться от Internet Explorer, MSN Explorer, Outlook Express и Windows Messenger.
1.2. Удалите отдельные папки и файлы
Конечно, при условии, что у вас есть соответсвующая квалификация и опыт - необходимо знать, за что отвечает тот или иной файл в ОС. Обычной рекомендацией в этом случае является удаление папки %WinDir%\Driver Cache\i386\. В ней содержатся драйвера для добавления различных устройств, поддерживаемых ОС.
Если вы удалите эту папку, при подключении любого нового оборудования Windows будет запрашивать дистрибутив.
1.3. Отключите Восстановление системы (System Restore)
Это удалит информацию, которая хранится в папках «System Volume Informatiоn».
Сделать это можно в свойствах «Моего компьютера» на соответствующей вкладке. Там же можно изменить максимальный размер, который смогут занимать на диске резервные копии файлов (по умолчанию - 12%).
System Restore - функция, позволяющая в случае сбоя вернуть систему в одно из предварительно сохранённых состояний. Она восстанавливает повреждённые системные и изменённые конфигурационные файлы ОС. Эта функция доступна только в Windows XP и по умолчанию включена. Подробнее о System Restore читайте на Microsoft TechNet.
1.4. И еще одну папку можно очистить - %WinDir%\system32\dllcache\
В ней хранятся копии защищенных системных файлов, используемые для автоматического восстановления оригиналов в случае их повреждения (см. ниже про WFP). Впрочем, если вы просто удалите содержимое этой папки, очень скоро система опять заполнит её до заданного предела (по умолчанию - 400 мб). Этот предел устанановлен в реестре параметром SFCQuota (0xFFFFFFFF), находящемся в ключе
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Winlogon
Чтобы папка dllcache не заполнялась автоматически, это значение можно изменить до нуля можно командой sfc:
sfc /cachesize=0
Или, например, до 10 Мб:
sfc /cachesize=10
1.5. Удалите из системного каталога ОС мультимедийные файлы: картинки, звук, видео, каталоги отката после установленных патчей (имеют вид $NtUninstallKB123456$) и так далее. Если вы не пользуетесь встроенной справочной системой, можно удалить файлы типов *.hlp и *.chm.
Надо иметь ввиду, что для удаления некоторых файлов может потребоваться обойти Защиту файлов Windows (Windows File Protection).
Windows File Protection (WFP) - функция, постоянно контролирующая подлинность системных файлов. В случае замены такого файла неизвестной версией (не подписанной Microsoft), ОС вернёт исходный файл на место. При этом файл будет взят из папки dllcache, а при его там отсутствии - из дистрибутива. Если дистрибутив также не будет доступен, будет выведена просьба к пользователю вставить установочный CD. Можно также принудительно запустить проверку всех системных файлов - для этого служит команда sfc. Отключение Windows File Protection категорически не рекомендуется - это сильно подрывает безопасность, открывая доступ к системным файлам как неквалифицированным пользователям, так и вирусам.
Подробнее о Windows File Protection (в русский версиях Windows - «Защита системных файлов») читайте на сайте Windows Hardware Quality Labs (WHQL).
Отключение WFP средствами Windows не предусмотрено. Впрочем, в Windows 2000 RTM (без Service Pack-ов) сделать это очень легко. Достаточно воспользоваться встроенным в ОС редактором реестра regedit и изменить по адресу
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Winlogon
значение ключа SfcDisable на dword:ffffff9d. Для того что бы включить WFP обратно, этот же ключ надо изменить на 0. А можно вместо редактирования реестра напрямую воспользоваться практически любым твикером.
Твикер - программа тонкой настройки ОС. Основная работа такой программы - изменение ключей реестра, отвечающих за ту или иную системную функцию. Большинство твикеров выпускаются сторонними производителями, хотя есть и несколько программ такого рода и от Microsoft. Например, TweakUI - конечно, она не даёт возможности отключения WFP.
В качестве такого твикера можно взять, например, специально написанную для отключения WFP программу SetSFC.
Этот метод не работает с тех пор, как был выпущен Windows 2000 Service Pack 1. Есть один вполне официальный способ, но он подходит только для тех, кому действительно важно отключение WFP - то еть для разработчиков ПО. Здесь требуется присутствие отладчика ядра, поэтому мы этот метод рассматривать не будем. Если для вас это актуально - изучите статью Microsoft Knowledge Base «KB222193: Registry Settings for Windows File Protection» («KB222193: Описание механизма защиты файлов Windows»).
Для того, чтобы получить возможность отключать Windows File Protection в ОС Windows 2000 SP1 и старше, необходимо внести изменеия в системные файлы (проще говоря, крякнуть их). Читайте об этом в статье Джереми Коллэйка (Jeremy Collake) «Disabling Windows File Protection in Windows 2000 and Windows XP or Dispelling WFP myths». Здесь приведены изменения для файлов Windows 2000 SP2, SP4, Windows XP RTM и SP1. Готовые файлы для Windows XP SP2 и Windows Server 2003 можно взять на сайте Vortex-а.
Однако, если вам нужно удалить или заменить один конкретный файл, совсем не обязательно отключать для этого WFP. Проще сначала заменить его в дистрибутиве (если он хранится в доступном ОС месте, например, в локальной сети), затем в папке dllcache и потом уже - в папке системы. Тогда WFP не сможет автоматически восстановить исходную версию и запросит диск с дистрибутивом. Если эту просьбу отклонить, новый файл останется в системе.
2. Автоматически, используя предназначенные для этого программы
Утилиты подобного рода можно разделить на две категории:
- те, которые вычищают ненужное из уже установленной системы и
- те, которые уменьшают размер ОС ещё в дистрибутиве до инсталляции.
2.1. К первым относится, например, XPlite and 2000lite Professional (коммерческая).
Официальный сайт программы: litepc.com/xplite.html.
Узнать подробнее и задать интересующий вас вопрос можно в теме XPlite and 2000lite Professional v1.0 GOLD.
Программа позволяет деинсталлировать стандартные приложения, игры, коммуникационные возможности, Internet Explorer, мультимедиа (звуки, картинки, DirectX, MediaPlayer), основные и дополнительные шрифты, а также отдельные системные службы.
2.2. Но на мой взгляд, второй класс программ значительно более интересен.
Пока мне известен только один его представитель - NLite. Текущая версия 0.96 Beta (бесплатная).
Адрес официального сайта: nuhi.msfnhosting.com.
Тема для обсуждения на на Ru.Board: nLite.
Для работы этой программы потребуется установить Microsoft .NET Framework.
Суть подхода заключается в том, что с помощью этой программы вы собираете собственный дистрибутив, включая туда только то, что нужно вам.
Конечно, специалисты знают о так называемм Unattended setup - атоматическом методе установки операционных систем семейства Windows. Он заключается в подготовке специального файла ответов на вопросы программы-инсталлятора и запуске установки с ключом командной строки, указывающим на этот файл. Файл называется Unattend.txt (при расположении дистрибутива на жёстком диске или в локальной сети) или Winnt.sif (в случае установки с CD). Руководствуясь параметрами, заданными в этом файле, система устанавливается в автоматическом режиме и не задаёт вопросов пользователю.
Подробно об Unattended setup можно прочитать в документе unattend.doc, поставляемом с дистрибутивом ОС (каталог Support\Tools, архив DEPLOY.CAB).
На Ru.Board вопросы автоматической установки Windows обсуждаются в темах:
Автоматическая (unattended) установка Windows
Windows 2000 Unattended Installation
WinXP unattended setup
В этих же темах можно найти ссылки на полезные ресурсы по данному вопросу.
Данный способ, в отличие от обычной установки, даёт возможность управлять инсталляцией различных компонентов ОС. Делается это в секции [Components] файла ответов. Она определяет устанавливаемые компоненты, так что есть возможность инсталлировать только то, что нужно.
[Components]
calc=Off
; Калькулятор
cdplayer=Off
; Проигрыватель CD
charmap=On
; Таблица символов
chat= Off
; Microsoft Chat
deskpaper=Off
; Обои для рабочего стола
dialer=On
; Номеронабиратель
freecell=Off
; Игра «Свободная ячейка»
hypertrm=On
; Гипертерминал
media_clips=Off
; Примеры звуковых файлов
media_utopia=Off
; Звуковая схема «Utopia»
minesweeper=Off
; Игра «Сапёр»
mousepoint=Off
; Набор указателей мыши
mplay=Off
; Media Player
mswordpad=On
; Текстовый редактор «WordPad»
netoc=On
; Дополнительные сетевые компоненты, определяемые в секции [NetOptionalComponents].
objectpkg=Off
; Упаковщик объектов
paint=On
; Графический редактор «Paint»
pinball=Off
; Игра «Пинболл»
rec=Off
; Звукозапись
solitaire=Off
; Игра «Солитер»
templates=On
; Шаблоны документов
Разработчик nLite пошел другим путем. Дело в том, что список всех файлов, подлежащих копированию, установщик ОС берёт из файла под именем TXTSETUP.SIF. Он содержит описание структуры каталогов Windows и некоторую служебную информацию для инсталлятора. Вот как выглядит фрагмент этого файла.
[SourceDisksFiles]
_default.pif = 1,,,,,,,1,2,0
0401.csv = 1,,,,,,,59,0,0
0404.csv = 1,,,,,,,59,0,0
0405.csv = 1,,,,,,,59,0,0
0406.csv = 1,,,,,,,59,0,0
0407.csv = 1,,,,,,,59,0,0
0408.csv = 1,,,,,,,59,0,0
040b.csv = 1,,,,,,,59,0,0
040c.csv = 1,,,,,,,59,0,0
040d.csv = 1,,,,,,,59,0,0
040e.csv = 1,,,,,,,59,0,0
0410.csv = 1,,,,,,,59,0,0
0411.csv = 1,,,,,,,59,0,0
0412.csv = 1,,,,,,,59,0,0
0413.csv = 1,,,,,,,59,0,0
0414.csv = 1,,,,,,,59,0,0
0415.csv = 1,,,,,,,59,0,0
0416.csv = 1,,,,,,,59,0,0
0419.csv = 1,,,,,,,59,0,0
041d.csv = 1,,,,,,,59,0,0
041f.csv = 1,,,,,,,59,0,0
0804.csv = 1,,,,,,,59,0,0
0c0a.csv = 1,,,,,,,59,0,0
12520437.cpx = 1,,,,,,,2,0,0 ; mdac
12520850.cpx = 1,,,,,,,2,0,0 ; MDac
1394.inf = 1,,,,,,,20,0,0
1394bus.sys = 1,,,,,,2_,4,1
15_16wdm.sys = 1,,,,,,,,3,3
3dgarro.cur = 1,,,,,,,2,3,3
3dgmove.cur = 1,,,,,,,2,3,3
3dgnesw.cur = 1,,,,,,,2,3,3
3dgno.cur = 1,,,,,,,2,3,3
3dgns.cur = 1,,,,,,,2,3,3
3dgnwse.cur = 1,,,,,,,2,3,3
3dgwe.cur = 1,,,,,,,2,3,3
3dsmove.cur = 1,,,,,,,2,3,3
3dsns.cur = 1,,,,,,,2,3,3
3dsnwse.cur = 1,,,,,,,2,3,3
3dwarro.cur = 1,,,,,,,2,3,3
3dwmove.cur = 1,,,,,,,2,3,3
3dwnesw.cur = 1,,,,,,,2,3,3
3dwno.cur = 1,,,,,,,2,3,3
3dwns.cur = 1,,,,,,,2,3,3
Если вы не желаете, чтобы тот или иной файл попал в вашу систему, поставьте символ «;» перед названием или удалите соответствующую строку.
NLite предпочитает второй вариант. С помощью графического интерфейса вы можете выбрать удаляемые файлы/группы от драйверов устройств до отдельных служб.
Для новичков подойдет режим recommended, в котором наименее используемые, с точки зрения автора программы, файлы уже отмечены. Для продвинутых пользователей - режим custom, в котором можно выбрать все, что душа пожелает.
Кроме того, есть опция добавления произвольного файла для удаления.
Далее по результатам анализа выбранных опций программа сгенерирует новый TXTSETUP.SIF, перепакует driver.cab, перестроит некоторые inf-файлы. Полный список этих действий можно найти в файле журнала (логе) программы, расположенном по установочному пути. Также выбранные опции сохраняются в INI-файле. По вашему желанию может быть создан ISO-образ для прожига на CD.
На практике вполне получается ужать дистрибутив Windows XP до 150 Мб.
Программа NLite не подойдет для использования на производстве. В домашних же условиях вы можете применять ее под свою ответственность. Причина - NLite содержит программы expand, makecab и cdimage. Первые две входят в Windows, то есть являются объектами Авторского права Microsoft. Третья же вообще не распространяется, а предназначена только для внутреннего использования Microsoft.
Если сравнить рассматриваемые программы, напрашивается вывод, что они дополняют друг друга. В уже установленной существующей системе можно расчистить место с помощью XPLite Pro. Для систем, которые только планируется установить, подходит nLite. Возможно, одна из утилит со временим разовьется и будет предоставлять и те, и другие возможности «в одном флаконе».
При подготовке статьи использованы материалы Windows XP FAQ.