вівторок, 3 вересня 2019 р.

Борьба за мегабайты. Очистка, часть 1

Продолжение статьи о методах оценки свободного места на диске и о методах эффективной очистки. В этой части — разбор наиболее часто встречающихся сценариев. Более специфические, частные случаи я рассмотрю в следующей части.

Очистка.

Небольшое замечание перед рассмотрением способов очистки: чаще всего проблема нехватки места на системном разделе возникает из-за неправильного разбиения жёсткого диска на разделы. Например, если для Windows XP достаточно было выделить 10-15 Гб на системный раздел, то для Windows 10 лучше всего зарезервировать 70-80 Гб.

1. Первое, с чего нужно начать, — просмотреть свои рабочие папки на системном диске (по умолчанию — С:). Чаще всего информация скапливается в папке "Загрузки". Стоит заглянуть также в "Документы", "Изображения", "Видео", "Музыку", просмотреть, что хранится на Рабочем столе. Некоторые программы создают папки в корне системного диска (например, Download Master (для загружаемых файлов), установщики драйверов, карантин некоторых антивирусных утилит). Стоит переместить их на другой диск или удалить. Также, при наличии дистрибутива, можно удалить временную папку установщика MS Office — C:\MSOcache (чтобы её увидеть, нужно включить отображение скрытых и системных файлов).

2. Удаляем ненужные программы — либо через стандартный апплет Панели управления, либо при помощи специализированных программ, наподобие Revo Uninstaller. Также стоит заменить раздутые программы "всё-в-одном" (например, Nero) на несколько более простых аналогов (можно подобрать на сайте alternativeto.net). А пакет Microsoft Office можно значительно облегчить, оставив только нужные компоненты (Word, Excel). Сделать это можно из того же апплета Панели управления, выбрав в списке установленных программ Microsoft Office и нажав кнопку "Изменить". Также после удаления ненужной программы имеет смысл вручную удалить её данные из папок %AppData% и %LocalAppData%.

3. Теперь можно приступать к очистке всевозможного программного "мусора". Программ для этого существует огромное количество и останавливаться на какой-то конкретной из них смысла нет, каждый подберёт себе по вкусу. Стоит, однако, заметить, что подавляющее большинство профессионалов негативно относятся к программам подобного рода, а особенно — к чистильщикам реестра (политика Microsoft по этому вопросу также довольно однозначна).
Вместо этого я немного подробнее остановлюсь на стандартной утилите Windows — "Очистка диска". В различных версиях Windows эта утилита располагается в разных местах главного меню, но есть несколько универсальных способ её запуска для любой версии системы:
  1. Через оснастку "Выполнить":
      • Нажмите комбинацию клавиш Win+R.
      • В появившемся окне введите команду cleanmgr.exe.
  2. При помощи Проводника:
      • Нажмите комбинацию клавиш Win+Е.
      • В появившемся окне найдите на панели слева системный диск (помечен специальным значком).
      • Щёлкните на нём правой кнопкой мыши и выберите пункт Свойства
      • В появившемся окне на вкладке Общие нажмите кнопку Очистка (или Очистка диска в Windows 7).
В появившемся окне выберите системный диск и нажмите ОК. После сканирования диска утилита предложит удалить ненужную более информацию. К тому же, в отличие от сторонних программ, она может корректно удалить папку Windows.old и старые драйвера, очистить папку WinSxS и выполнить сжатие неиспользуемых системных файлов (в Windows 8 и новее). В Windows 8 и более новых версиях очистка старых обновлений (т.е. папки WinSxS) доступна сразу же. Чтобы удалить старые обновления в Windows 7 SP1:
  1. установите обновление KB2852386 (лучше — через Windows Update);
  2. запустите от имени Администратора утилиту очистки диска;
  3. поставьте галочку напротив пункта "Очистка обновлений Windows" (если такого пункта нет, значит очищать нечего) и нажмите ОК.
    Количество удалённой информации при этом зависит от того, как давно была установлена система и как часто устанавливались обновления. После очистки нужно обязательно перезагрузиться!

    В Windows 10 кроме классической утилиты "Очистка диска" появились и свои собственные инструменты, отсутствующие в других версиях системы. В актуальной (на момент написания статьи) версии 1803 эти инструменты находятся по такому пути: Параметры → Система → Память устройства. Здесь, в разделе Контроль памяти, нужно перейти по ссылке Освободить место сейчас и выбрать  необходимые пункты. Кроме временных файлов, здесь присутствует и пункт Предыдущие установки Windows, активация которого даст наибольший эффект в плане освобождения места на диске. Но стоит иметь ввиду, что после этой операции будет невозможно откатиться на предыдущую версию Windows. Также можно позволить системе самой контролировать очистку диска, установив во включённое положение переключатель в секции Контроль памяти.

    4. Очистите карантин антивируса. В зависимости от многих факторов (уровень защиты системы, Интернет-активность пользователя, использование пиратских копий программ) в карантине антивирусной программы может скапливаться значительное количество данных. Как очистить карантин можно прочитать во внутренней справке установленной у вас программы или на сайте производителя.

    5. Настройте параметры защиты системы. По умолчанию под теневые копии резервируется от 3% до 5% (но не более 10 Гб) логического раздела. Настроить объём под свои нужды можно по адресу Панель управления → Система → Защита системы.  Совсем отключать эту полезную функцию (как и выделять слишком мало места) строго не рекомендуется, иначе восстановить работоспособность системы после сбоя будет значительно сложнее, если вообще возможно. В окне с настройками также можно удалить все старые точки восстановления.

    6. Отключите гибернацию. В принципе, гибернация  довольно полезная функция, так как позволяет не дожидаться загрузки ОС и фоновых программ, а практически сразу приступить к работе. Особенно это может пригодиться на ноутбуках, позволяя экономить заряд батареи. Однако, размер файла hiberfil.sys по умолчанию составляет 0.75 от объёма оперативной памяти. Поэтому, если вопрос экономии места на диске стоит острее экономии заряда батареи, то гибернацию можно отключить:
    1. Войдите в Windows с правами администратора.
    2. Откройте Панель управления  Электропитание  Настройка перехода в спящий режим.
    3. В раскрывающемся списке "Переводить компьютер в спящий режим" выберите "Никогда" и сохраните изменения.
    4. Нажмите сочетание клавиш Win+R.
    5. Введите команду powercfg -h off и нажмите ОК.
    7. Папка C:\Windows\Logs\CBS. Иногда при сбое службы обновления Windows в этой папке могут формироваться файлы журналов (*.log) размером до нескольких гигабайт. В обычной ситуации их удалять не следует, так как в них может содержаться полезная информация для диагностики системы в случае её сбоя. Если же файлы бесконтрольно растут, то поможет следующая процедура:
    1. Запустите оснастку управления службами: нажмите Win+R и введите services.msc.
    2. Отключите службу "Установщик модулей Windows" (тип запуска — "Отключена") и перезагрузитесь.
    3. Очистите папку C:\Windows\Logs\CBS.
    4. Установите службе "Установщик модулей Windows" тип запуска "Автоматически" и нажмите кнопку "Запустить".
    8. Папка C:\Windows\Installer. Это системная папка, где хранятся необходимые для удаления или обновления программ их инсталляторы, инсталляторы различных программных компонентов, патчи, файлы не установившихся системных обновлений и прочие данные, которые необходимы системе и установленным программам для определённых процессов. При активной установке/удалении программ размер этой папки может достигать нескольких десятков гигабайт. Тем не менее, Microsoft не рекомендует удалять её и содержащиеся в ней файлы, так как после этого будет невозможно корректно удалить или изменить установленные программы, также могут оказаться повреждены ярлыки программ и перестать корректно работать функция обновления системы. Следует заметить, что официально поддерживаемых методов очистки этой папки НЕТ. Но есть несколько сравнительно безопасных способов, которые я рассмотрю ниже. Итак:
    1. Если есть место на другом логическом диске, можно создать символическую ссылку. То есть, физически папка Installer будет располагаться на другом разделе или диске, но система и программы будут продолжать "думать", что папка находится в C:\Windows. Делается это так:
        • Скопируйте папку Installer на другой диск. Например, на D:\.
        • Удалите исходную папку.
        • Запустите командную строку с правами администратора.
        • В появившемся окне введите команду:
    mklink /j "c:\windows\installer" "d:\Installer"
      После всех выполненных действий в папке C:\Windows появится папка с именем Installer, но со стрелкой в углу, как у ярлыков.

    1. Можно использовать утилиту PatchCleaner. Программа предельно проста в использовании: после запуска она самостоятельно просканирует папку Installer и выдаст сведения о количестве и размере файлов, которые можно удалить (что не желательно) или переместить. Если вы решили переместить, а не удалить файлы, то после сканирования можно задать путь, по которому будут перемещены ненужные файлы. В случае неполадок во время удаления или изменения программ, можно будет переместить из этой папки файлы обратно в папку Installer.
      9. Папка C:\Windows\SoftwareDistribution. Сюда сохраняются загруженные обновления. Обычно эта папка не занимает много места, так как Windows периодически самостоятельно удаляет старые файлы, но в случае каких-либо системных проблем её размер может достигать нескольких гигабайт. В таком случае нужно будет её очистить:
      1. Запустите оснастку управления службами: нажмите Win+R и введите services.msc.
      2. Остановите службы "Службы криптографии", "Центр обновления Windows" и "Фоновая интеллектуальная служба передачи (BITS)".
      3. Переименуйте папку SoftwareDistribution (например, в SoftwareDistribution.old).
      4. Запустите ранее остановленные службы.
      5. Если создалась новая пустая папка SoftwareDistribution, то старую можно будет удалить.
      То же самое можно сделать и через командную строку:
      1. Запустите командную строку с правами администратора.
      2. Последовательно введите:
      3. net stop wuauserv
        net stop BITS
        net stop CryptSvc
        cd %systemroot%
        ren SoftwareDistribution SoftwareDistribution.old
        net start wuauserv
        net start bits
        net start CryptSvc
        rd /s /q SoftwareDistribution.old
      10. Папка C:\Windows\WinSxS. В п.3 был рассмотрен способ очистки этой папки при помощи стандартной системной утилиты "Очистка диска". Но, начиная с Windows 8, появились способы очистить папку WinSxS и через командную строку, используя утилиту dism. В командной строке, запущенной от имени администратора, нужно ввести:

      Dism.exe /Online /Cleanup-Image /StartComponentCleanup

      Действие этой команды полностью аналогично эффекту после применения утилиты "Очистка диска".

      Начиная с Windows 8.1 появилась возможность удалить не только промежуточные, но и исходные файлы, чьи новые версии были загружены системой обновления:

      Dism.exe /Online /Cleanup-Image /StartComponentCleanup /ResetBase

      ВНИМАНИЕ! После выполнения этой команды будет невозможно удалить никакие из существующих обновлений и пакетов обновления. Следующие обновления и пакеты обновления можно будет удалять.
      Также при помощи утилиты dism можно удалить резервные компоненты, необходимые для удаления пакета обновления (только для Windows 10):

      Dism.exe /online /Cleanup-Image /SPSuperseded
      ВНИМАНИЕ! После выполнения этой команды будет невозможно удалить пакет обновления.
      В серверных версиях Windows, начиная с Windows Server 2012, утилита "Очистка диска" (cleanmgr.exe) отсутствует. Можно установить её, добавив компонент "Возможности рабочего стола" (из группы "Пользовательские интерфейсы и инфраструктура"), но кроме этого добавится ещё множество не нужных на сервере утилит, поэтому использование консольных команд для очистки WinSxS на сервере является предпочтительным.

      Борьба за мегабайты. Оценка.

      Неоднократно столкнувшись с проблемой отсутствия свободного места на диске, я понял, что уже накопил достаточно опыта в решении этой задачи, чтобы поделиться им с другими. Эту статью я адресую прежде всего начинающим пользователям, но, думаю, что и опытные найдут для себя пару полезных советов.

      Все рассмотренные здесь методы оценки и очистки ориентированы на пользователей Windows 7 и более поздних версий. XP пора на пенсию :) Но некоторые советы подойдут и для этой ОС. 

      Статья состоит из трёх частей:
      1. Оценка - как правильно оценить занятое и свободное пространство на жёстком диске.
      2. Очистка, часть 1 - как эффективно и безопасно удалить ненужные данные (наиболее распространённые сценарии).
      3. Очистка, часть 2 - частные случаи.

      Оценка.

      Для начала нужно научиться правильно оценивать занятое и свободное место на диске. Многие новички удивляются тому факту, что объёмы занятого и  свободного пространства различаются, если посмотреть в свойства диска, а затем выделить в Проводнике папки и посмотреть их суммарный объём.

      Что же прячет Windows?

      1. Скрытые и системные файлы и папки. В корне диска находятся файлы подкачки (pagefile.sys), гибернации (hiberfil.sys), а начиная с Windows 8 — своп для современных приложений, а также разные скрытые папки, созданные системой и/или приложениями.
      2. Папки с ограниченным доступом. Чаще всего это папки типа Recovery, содержащие данные для восстановления системы.
      3. Теневые копии. В папке System Volume Information нередко содержатся значительные объёмы данных, но увидеть её размер, как и получить доступ внутрь папки, из Проводника невозможно. Как вариант, можно запустить любой файловый менеджер с правами администратора или стать владельцем папки (категорически не рекомендуется становиться владельцем этой папки в частности и защищённых папок и файлов вообще, так как кроме пользователя к ним может получит доступ и вредоносное программное обеспечение).
      4. Жёсткие ссылки. Что это такое и с чем их едят, можно прочитать в этой статье или в этой теме на форуме Oszone.
      5. Альтернативные потоки данных NTFS, MFT и прочие метаданные, индексы. Это всё тоже скрыто от глаз пользователя, но занимаемое ими пространство сравнительно невелико.
      6. Вредоносное ПО. Многие вирусы скрывают свои папки и исполняемые файлы. Впрочем, включив режим отображения скрытых файлов и папок, можно их увидеть. Это не относится к руткитам, которых никакой файловый менеджер увидеть не в состоянии.

      Разобравшись с тем, что скрыто, перейдём непосредственно к методам оценки занятого пространства на жёстком диске:

      1. Наиболее точным и простым методом определения занятого места на диске является… графический интерфейс Windows! Для этого перейдите в Компьютер (в Windows 8 и старше — Этот компьютер), щёлкните правой кнопкой мыши на нужном диске и выберите пункт Свойства. Однако, если вы используете у себя в системе дисковые квоты, лучше воспользоваться оснасткой управления дисками. Получить к ней доступ можно несколькими способами:
      • Нажать комбинацию клавиш Win+R  ввести diskmgmt.msc  нажать Enter.
      • Щёлкнуть правой кнопкой мыши на значке Компьютер (в Windows 8 и старше — Этот компьютер Выбрать Управление компьютером → Выбрать оснастку Управление дисками в списке слева.
      2. Через командную строку, используя утилиту fsutil. Причём, начиная с Windows 8, функционал утилиты был значительно расширен и показывает гораздо больше полезных сведений, чем в Windows 7:
      • Windows 7: fsutil volume diskfree С:
      • Windows 8 и новее: fsutil volume allocationreport C:
      Команда для Windows 8 и старше выдаст длинный отчёт со множеством сведений о служебных файлах NTFS, теневых копиях, структуре папок, файлах, но если нужна только общая картина, то достаточно будет сведений из шапки отчёта. Что-то вроде этого:
      Отчёт о выделении:
      Всего кластеров: 20390399 (83519074304 байт)
      Свободно кластеров: 3915248 (16036855808 байт)
      Зарезервирован­о кластеров: 4080 (16711680 байт)
      Всего выделено: 67482218496 байт
      3. При помощи специализированных утилит, наподобие Windirstat или аналогов.

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

      Размер некоторых системных папок можно узнать, используя командную строку.
      1. C:\Windows\WinSxS (при этом показываются размеры как с учётом, так и без учёта жёстких ссылок):
      Dism.exe /Online /Cleanup-Image /AnalyzeComponentStore

      2. System Volume Information (теневые копии системы):
      vssadmin list shadowstorage

      Иногда бывает, что свободное место на диске начинает уменьшатся совершенно бесконтрольно. Найти виновника замусоривания поможет утилита от Марка Руссиновича Process Monitor, а методика анализа подробно изложена в этой статье.

      суботу, 16 березня 2019 р.

      Как бороться с pigiuqproxi.com?

      Собственно, что это за ресурс и для чего самые разные сайты используют его в своей работе, я ответа, к сожалению, не нашёл (если найдёте, отпишитесь в комментариях). Возможно, что это некий прокси (судя по названию), который помогает рекламодателям бороться с блокировкой рекламы, но это не точно. Также есть сведения, что некоторые антивирусы реагируют на него, как на вредоносный. Самое же неприятное — это то, как начинают вести себя сайты, если у вас установлен какой-либо блокировщик рекламы. Если кратко, то полностью слетает вёрстка сайта, а большая часть информации вообще не отображается (особенно мультимедиа — картинки, видео). Ещё в 2017 году один из пользователей Хабра исследовал эту проблему и обнаружил, что такое поведение обусловлено тем, что "Эта зараза делает запрос на определённый юрл (URL - прим. моё), и в случае отвала (попадания в фильтр адблока, например) — вызывает window.stop(), чем ломает всю страницу". Однако решение, предложенное пользователем, хотя и относительно рабочее, было раскритиковано в комментариях и там же была предложена альтернатива (см. п. 3). В принципе, можно и отключать блокировщик на этих сайтах, но мне кажется это не очень хорошей идеей. Поэтому ниже я рассмотрю несколько способов, как бороться с этой гадостью. Итак:
      1. Внести домен pigiuqproxi.com в исключения блокировщика. Не намного лучше, чем полный отказ от блокировки рекламы, так как неизвестно, что это за ресурс и каковы его функции. Хотя администратор форума Adguard утверждает, что "Ничего не передаётся(в случае Адгарда), проверено. Оттуда один скрипт загружается, который вхолостую работает(ничего не делает)" мы на это не поведёмся и будем бороться)
      2. Установить расширение от Adguard. Похоже, что оно чуть ли не единственное, которое имеет встроенный функционал для противодействия этой гадости. И, в принципе, если вы не хотите лишних телодвижений, то можно на этом и остановиться.
      3. Наиболее же эффективное решение — это связка AdBlock/uBlock Origin/uMatrix + Tampermonkey. Более подробно о Tampermonkey можно почитать на официальном сайте (в двух словах — это менеджер пользовательских скриптов), нас же интересуют предоставляемая им возможность расширить функционал стандартных блокировщиков рекламы. Итак:
        • Устанавливаем любой из указанных выше блокировщиков рекламы.
        • Устанавливаем расширение Tampermonkey (Chrome, Mozilla, Opera, Safari).
        • Переходим на страницу с нужным нам скриптом RU AdList JS Fixes.
        • Нажимаем большую зелёную кнопку с надписью "Установить этот скрипт", затем кнопку "Установить" в настройках расширения (туда перебросит автоматически) и получаем нормально выглядящие страницы с заблокированными непонятно что делающими скриптами. Бонусом этот скрипт "подчищает" то, с чем не справляются блокировщики.
      P.S. Я намеренно не рассматривал программы-блокировщики по типу того же Adguard или Admuncher, так как они "заточены" под Windows. Мне же хотелось рассказать об универсальном, кроссплатформенном решении.