sábado, 30 de maio de 2009

Problemas em Ligar um disco USB

No outro dia tive um amigo que me pediu ajuda pois tinha um disco USB que não era reconhecido pelo seu sistema operativo. O sistema operativo era o Windows Vista.
O disco era reconhecido noutros computadores logo não poderia ser problema do disco.

Já se tinha tentado remover e reinstalar os drivers das controladoras USB sem sucesso.
Não dava para instalar os mais recentes porque o fabricante era a abit e esta já deixou o nosso mundo há uns largos meses.

naveguei um pouco na net até que encontrei resposta num blog de um desconhecido.
Como resolveu o problema aqui fica a solução para mais alguem que necessite.

Fonte:

http://tim.mackey.ie/VistaDriverProblemsFormacUSBHardDrive.aspx

Tradução:
"Aparentemente existe um bug com o Windows Vista em que podemos ter um driver corrupto no ficheiro de cache, se nós o apagarmos então resolverá todos os nossos problemas.
O ficheiro em causa é chamado INFCACHE.1 e está em c:\windows\inf. Eu descobri isto num newsgroup. Aqui ficam as partes mais relevantes:

A solução para este problema irritante parece passar por localizar e apagar o ficheiro INFCACHE.1, que pode estar corrompido e a causar o problema. Para apagar este ficheiro temos que alterar as permissões para que os utilizadores possam aceder. (Carregar com o botão direito do rato no ficheiro escolher propriedades e depois segurança). O ficheiro está localizado em C:\Windows\inf . (Nota: Para ver o ficheiro INFCACHE.1, temos de configurar o windows para mostrar os ficheiros ocultos e de sistema) "

Nota: Quando modificamos estes ficheiros devemos ter em conta a ownership do ficheiro para mais tarde repor tudo no formato anterior, apesar de para pode-lo renomear ou mesmo apagar teremos de fazer um take ownership para o nosso utilizador para nos tornarmos o dono do ficheiro. Depois adicionamos permissões de fullcontrol para o nosso utilizador."


Depois é só fazer reboot e já está :)

Atenção ás permissões iniciais do ficheiro, convém repor da forma correcta não vá ser uma falha de segurança.

Espero que vos ajude.




quarta-feira, 13 de maio de 2009

Utilização / paginação de memoria nos vários Windows....

Reparei que para muitas pessoas existe grande confusão sobre quais os SO's e quantos GB podem paginar ou ocupar....
Aqui fica uma breve lista.

Os limites de memória ou da sua utilização estão dependentes da plataforma, sistema operativo ou se estão a usar o IMAGE_FILE_LARGE_ADDRESS_AWARE e o 4GB Tunning (4GT).
O image IMAGE_FILE_LARGE_ADDRESS_AWARE é defenido ou limpo utilizando a opção /LARGEADDRESSWARE

Os limites das memorias fisicas num sistema a 32bits também está dependente do PAE que permite aos sistemas operativos com mais de 4Gb de alocarem a memoria em excesso.

Aqui ficam os limites de memoria:

User-Mode virtual address space para cada processo 32bits

num SO a 32bits.
2 GB
até 3Gb se usarmos IMAGE_FILE_LARGE_ADDRESS_AWARE e 4GT

num SO a 64bits
2Gb sem IMAGE_FILE_LARGE_ADDRESS_AWARE (defeito)
4Gb com IMAGE_FILE_LARGE_ADDRESS_AWARE


User-mode virtual address space para cada processo a 64bits.

Num SO a 64bits
com IMAGE_FILE_LARGE_ADDRESS_AWARE cleared (defeito)
x64 - 8Tb
Itanium - 7TB

2GB sem IMAGE_FILE_LARGE_ADDRESS_AWARE

---------------------------------------------------------------------------------------------


Kernel-Mode Virtual Address
SO a 32bits
2Gb
de 1Gb até 2Gb com o 4GT

SO a 64bits
8TB


---------------------------------------------------------------------------------------------

Paged pool

SO a 32bits
limitado pela chave de registo pagedpoolLimit
Windows vista está limitado apenas para o Kernel mode virtual address space.
Windows Server 2003: 530Mb
Windows XP: 490Mb
Windows 2000: 350Mb

SO a 64bits

Windows Server 2003 e XP
até 128Gb dependendo da configuração e RAM

---------------------------------------------------------------------------------------------

Non Paged Pool

Limitada pela chave nonpagedpoollimite

Com SO a 32bits
Windows Server 2003, windos XP / 2000: 256Mb ou 128Mb com 4GT

Com SO a 64bits
75% da ram disponivel com máximo de 128Gb
Windows vista 40% da ram até ao máximo de 128Gb
Windows server 2003 e Windows XP
até 128Gb Ram


------------------------------------------------------------------------------------------------

System cache virtual address space
Limitado pela chave de registo SYSTEMCACHELIMIT

Com SO a 32bits

Windows Server 2003, XP, 2000
860Mb de Ram com a chave defenida e sem 4GT.
Até 448Mb com 4GT.

Com SO a 64bits
Sempre 1Tb independente da memoria fisica.

Windows Server 2003 e XP até 1Tb dependendo da memoria fisica e configurações.

Limites fisicos de memoria para o Windows 2008

SO a 32bits
Windows Server 2008 Datacenter (full installation) 64Gb
Windows Server 2008 Datacenter (Server Core installation) 64GB
Windows Server 2008 Enterprise 64Gb
Windows Server 2008 Standard 4Gb
Windows Web Server 2008 4Gb

SO a 64bits
Windows Server 2008 Datacenter (full installation) 2TB
Windows Server 2008 Datacenter (Server Core installation) 2TB
Windows Server 2008 Enterprise 2Tb
Windows Server 2008 Standard 32Gb
Windows Web Server 2008 32Gb
Windows Server 2008 HPC Edition 128Gb
Windows Server 2008 for Itanium-Based Systems 2TB

Limites fisicos de memoria para o Windows Vista
SO a 32bits
Windows Vista Ultimate 4Gb
Windows Vista Enterprise 4Gb
Windows Vista Business 4Gb
Windows Vista Home Premium 4Gb
Windows Vista Home Basic 4Gb
Windows Vista Starter 1Gb

SO a 64bits
Windows Vista Ultimate 128Gb
Windows Vista Enterprise 128Gb
Windows Vista Business 128Gb
Windows Vista Home Premium 16Gb
Windows Vista Home Basic 8Gb

Limites fisicos de memoria para o Windows 2003
SO a 32bits
Windows Server 2003 with Service Pack 2 (SP2), Datacenter Edition 128Gb ou 64Gb c/ GT
Windows Server 2003 with Service Pack 2 (SP2), Enterprise Edition 64Gb
Windows Storage Server 2003, Enterprise Edition 8Gb
Windows Storage Server 2003 4Gb

Windows Server 2003 R2 Datacenter Edition 128Gb ou 16Gb c/GT

Windows Server 2003 with Service Pack 1 (SP1), Datacenter Edition 128Gb ou 16Gb c/GT

Windows Server 2003 R2 Enterprise Edition 64Gb ou 16Gb c/GT

Windows Server 2003 with Service Pack 1 (SP1), Enterprise Edition 64Gb ou 16Gb c/GT

Windows Server 2003 R2 Standard Edition 4Gb

Windows Server 2003, Standard Edition SP1 4Gb

Windows Server 2003, Standard Edition SP2 4Gb

Windows Server 2003, Datacenter Edition 128Gb ou 16Gb c/GT

Windows Server 2003, Enterprise Edition 32Gb ou 16Gb c/GT

Windows Server 2003, Standard Edition 4Gb

Windows Server 2003, Web Edition 2Gb

Windows Small Business Server 2003 4Gb

SO a 64bits
Windows Server 2003 with Service Pack 2 (SP2), Datacenter Edition 2Tb
Windows Server 2003 with Service Pack 2 (SP2), Enterprise Edition 2Tb
Windows Server 2003 R2 Datacenter Edition 1Tb

Windows Server 2003 with Service Pack 1 (SP1), Datacenter Edition 1Tb

Windows Server 2003 R2 Enterprise Edition 1Tb

Windows Server 2003 with Service Pack 1 (SP1), Enterprise Edition 1Tb

Windows Server 2003 R2 Standard Edition 32Gb

Windows Server 2003, Standard Edition SP1 32Gb

Windows Server 2003, Standard Edition SP2 32Gb

Windows Server 2003, Datacenter Edition 512Gb

Windows Server 2003, Enterprise Edition 64Gb

Windows Server 2003, Standard Edition 16Gb

Windows Compute Cluster Server 2003 32Gb

Limites fisicos de memoria para o Windows XP
32bits - 4Gb
64bits - 128Gb

segunda-feira, 11 de maio de 2009

Coisa boas são para se usar.

Aqui fica mais um progrma, para já gratuito que quebra muitas dores de cabeça com os discos bluray.

o programinha chama-se makeMKV e pode ser encontrado em:

http://www.makemkv.com/

Aqui fica, espero que gostem.

sábado, 9 de maio de 2009

corflags.exe

Bem ás vezes quando não existe programador por perto para recompilar o código temos mesmo que usar esta ferramenta e esperar que corra melhor.

O que é o coreflags.exe?

Quando compilamos uma ferramenta em .net2.0 e temos a opção any cpu activa o que acontece é que a aplicação tanto vai poder correr em modo de 32bits como em modo 64bits.
O que acontece é que ás vezes ela não funciona lá muito bem no modo de 64bits. Ou porque não há os drivers necessários a 64bits e apenas existem a 32 ou por outra razão qualquer.
Aqui a única solução é mesmo ou recompilar ou usar a ferramenta.

Ela vem com o SDK da .netframework e pode estar dependendo dos casos em qualquer directoria :)
Deixo aqui uma pista.

  • C:\Program Files\Microsoft SDKs\Windows\v6.0\Bin\x64\CorFlags.exe
  • C:\Program Files (x86)\Microsoft Visual Studio 8\SDK\v2.0\Bin\CorFlags.exe
Para forçarmos uma aplicação a correr em modo de 32bits numa máquina a 64bits podemos usar este comando. Depois podem ver as várias opções do exe.

CoreFlags.exe TheApp.exe /32BIT+


CorFlags.exe assembly [options]

Parameters

Argument Description

assembly

The name of the assembly for which to configure the CorFlags.

Option Description

/32BIT+

Sets the 32BIT flag.

/32BIT-

Clears the 32BIT flag.

/?

Displays command syntax and options for the tool.

/Force

Forces an update even if the assembly is strong-named.

NoteImportant

If you update a strong-named assembly, you must sign it again before executing its code.

/help

Displays command syntax and options for the tool.

/ILONLY+

Sets the ILONLY flag.

/ILONLY-

Clears the ILONLY flag.

/nologo

Suppresses the Microsoft startup banner display.

/RevertCLRHeader

Reverts the CLR header version to 2.0.

/UpgradeCLRHeader

Upgrades the CLR header version to 2.5.

NoteNote

Assemblies must have a CLR header version of 2.5 or greater to run natively.


sábado, 2 de maio de 2009

Windows 2003 x32 com 8Gb de Ram!!!

Isto pode parecer estranho mas numa das ultimas aulas ao falar com um formando ( e graças a este) lembrei-me de uma coisa que não é muito documentada e que seria interessante colocar aqui.

Como colocar o windows 2003 x32 a funcionar com mais de 4Gb de RAM.

É claro que isto não é suportado pela microsoft e pode haver possibilidades de existirem erros não documentados devido á forma como o SO vai usar a memoria.

Existe uma forma de colocar o windows a utilizar mais do que os 4gb possíveis nos sistemas de 32 bits.

A microsoft tem o PAE ( Physical Address Extension ) e o AWE ( Address Windowing Extensions )

o PAE é usado pelos IA32 para endereçar mais de 4Gb de memória

Para activar o PAE é necessário adicionar o /PAE no boot.ini file.

Se um servidor usar memorias tipo "hot-add" então o PAE é automaticamente activado.

Tipicamente o PAE usa-se quando temos uma taxa de ocupação de memoria grande.
Um processo típico pode ocupar no máximo cerca de 2Gb de RAM num sistema a 32bits, isto provoca que quando existem muitos processos a usarem muita ram se tenha que paginar muita informação na paging file.
Isto aliado ao facto do windows dividir a memoria em 2 partes uma para o kernel e outra para o user. Piora em muito a performance dos nossos servidores. Porque no máximo apenas podemos ter 4Gb de Ram ocupados.
E os processos que podem usar mais de 4Gb de RAM?

Ao colocarmos o /3Gb switch estamos a permitir que um processo possa usar mais de 2 Gb de Ram do Sistema operativo, mas contudo este programa concorre com outros e a probabilidade de ter parte dessa alocação de memória fetia na memória virtual é elevada, o que o pode tornar muito lento.
Aqui entra o PAE. Quando temos esta entrada activa e em conjunto com o AWE podemos usar mais do que os 4Gb de ram se a nossa máquina os tiver disponíveis.


O AWE é usado de outra forma, é utilizado ao nivel das API's (Applicarion programming Interfaces). Ou seja é um conjunto de API's ao gestor de memória que permite que os programas enderecem mais do que os 4gb disponíveis através dos normais 32bits de endereçamento.
AWE permite os programas reservarem memória como memória não paginada e depois dinamicamente mapear porções da memoria não paginada para o conjunto de memória utilizada pelo programa.
Este processo permite a programas que usen intensivamente a memoria para colocar dados ( como base de dados) que possam reservar memoria em vez de terem de usar a memória virtual.
Isto melhora a performance.
O excesso da memória acima dos 4gb é reportado ao gestor de memoria e ás funções de AWE pelo PAE.
Sem o PAE o AWE não conseguiria reservar o excesso de memoria a cima dos 4GB.

[operating systems]
multi(0)disk(0)rdisk(0)partition(2)\WINDOWS="Windows Server 2003, Enterprise" /fastdetect /PAE

Sumarizando o PAE é uma função que permite ao windows 2000 e windows 2003 dar mais memoria para o gestor de memoria utilizar.
Transpondo assim o limite dos 4gb.
Os programas não percebem que a memoria que estão a usar está acima dos 4gb da mesma forma que eles não entendem quando estão a usar a Swapfile.

O AWE é uma API que permite os programas reservar memoria. A memoria é não paginada e é apenas acessível a esse programa.



No fim se tiverem possibilidade de utilizar um SO a 64 bits tem mais sorte e menos trabalho :)

eth0: ERROR while getting interface flags: no such device

Ao mudar uma VM da máquina de onde normalmente corro as minhas máquinas virtuais para outra fiquei com problemas na placa de rede numa das VM's.

Obtenho o seguinte erro cada vez que tento arrancar com a placa de rede.
eth0: ERROR while getting interface flags: no such device

Pelo quer percebi aparentemente isto acontece por causa do mac, este está definido para a placa de rede da máquina anterior onde corria as VM's que é diferente da nova máquina onde corro as vm's.

Por acaso existe uma opção onde podemos colocar o MAC manualmente, eu nunca a configurei pois tenho a VM Workstation com essa opção em Auto.

Para repor as coisas editei o ficheiro:
/etc/udev/rules.d/70-persistent-net.rules

e removi a linha que continha o identificador da placa de rede com problemas e o respectivo mac que não fazia ideia de qual seria.

Logo depois corri o seguinte comando que detectou novamente o hardware /etc/init.d/udev restart

Fiquei com uma nova linha no ficheiro anterior a indicar novo mac e nova placa de rede e também com a placa de rede devidamente inicializada.