domingo, 6 de outubro de 2013

Desativar serviços no Windows 7

O Windows 7 ( e todos os outros Windows depois e antes) tem uma grande quantidade de serviços a correr em background cuja única finalidade parece ser consumir recursos sem fornecer grande serviço...
Infelizmente, desligar serviços à toa pode ter consequências desagradáveis, pois estão interligados por uma rede de dependências e nem sempre é claro qual a consequência de desativar determinado serviço.
Ainda assim, compilei uma lista de serviços que são mais ou menos seguros de desativar, em determinadas situações.
A partir da linha de comandos os serviços podem ser desligados com sc stop "nome_do_serviço" e ligados com sc start "nome_do_serviço". Para desativar realmente o serviço também pode ser usado a linha de comandos, mas não vou aqui fazer isso. Apenas voi criar dois batch files para parar e reiniciar os respetivos serviços. Os comentários das batch files são auto-explicativos.

Desligar seviços


@echo off
rem Sem Homegroup estes seviços são desnecessários
sc stop "upnphost"
sc stop "Mcx2Svc"
sc stop "SSDPSRV"
sc stop "HomeGroupProvider"

rem Desligar o aero, temas, animações, etc do ecrã
sc stop "UxSms"
sc stop "Themes"

rem Desligar a impressora, scanner, fax
sc stop "Spooler"
sc stop "StiSvc"
sc stop "TapiSrv"
sc stop "Fax"

rem Desligar o diagnóstico e relato de erros
sc stop "DPS"

rem Desligar o ambiente de trabalho remoto
rem (tanto cliente como servidor)
sc stop "UmRdpService"
sc stop "SessionEnv"
echo Esperar 2 segundos...
choice /c sn /n /t 2 /d s
sc stop "TermService"

rem Desligar as atualizações e pesquisa do Windows
sc stop "wuauserv"
sc stop "WSearch"
sc stop "WPDBusEnum"
sc stop "BITS"
sc stop "lmhosts"

rem Desligar outras atualizações (adobe e google)
sc stop "AdobeARMService"
sc stop "gupdate"
sc stop "gupdatem"

Ligar os serviços


@echo off
rem Para usar o Homegroup
sc start "upnphost"
rem sc start "Mcx2Svc"
sc start "SSDPSRV"
sc start "HomeGroupProvider"

rem Ativar aero e animações de ecrã, etc
sc start "UxSms"
sc start "Themes"

rem Ativar a impressora e scanner
sc start "Spooler"
sc start "StiSvc"
sc start "TapiSrv"

rem Ativar o diagnósticos e relato de erros
sc start "DPS"

rem Ativar o ambiente de trabalho remoto
rem (cliente e servidor)
sc start "SessionEnv"
sc start "TermService"
sc start "UmRdpService"

rem Ativar atualizações e pesquisa do Windows
sc start "wuauserv"
sc start "WSearch"
sc start "WPDBusEnum"
sc start "BITS"
sc start "lmhosts"

rem Ativar outras atualizações (adobe, google)
sc start "AdobeARMService"
sc start "gupdate"

Parando todos os serviços é possível libertar várias centenas de MiB de memória RAM e muitos ciclos de processador.


Referências


sexta-feira, 4 de outubro de 2013

Restaurar WIM no Linux

Os ficheiros WIM (Windows IMage) são ficheiros comprimidos que contêm uma estrutura de diretórios ou um sistema de ficheiros inteiro do Windows e mais alguns metadados necessários para restaurar os ficheiros.
Os ficheiros WIM são normalmente usados para guardar e restaurar a partição de sistema do Windows, sendo portanto usados nas partições e discos de recuperação.
Um ficheiro WIM pode conter vários "volumes" internamente. A reposição do sistema normalmente implica a reposição de todos os volumes do ficheiro.
O ficheiro de reposição tem geralmente o nome boot.wim, mas pode ter outros nomes (como install.wim, final.wim, etc).
Os portáteis costumam trazer um programa específico para ler estes ficheiros e executar a recuperação do sistema.
Também é possível fazer a recuperação "à mão" usando o utilitário imagex.exe da Microsoft.O imagex é um executável de menos de 1 MiB que está incluído no WAIK (Windows Automated Installation Kit), que é um download de quase 2 GiB.
A recuperação pela linha de comandos não é propriamente simples, pois é preciso ter outro Windows onde executar os comandos, uma vez que vamos apagar completamente o Windows "original" do disco.
Existe, no entanto, um pacote wimtools para linux que permite manipular os ficheiros WIM de forma muito semelhante ao Windows.
As wimtools estão disponíveis em várias distribuições, mas o mais simples é usar Ubuntu, pois há um PPA para várias versões de Ubuntu:

sudo add-apt-repository ppa:nilarimogard/webupd8
sudo apt-get update
sudo apt-get install wimtools

Admitindo que o ficheiro WIM está em /media/pen/boot.wim e que a partição de destino é /dev/sda2, é preciso:

  1. Formatar a partição /dev/sda2 para ntfs
  2. Recuperar o ficheiro WIM:
    wimlib-imagex apply /media/pen/boot.wim 1 /dev/sda2
    1. Repetir o comando anterior para todos os volumes dentro de boot.wim (o número identifica o volume)
  3. Atualizar o gestor de arranque (por exemplo o Grub) para reconhecer os novos ficheiros na partição /dev/sda2
  4. Reiniciar e esperar
Depois fazer uma imagem com o partimage e salvar o setor de arranque e tabela de partições com o dd, porque os ficheiros WIM são muito chatos de usar.