На раннем этапе использования томов NTFS во времена рождения операционной системы Windows NT, компания Microsoft настаивала на отсутствии фрагментации в файловой системе NTFS, что исключало необходимость использования утилиты дефрагментации. После того, как несколько инструментов третьих фирм доказали обратное, компания Microsoft начиная с Windows 2000 предоставляет свою систему дефрагментации в составе операционной системы.

Так как файлы постоянно записываются и удаляются с жесткого диска, части единого файла могут оказаться разбросанными по всему жесткому диску (это называется фрагментация), что требует от операционной системы дополнительного времени на обратную сборку файла.

Если в систему не вносились изменения и она все равно работает все медленнее и медленнее с каждым месяцем, высока вероятность, что причиной является фрагментация жесткого диска.

В операционной системе Windows 2000 администраторы и пользователи могут использовать утилиту с графическим интерфейсом (рассматривается в следующем разделе) для анализа и дефрагментации жестких дисков. Начиная с Windows XP и Windows Server 2003 администратору предоставляется возможность использования утилиты командной строки для выполнения дефрагментации.

Утилита называется defrag. Хотя это не очень впечатляет (зачем мне утилита для командной строки, если есть утилита с графическим интерфейсом?), возможность дефрагментировать диск с помощью утилиты из командной строки позволяет создавать пакетные файлы, которые до этого создать было невозможно. Например, утилита defrag может вызываться с другими командами из пакетного файла, который по расписанию запускается каждый месяц.

Запуск такого файла по воскресеньям в три часа ночи раз в месяц позволяет решать проблемы быстродействия файловой системы еще до того, как пользователь о них узнает.

Команда defrag имеет следующий синтаксис:

defrag <том> [-a] [-f] [-v]

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

Параметры команды defrag

Параметр

Использование

том

указывает букву диска (с символом :), точку монтирования или имя тома, для которого запускается команда defrag

-a

только выполнить анализ — отображает отчет о состоянии фрагментированности диска

-f

принудительная дефрагментация даже при отсутствии такой необходимости

-v

подробный режим — заставляет утилиту отображать подробную информацию об анализе фрагментации

Теперь, когда было показано, как работает команда defrag, рассмотрим ее использование для выполнения превентивного обслуживания дисков. Служба Планировщик заданий Windows (Windows Task Scheduler) предоставляет простой интерфейс для планирования регулярного запуска определенных команд. Ниже приводится последовательность действий по настройке Планировщика заданий на ежемесячный запуск дефрагментации системного диска D.

1. Откройте Планировщик заданий (Task Scheduler), выбрав команду Пуск > Все программы > Стандартные > Системные утилиты > Запланированные задания (Start > All Programs > Accessories > System Tools > Scheduled Tasks).

2. В окне Запланированные задания (Scheduled Tasks) кликните на меню Файл (File) и выберите Создать (New). После этого кликните на Запланированные задания (Scheduled Tasks).

3. После появления пиктограммы для нового задания, назовите задание "MonthlyDefrag".

4. Кликните правой кнопкой на пиктограмме задания и выберите Свойства (Properties).

5. Введите команду defrag d: в поле Выполнить (Run).

6. После этого переходите на вкладку Расписание (Schedule) для установки дня и времени запуска задания.

7. В выпадающем меню Запланировать задание выберите поле Ежемесячно (Monthly).

8. В качестве времени запуска (Start Time) укажите 5:00 A.M.

9. В части окна Запланировать ежемесячно (Schedule Task Monthly) кликните на переключателе и выберите Первая (First) и Суббота (Saturday).

10. Кликните на кнопке OK.

11. Запланированная задача может быть испытана с помощью щелчка правой кнопкой мыши на пиктограмме задачи в окне Запланированные задания (Scheduled Tasks) и выбора пункта Запустить (Run).

Запланированные задания можно настраивать и с помощью командной строки, используя команду schtasks. Дополнительная информация по использованию этой команды доступна после ввода команды schtasks /?.