sexta-feira, 27 de novembro de 2009

Zx Spectrum

Para os mais saudosos aqui fica um site para matar saudades.

www.zxspectrum.net

sábado, 1 de agosto de 2009

Ocultar password em asp.net

Uma das coisas que me faz muita confusão é ter a password e o username em texto simples nos ficheiros de web.config.

Isto faz-me confusão porque na realidade em caso de falha de segurança damos muito pouco trabalho aos hackers... :)

Uma das formas de ocultar a informação relativa ao utilizador e à sua password é ocultando a no registo da máquina.

A ferramenta a usar é o aspnet_setreg.exe, uma ferramenta que vem com a Framework da Microsoft. (Microsoft .Net Framework).

Esta ferramenta permite-nos guardar no registo informações como o utilizador e a password de uma ligação como por exemplo ao SQL. Assim escusamos de ter a connection string com user e password no ficheiro web.config.

A ferramenta utiliza internamente 2 funções ou métodos que são locais na máquina, a CryptProtectData e a CryptUnprotectData, uma é o método que usamos para cifrar a nossa ligação a outra é o que usamos para decifrar a nossa ligação.
Atenção que quem tiver acesso à máquina tem acesso a estes métodos e por isso pode ver a informação cifrada.

Ao utilizarmos o aspnet_setreg.exe usamos uma sintaxe do género

aspnet_setreg.exe -k:SOFTWARE\MINHA_APLICACAO_SEGURA\identity -u:"dominio\password" -p:"password"

Este comando cifra o utilizador e a sua password na chave de registo indicada com a flag -k: também gera o output que devemos colocar no nosso web.config ou na nossa machine.config para que o user asp.net possa saber como localizar as chaves no registo e usa-las.

O output que recebemos é semelhante a este:

username="registry:HKLM\SOFTWARE\MINHA_APLICACAO_SEGURA\identity\ASPNET_SETREG,username"
password="registry:HKLM\SOFTWARE\MINHA_APLICACAO_SEGURA\identity\ASPNET_SETREG,password"

O Windows atribui à chave de registry FULL control ao utilizador de system, aos administradores e ao utilizador que a criou.

Se os administradores não tiverem nada a ver com isto podem ser removidos que não fazem falta... Atenção que ao removerem as permissões dos administradores ficam com menos apoio na tentativa de resolução de erros. Deixem sempre o user system e o que criou a chave se esta tiver sido criada com o user que corre o site. Para estas alterações ou adicionar outro utilizador podem usar o regedt32.exe para dar permissões às pastas.

Agora é só alterar a aplicação correspondente no seu web.config ou na suma machinec.config com o retorno do aspnet_setreg para começar a funcionar com as password e users menos visíveis

username="registry:HKLM\SOFTWARE\MINHA_APLICACAO_SEGURA\identity\ASPNET_SETREG,username"
password="registry:HKLM\SOFTWARE\MINHA_APLICACAO_SEGURA\identity\ASPNET_SETREG,password" />



Deixei o nome dos métodos usados internamente para mais tarde num outro texto do blog falar deles.

quinta-feira, 30 de julho de 2009

Como arrancar o windows Vista com o minimo de aplicações a correr.





Hoje tive um problema relacionado com isto.

Quis instalar um software e não conseguia. Ele estava constantemente a gerar excepções e não se deixava instalar.

Decidi validar se poderia ser alguma coisa que tivesse instalado ou a correr que fosse incompatível ou que provocasse a excepção de memória que o programa dá.

Para podermos testar se existe alguma aplicação que está a causar a falha na instalação de outra temos de desactivar o máximo possível de aplicações que a nossa máquina tenha.

Para isso o Windows vista vem com uma ferramenta útil que se chama msconfig .

Para a correr basta ir ao nosso start menu e escrever no run msconfig.

Depois aparece-nos a seguinte janela:




Escolho a pasta services, fiz o hide Microsoft services ( não quero desabilitar estes para já ) e depois escolho a opção de disable all.



Seguidamente escolho a pasta startup e opção disablle all ( assim ficam a maior parte das aplicações e drivers sem arrancar. )



Arranquei o sistema e tentei instalar a aplicação.

Esta instalou bem sem qualquer problema.

Agora se tivesse tempo para validar qual dos programas estaria a procurar causar o problema bastaria ir activando um a um os serviços e aplicações desligados e tentando instalar a aplicação até esta repetir o erro.


quarta-feira, 22 de julho de 2009

Entrevista interessante sobre Rootkits

Aqui o link para uma entrevista interessante sobre rootkits.

Kernel Rootkits

Como se faz um AMD

Para quem gosta muito de informática aqui fica um breve filme de como a AMD faz os seus processadores.
Achei interessante de que a partir de areia se criem coisas tão úteis.

terça-feira, 14 de julho de 2009

Office 2010...

Um filme interessante...

IIS 32bits Mode

Com o surgimento das máquinas a 64bits é cada vez maior o número de instalações a 64bits.
Isto, porem, acarreta alguns problemas, o cada vez maior número de sistemas operativos a ser implementados não é acompanhado de igual forma pelas aplicações a 32bits. Isto tem uma maior visibilidade nas aplicações WEB.
Por vezes não é possível colocar essas aplicações a funcionar com o que temos a 64bits por falta de drivers ou por impossibilidade de recompilação. Aqui a única forma de as por a funcionar é regredir um pouco e colocar o IIS a funcionar a 32bits.

Para isso temos de executar os seguintes paços:

  1. Activar a .Net Framework a 32bits. Não conseguimos originalmente activar esta Framework num sistema operativo a 64bits, obtemos um erro de não ser possível a instalação da Framework 32bits num sistema a 64bits.Para podermos proceder a esta instalação temos de fazer os seguintes paços:
  • Executar o seguinte script " cscript.exe adsutil.vbs set W3SVC/AppPools/Enable32BitAppOnWin64 true "Isto vai permitir activar o iis em modo 32bits. Se mais tarde quisermos recuperar o iis em modo 64bits então basta-nos repetir o script com o false.
  • Depois temos de alterar a Framework. Para isso temos de ir á seguinte directoria c:\Windows\Microsoft.Net\Framework\v2.0.50727 e correr o seguinte comando:aspnet_regiis.exe -i este comando permite registar a Framework asp.net a 32bits.Depois de correr este script no iis admin dentro da pasta Web service extensions vai aparecer uma nova extensão asp.net v2.0.xxxx (32 bits).
  • Apenas temos de activar o novo menu escolhendo a opção alow.
  • Depois na no website que queremos que funcione a 32bits temos de fazer propriedades e escolher a tab asp.net e depois escolher na combo box asp.net version a versão 2.0.xxxx
--- Atenção --- Depois de fazermos estas alterações, "aleijam" o vosso servidor e o nosso iis pois deixaremos de conseguir correr aplicações compiladas a 64bits. Ambos não são possíveis ter em funcionamento na mesma máquina, por isso contem com esta solução apenas para preparar uma migração ou para permitir que (até à actualização da aplicação) esta funcione sem problemas numa máquina a 64bits.

sexta-feira, 26 de junho de 2009

Como configurar um NAT dinamico num Router CISCO

Aqui fica uma lição de como configurar um NAT dinamico num router cisco.
1 endereço publico corresponde a 1 endereço privado. Com uma pool de endereços publicos e outra de endereços privados.




http://aprender.hjfr-info.com/mod/resource/view.php?id=162



sexta-feira, 19 de junho de 2009

Comandos Simples de um Switch




































































































banner motd

Configura a mensagem do dia (message of the day)
configure terminal

entra no modo de configuração de terminal

copy running-config to startup-config Copia a configuração actual para a configuração de arranque do router.
enable entra no modo priveligiado
enable secret password define password cifrada para o modo enable
erase startup-configuration apaga a configuração de arranque
interface interface

coloca-nos no interface indicado

ip address address mask

define qual o endereço de ip do interface

ip default-gateway address

Define qual o gateway

line console 0

Coloca-nos dentro da consola 0

line vty 0 4

coloca-nos dentro das consolas virtuais 0 a 4

login

activa o pedido de identificação dos utilizadores que acedem ao equipamento via vty ou consola.

password password

define a password dos utilizadores da consola. Quando feito dentro da consola.

ping ip address

pinga um determinado ip

reload

recarrega o IOS

show cdp neighbors

mostra os vizinhos que o CDP aprendeu

show interfaces Mostra todos os interfaces do equipamento

show port-security interface interface-if {address}

Mostra o modo em que um determinado interface está.

show running-configuration

mostra a configuração que está a correr

shutdown / no shutdown

desliga e activa por exemplo um interface

switchport mode access

coloca em modo de acesso um interface

switchport port-security

activa o modo de segurança de um interface

switchport port-security mac-address mac-address

activa o modo de segurança de um interface pelo mac-address

switchport port-security maximum value

define qual o numero máximo de mac-address que podem ser ligado no interface

terça-feira, 9 de junho de 2009

Modelo OSI e suas funções

Aqui fica uma breve apresentação que nos fala das várias camadas do modelo OSI e as suas funções.

Mais uma vez esta apresentação é cedida pelo site http://aprender.hjfr-info.com

Apresentação

Espero que gostem.


domingo, 7 de junho de 2009

Configurar passwords em consolas e terminais virtuais

Aqui fica mais um pequeno ensinamento que vem do aprender.hjfr-info.com

Este explica como configurar o pedido de password para acessos a routers cisco por consola e por terminais virtuais.

Configurar Passwords em Consolas e VTY da Cisco





Como configurar um endereço de Default Gateway num switch Cisco

Aqui fica uma dica. Como configurar um Default Gateway num switch da cisco. Podem encontrar mais informação no site: http://aprender.hjfr-info.com/

Default Gateway

quinta-feira, 4 de junho de 2009

Pushing the Limits of Windows: Virtual Memory

Nas minhas leituras deparei-me com um artigo muito interessante que deixo aqui o link para partilhar.


Fonte e Autor:
http://blogs.technet.com/markrussinovich/archive/2008/11/17/3155406.aspx

Pushing the Limits of Windows: Virtual Memory

In my first Pushing the Limits of Windows post, I discussed physical memory limits, including the limits imposed by licensing, implementation, and driver compatibility. This time I’m turning my attention to another fundamental resource, virtual memory. Virtual memory separates a program’s view of memory from the system’s physical memory, so an operating system decides when and if to store the program’s code and data in physical memory and when to store it in a file. The major advantage of virtual memory is that it allows more processes to execute concurrently than might otherwise fit in physical memory.

While virtual memory has limits that are related to physical memory limits, virtual memory has limits that derive from different sources and that are different depending on the consumer. For example, there are virtual memory limits that apply to individual processes that run applications, the operating system, and for the system as a whole. It's important to remember as you read this that virtual memory, as the name implies, has no direct connection with physical memory. Windows assigning the file cache a certain amount of virtual memory does not dictate how much file data it actually caches in physical memory; it can be any amount from none to more than the amount that's addressable via virtual memory.

Process Address Spaces

Each process has its own virtual memory, called an address space, into which it maps the code that it executes and the data that the code references and manipulates. A 32-bit process uses 32-bit virtual memory address pointers, which creates an absolute upper limit of 4GB (2^32) for the amount of virtual memory that a 32-bit process can address. However, so that the operating system can reference its own code and data and the code and data of the currently-executing process without changing address spaces, the operating system makes its virtual memory visible in the address space of every process. By default, 32-bit versions of Windows split the process address space evenly between the system and the active process, creating a limit of 2GB for each:

image

Applications might use Heap APIs, the .NET garbage collector, or the C runtime malloc library to allocate virtual memory, but under the hood all of these rely on the VirtualAlloc API. When an application runs out of address space then VirtualAlloc, and therefore the memory managers layered on top of it, return errors (represented by a NULL address). The Testlimit utility, which I wrote for the 4th Edition of Windows Internals to demonstrate various Windows limits, calls VirtualAlloc repeatedly until it gets an error when you specify the –r switch. Thus, when you run the 32-bit version of Testlimit on 32-bit Windows, it will consume the entire 2GB of its address space:

image

2010 MB isn’t quite 2GB, but Testlimit’s other code and data, including its executable and system DLLs, account for the difference. You can see the total amount of address space it’s consumed by looking at its Virtual Size in Process Explorer:

image

Some applications, like SQL Server and Active Directory, manage large data structures and perform better the more that they can load into their address space at the same time. Windows NT 4 SP3 therefore introduced a boot option, /3GB, that gives a process 3GB of its 4GB address space by reducing the size of the system address space to 1GB, and Windows XP and Windows Server 2003 introduced the /userva option that moves the split anywhere between 2GB and 3GB:

image

To take advantage of the address space above the 2GB line, however, a process must have the ‘large address space aware’ flag set in its executable image. Access to the additional virtual memory is opt-in because some applications have assumed that they’d be given at most 2GB of the address space. Since the high bit of a pointer referencing an address below 2GB is always zero, they would use the high bit in their pointers as a flag for their own data, clearing it of course before referencing the data. If they ran with a 3GB address space they would inadvertently truncate pointers that have values greater than 2GB, causing program errors including possible data corruption.

All Microsoft server products and data intensive executables in Windows are marked with the large address space awareness flag, including Chkdsk.exe, Lsass.exe (which hosts Active Directory services on a domain controller), Smss.exe (the session manager), and Esentutl.exe (the Active Directory Jet database repair tool). You can see whether an image has the flag with the Dumpbin utility, which comes with Visual Studio:

image

Testlimit is also marked large-address aware, so if you run it with the –r switch when booted with the 3GB of user address space, you’ll see something like this:

image

Because the address space on 64-bit Windows is much larger than 4GB, something I’ll describe shortly, Windows can give 32-bit processes the maximum 4GB that they can address and use the rest for the operating system’s virtual memory. If you run Testlimit on 64-bit Windows, you’ll see it consume the entire 32-bit addressable address space:

image

64-bit processes use 64-bit pointers, so their theoretical maximum address space is 16 exabytes (2^64). However, Windows doesn’t divide the address space evenly between the active process and the system, but instead defines a region in the address space for the process and others for various system memory resources, like system page table entries (PTEs), the file cache, and paged and non-paged pools.

The size of the process address space is different on IA64 and x64 versions of Windows where the sizes were chosen by balancing what applications need against the memory costs of the overhead (page table pages and translation lookaside buffer - TLB - entries) needed to support the address space. On x64, that’s 8192GB (8TB) and on IA64 it’s 7168GB (7TB - the 1TB difference from x64 comes from the fact that the top level page directory on IA64 reserves slots for Wow64 mappings). On both IA64 and x64 versions of Windows, the size of the various resource address space regions is 128GB (e.g. non-paged pool is assigned 128GB of the address space), with the exception of the file cache, which is assigned 1TB. The address space of a 64-bit process therefore looks something like this:

image

The figure isn’t drawn to scale, because even 8TB, much less 128GB, would be a small sliver. Suffice it to say that like our universe, there’s a lot of emptiness in the address space of a 64-bit process.

When you run the 64-bit version of Testlimit (Testlimit64) on 64-bit Windows with the –r switch, you’ll see it consume 8TB, which is the size of the part of the address space it can manage:

image

image

Committed Memory

Testlimit’s –r switch has it reserve virtual memory, but not actually commit it. Reserved virtual memory can’t actually store data or code, but applications sometimes use a reservation to create a large block of virtual memory and then commit it as needed to ensure that the committed memory is contiguous in the address space. When a process commits a region of virtual memory, the operating system guarantees that it can maintain all the data the process stores in the memory either in physical memory or on disk. That means that a process can run up against another limit: the commit limit.

As you’d expect from the description of the commit guarantee, the commit limit is the sum of physical memory and the sizes of the paging files. In reality, not quite all of physical memory counts toward the commit limit since the operating system reserves part of physical memory for its own use. The amount of committed virtual memory for all the active processes, called the current commit charge, cannot exceed the system commit limit. When the commit limit is reached, virtual allocations that commit memory fail. That means that even a standard 32-bit process may get virtual memory allocation failures before it hits the 2GB address space limit.

The current commit charge and commit limit is tracked by Process Explorer in its System Information window in the Commit Charge section and in the Commit History bar chart and graph:

image image

Task Manager prior to Vista and Windows Server 2008 shows the current commit charge and limit similarly, but calls the current commit charge "PF Usage" in its graph:

image

On Vista and Server 2008, Task Manager doesn't show the commit charge graph and labels the current commit charge and limit values with "Page File" (despite the fact that they will be non-zero values even if you have no paging file):

image

You can stress the commit limit by running Testlimit with the -m switch, which directs it to allocate committed memory. The 32-bit version of Testlimit may or may not hit its address space limit before hitting the commit limit, depending on the size of physical memory, the size of the paging files and the current commit charge when you run it. If you're running 32-bit Windows and want to see how the system behaves when you hit the commit limit, simply run multiple instances of Testlimit until one hits the commit limit before exhausting its address space.

Note that, by default, the paging file is configured to grow, which means that the commit limit will grow when the commit charge nears it. And even when when the paging file hits its maximum size, Windows is holding back some memory and its internal tuning, as well as that of applications that cache data, might free up more. Testlimit anticipates this and when it reaches the commit limit, it sleeps for a few seconds and then tries to allocate more memory, repeating this indefinitely until you terminate it.

If you run the 64-bit version of Testlimit, it will almost certainly will hit the commit limit before exhausting its address space, unless physical memory and the paging files sum to more than 8TB, which as described previously is the size of the 64-bit application-accessible address space. Here's the partial output of the 64-bit Testlimit running on my 8GB system (I specified an allocation size of 100MB to make it leak more quickly):

image

And here's the commit history graph with steps when Testlimit paused to allow the paging file to grow:

image

When system virtual memory runs low, applications may fail and you might get strange error messages when attempting routine operations. In most cases, though, Windows will be able present you the low-memory resolution dialog, like it did for me when I ran this test:

image

After you exit Testlimit, the commit limit will likely drop again when the memory manager truncates the tail of the paging file that it created to accommodate Testlimit's extreme commit requests. Here, Process Explorer shows that the current limit is well below the peak that was achieved when Testlimit was running:

image

Process Committed Memory

Because the commit limit is a global resource whose consumption can lead to poor performance, application failures and even system failure, a natural question is 'how much are processes contributing the commit charge'? To answer that question accurately, you need to understand the different types of virtual memory that an application can allocate.

Not all the virtual memory that a process allocates counts toward the commit limit. As you've seen, reserved virtual memory doesn't. Virtual memory that represents a file on disk, called a file mapping view, also doesn't count toward the limit unless the application asks for copy-on-write semantics, because Windows can discard any data associated with the view from physical memory and then retrieve it from the file. The virtual memory in Testlimit's address space where its executable and system DLL images are mapped therefore don't count toward the commit limit. There are two types of process virtual memory that do count toward the commit limit: private and pagefile-backed.

Private virtual memory is the kind that underlies the garbage collector heap, native heap and language allocators. It's called private because by definition it can't be shared between processes. For that reason, it's easy to attribute to a process and Windows tracks its usage with the Private Bytes performance counter. Process Explorer displays a process private bytes usage in the Private Bytes column, in the Virtual Memory section of the Performance page of the process properties dialog, and displays it in graphical form on the Performance Graph page of the process properties dialog. Here's what Testlimit64 looked like when it hit the commit limit:

image

image

Pagefile-backed virtual memory is harder to attribute, because it can be shared between processes. In fact, there's no process-specific counter you can look at to see how much a process has allocated or is referencing. When you run Testlimit with the -s switch, it allocates pagefile-backed virtual memory until it hits the commit limit, but even after consuming over 29GB of commit, the virtual memory statistics for the process don't provide any indication that it's the one responsible:

image

For that reason, I added the -l switch to Handle a while ago. A process must open a pagefile-backed virtual memory object, called a section, for it to create a mapping of pagefile-backed virtual memory in its address space. While Windows preserves existing virtual memory even if an application closes the handle to the section that it was made from, most applications keep the handle open. The -l switch prints the size of the allocation for pagefile-backed sections that processes have open. Here's partial output for the handles open by Testlimit after it has run with the -s switch:

image

You can see that Testlimit is allocating pagefile-backed memory in 1MB blocks and if you summed the size of all the sections it had opened, you'd see that it was at least one of the processes contributing large amounts to the commit charge.

How Big Should I Make the Paging File?

Perhaps one of the most commonly asked questions related to virtual memory is, how big should I make the paging file? There’s no end of ridiculous advice out on the web and in the newsstand magazines that cover Windows, and even Microsoft has published misleading recommendations. Almost all the suggestions are based on multiplying RAM size by some factor, with common values being 1.2, 1.5 and 2. Now that you understand the role that the paging file plays in defining a system’s commit limit and how processes contribute to the commit charge, you’re well positioned to see how useless such formulas truly are.

Since the commit limit sets an upper bound on how much private and pagefile-backed virtual memory can be allocated concurrently by running processes, the only way to reasonably size the paging file is to know the maximum total commit charge for the programs you like to have running at the same time. If the commit limit is smaller than that number, your programs won’t be able to allocate the virtual memory they want and will fail to run properly.

So how do you know how much commit charge your workloads require? You might have noticed in the screenshots that Windows tracks that number and Process Explorer shows it: Peak Commit Charge. To optimally size your paging file you should start all the applications you run at the same time, load typical data sets, and then note the commit charge peak (or look at this value after a period of time where you know maximum load was attained). Set the paging file minimum to be that value minus the amount of RAM in your system (if the value is negative, pick a minimum size to permit the kind of crash dump you are configured for). If you want to have some breathing room for potentially large commit demands, set the maximum to double that number.

Some feel having no paging file results in better performance, but in general, having a paging file means Windows can write pages on the modified list (which represent pages that aren’t being accessed actively but have not been saved to disk) out to the paging file, thus making that memory available for more useful purposes (processes or file cache). So while there may be some workloads that perform better with no paging file, in general having one will mean more usable memory being available to the system (never mind that Windows won’t be able to write kernel crash dumps without a paging file sized large enough to hold them).

Paging file configuration is in the System properties, which you can get to by typing “sysdm.cpl” into the Run dialog, clicking on the Advanced tab, clicking on the Performance Options button, clicking on the Advanced tab (this is really advanced), and then clicking on the Change button:

image

You’ll notice that the default configuration is for Windows to automatically manage the page file size. When that option is set on Windows XP and Server 2003, Windows creates a single paging file that’s minimum size is 1.5 times RAM if RAM is less than 1GB, and RAM if it's greater than 1GB, and that has a maximum size that's three times RAM. On Windows Vista and Server 2008, the minimum is intended to be large enough to hold a kernel-memory crash dump and is RAM plus 300MB or 1GB, whichever is larger. The maximum is either three times the size of RAM or 4GB, whichever is larger. That explains why the peak commit on my 8GB 64-bit system that’s visible in one of the screenshots is 32GB. I guess whoever wrote that code got their guidance from one of those magazines I mentioned!

A couple of final limits related to virtual memory are the maximum size and number of paging files supported by Windows. 32-bit Windows has a maximum paging file size of 16TB (4GB if you for some reason run in non-PAE mode) and 64-bit Windows can having paging files that are up to 16TB in size on x64 and 32TB on IA64. For all versions, Windows supports up to 16 paging files, where each must be on a separate volume.

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.

quarta-feira, 15 de abril de 2009

Já está disponivel o SP1 do SQL Server 2008

Para quem deseja ter alguns problemas resolvidos que tem dado dores e cabeça á comunidade de DBA's já saiu o SP1 do SQL Server 2008.


SQL Server 2008 Service Pack 1 Is Now Available

Sharepoint Designer 2007 agora é gratuito...

Aqui fica a mensagem que recebi da microsoft.
Fico contente com esta situação e penso que agora irão surgir muito mais funcionalidades para o sharepoint 2007.


SharePoint Designer 2007 Is Now Free Office SharePoint Designer 2007 provides the tools you need to deliver compelling and attractive SharePoint sites and quickly build workflow-enabled applications and reporting tools on the SharePoint platform.

segunda-feira, 13 de abril de 2009

NSLOOKUP uma ferramenta muito poderosa...

O nslookup é uma das ferramentas que mais informação nos pode dar na internet.
De acordo com o tipo de perguntas que fazemos podemos ter respostas muito interessantes.
Podemos como tudo, usa-la para o mal ou para o bem.
Um administrador de sistemas que não proteja no seu servidor de DNS, pode ver exposta informação que não deveria ser do conhecimento público.

Aqui deixo alguns dos parâmetros que podem ser usados com o nslookup.

A sintaxe é simples, basta abrir uma janela de cmd no windows e escrever nslookup. Depois podemos definir qual o tipo de respostas que desejamos ter.
Para isso escrevemos Set type=tipo de resposta
A lista dos vários tipos é a seguinte:
A - Endereço de ip do computador.
Any - Todos os tipos de dados.
CNAME - Nome canónico para um alias.
GID - Identificador de um grupo para um nome de grupo.
HINFO - Indica o tipo de CPU e sistema Operativo
MB - Nome de domínio de Caixa de correio
MG - Específica um elemento de um grupo de e-mail
MINFO - Informações sobre uma caixa de correio ou uma lista de distribuição.
MR - Mail Rename Domain Name
MX - Mail Exchanger ( relay de e-mail ou aquele que processa os emails para um determinado domínio).
NS - Nome de um servidor de DNS para uma determinada zona ou domínio.
PTR - Dá-nos um nome do computador caso a pergunta seja um endereço de ip ou então devolve um novo apontador para nova informação.
SOA - Especifica a Start-of-Authority para uma zona de DNS.
TXT - Informação de texto.
UID - Identificador de utilizador.
UINFO - Informação de Utilizador.
WKS - Um serviço bem conhecido.

Agora testem no vosso servidor pessoal e nos públicos de algum domínio que conheçam. Vejam as diferenças e validem o que está certo ou errado na vossa opinião.

Para mais conhecimento podem sempre consultar o RFC - 1035

segunda-feira, 23 de fevereiro de 2009

VLSM - Variable-length subnet masking

Este método de subnetar redes é o mais eficiente e realístico. Pois usa todos os bits disponíveis na subnet.

Lembram-se dos endereços com subnets do tipo 255.255.255.0?
Este tipo de subnets torna-se muito dispendioso em termos de desperdício de ip's.

Por exemplo uma ligação de um router por um cabo serial apenas necessita de 2 ip's, a utilização de uma subnet deste tipo leva-nos a desperdiçar cerca de 253 ip's.

Mesmo que tenhamos a possibilidade de usar o NAT e que os endereços nunca se acabem devemos sempre ter em consideração que a nossa rede deve sempre ser desenhada da forma mais eficiente possível. É aqui que o conceito de VLSM vem á tona.

Exemplo de uma utilização do conceito de VLSM.






É nos dada uma rede classe C. 192.168.100.0/24
Temos de construir um plano de endereçamentos para esta rede utilizando o conceito de VLSM.
Para isso vamos ter de pensar da seguinte forma:

1 - Quantos bits vão ter de roubar aos Hosts para servirmos as nossas necessidades?

2 - Escolher uma subnet para o segmento de rede que tem mais hosts.

3 - Escolher o segundo segmento que tem mais hosts.

4 - Escolher o terceiro maior segmento.

5 - Determinar os endereçamentos para os links serial.

As maiores redes que temos no nosso esquema têm 50 hosts.
Logo se 2^H-2 = numero válido de hosts por subnet
temos:
2^H-2>=50
H = 6 ( 6 é o numero mais baixo válido para os 50 hosts.)

Temos de ir buscar 6 bits aos hosts ( na subnet) para poder formar a nossa rede com 50 hosts.

Então os bits da subnet vão ficar (NNHHHHHH). Vamos ter que começar a subnetar a partir daqui para podermos responder às necessidades da nossa maior rede.

Agora vamos escolher a rede para o nosso maior segmento.

Para a nossa rede temos dois (NN) para usar. Logo 2^N= Numero de redes disponíveis, como temos 2 bits para a rede então 2^2=4. Podemos ter 4 redes com 50 hosts cada. Mas só necessitamos de 1.
A primeira seria a 01HHHHHH
A segunda seria a 10HHHHHH
A terceira seria a 11HHHHHH

Se pensarmos bem então podemos ver que as redes são as seguintes:

00000000 = .0
01000000 = .64
10000000 = .128
11000000 = .192

Todas estas redes tem a mesma mascara de subnet que é 255.255.255.192 ou /26 bits.

A rede de 50 hosts vai ficar com uma destas redes. As restantes redes vão ficar com o que sobrar.

Por exemplo vamos escolher a rede.64 para a rede A.

Rede B. Necessitamos de ter uma rede que permita 27 hosts.
Escolhemos a .128 para esta tarefa.

2^H-2>=27
H=5

Necessitamos de 5 bits para poder responder às necessidades desta rede.
Então a nossa subnet vai ser 10NHHHHH.
10 Representa o padrão original da subnet que não pode ser alterado e N o bit extra para o nosso trabalho.

Então vamos ficar com as seguintes redes.

10000000 = .128
01100000 = .160

Ok encontramos a subnet para a nossa rede de 27 hots.

A nossa subnet é:

11111111.11111111.11111111.11100000 ou 255.255.255.224 ou /27

Então a nossa rede vai transformar-se

Rede A - .64/26
Rede .128/26 não vai ser usada porque foi subnetada.
Rede B - .128/27

Ok agora seguimos o mesmo procedimento para a rede seguinte.
Necessitamos de 12 hosts.

Para isto podemos usar a outra rede não usada 160/27.
Vamos subnetar esta.

Quantos bits necessitam para 12 hosts?

H=4

Então vão ter as redes

10100000 = .160
10110000 = .176

Em binário temos:

1111111.11111111.11111111.11110000 = 255.255.255.240 ou /28

Aqui podem usar estas 2 novas redes para a Rede C e para a Rede D.

Agora temos o seguinte quadro.

Rede A - .64/26
Rede 128/26 - Não usada subnetada
Rede B - .128/27
Rede 160/27 Não usada subnetada
Rede .160/28 Rede C
Rede .160/28 Rede D

Falta-nos apenas as redes dos links serial.

Para cada serial apenas necessitamos de 2 ip's ou 2 hosts.

Então para isto vamos usar a primeira rede a .0/26 que saltamos quando atribuímos o endereçamento.

2 hosts.

00NNNNHH

Podemos ter 16 redes com 2 hosts cada.

da 00000000 = .0/30 á 00111100 = .60/30

Podemos combinar este endereços da seguinte forma.

.0/26 Não pode ser usada porque foi subnetada.

.0/30 Rede E
.4/30 Rede F
.8/30 Rede G
.12/30 Rede H
.16/28 Rede disponível para futuro crescimento.
.64/26 Rede A
.128/26 Subnetada não pode ser usada
.128/27 Rede B
.160/27 Subnetada não pode ser usada
.160/28 Rede C
.176/28 Rede D
.192/26 Rede disponível para futuro crescimento.

Podemos ver que não desperdiçamos nenhum ip, que não existem ip's iguais e que ainda temos endereços reservados para crescimento futuro.

quarta-feira, 18 de fevereiro de 2009

Remover o IE 8...

Cai na tentação de instalei o IE 8 RC1....

Como não correspondeu ás minhas espectativas tentei remove-lo...
Panico não consigo de forma normal...

Após muitas voltas dar descobri uma maneira que aqui fica registada.

Descobri que depois de instalarmos o Windos XP SP3 a opção que existia no add and remove programs desaparece e aparentemente a forma pacifica que existia de remover o IE também desapareceu.

Bem a solução encontrada é a seguinte:

1 - Remover o SP3 do windows
2 - Depois da remoção do SP3 as coisas devem voltar ao normal... Então removemos o IE8
3 - Depois disso Convem reeinstalar novamente o SP3 do windows XP.

Fonte: http://support.microsoft.com/kb/950719

quinta-feira, 12 de fevereiro de 2009

teste.... scribefire....

isto é um teste...

É um teste a um plugin interessante do firefox que permite a colocação e a criação em offline de posts para vários tipos de blogs.
Parece ser uma ferramenta interessante e aqui fica o link.

scribefire

Testem pois parece valer a pena.

sábado, 7 de fevereiro de 2009

Menssagens de Erro da BIOS e algo mais...

American Megatrends

AMIBIOS Phone:(770)-246-8600
http://www.amibios.com/

CHECK-POINT DESCRIPTION OF CHECK-POINT

01 Processor register test about to start, and NMI to be disabled.

02 NMI is DIsabled. Power on delay starting.

03 Power on delay complete. Any initialization before keyboard BAT is in progress.

04 Any initialization before keyboard BAT is complete. Reading keyboard SYS bit, to check soft reset/ power-on.

05 Soft reset/ power-on determined. Going to enable ROM. i.e. disable shadow RAM/Cache if any.

06 ROM is enabled. Calculating ROM BIOS checksum, and waiting for KB controller input buffer to be free.

07 ROM BIOS checksum passed, KB controller I/B free. Going to issue the BAT command to keyboard controller.

08 BAT command to keyboard controller is issued. Going to verify the BAT command.

09 Keyboard controller BAT result verified. Keyboard command byte to be written next.

0A Keyboard command byte code is issued. Going to write command byte data.

0B Keyboard controller command byte is written. Going to issue Pin-23,24 blocking/unblocking command.

0C Pin-23,24 of keyboard controller is blocked/ unblocked. NOP command of keyboard controller to be issued next.

0D NOP command processing is done. CMOS shutdown register test to be done next.

0E CMOS shutdown register R/W test passed. Going to calculate CMOS checksum, and update DIAG byte.

0F CMOS checksum calculation is done, DIAG byte written. CMOS init. to begin (If "INIT CMOS IN EVERY BOOT IS SET").

10 CMOS initialization done (if any). CMOS status register about to init for Date and Time.

11 CMOS Status register initialised. Going to disable DMA and Interrupt controllers.

12 DMA controller #1,#2, interrupt controller #1,#2 disabled. About to disable Video display and init port-B.

13 Video display is disabled and port-B is initialized. Chipset init/ auto memory detection about to begin.

14 Chipset initialization/ auto memory detection over. 8254 timer test about to start.

15 CH-2 timer test halfway. 8254 CH-2 timer test to be complete.

16 Ch-2 timer test over. 8254 CH-1 timer test to be complete.

17 CH-1 timer test over. 8254 CH-0 timer test to be complete.

18 CH-0 timer test over. About to start memory refresh.

19 Memory Refresh started. Memory Refresh test to be done next.

1A Memory Refresh line is toggling. Going to check 15 micro second ON/OFF time.

1B Memory Refresh period 30 micro second test complete. Base 64K memory test about to start.

20 Base 64k memory test started. Address line test to be done next.

21 Address line test passed. Going to do toggle parity.

22 Toggle parity over. Going for sequential data R/W test.

23 Base 64k sequential data R/W test passed. Any setup before Interrupt vector init about to start.

24 Setup required before vector initialzation complete. Interrupt vector initialization about to begin.

25 Interrupt vector initialization done. Going to read I/O port of 8042 for turbo switch (if any).

26 I/O port of 8042 is read. Going to initialize global data for turbo switch.

27 Global data initialization is over. Any initialization after interrupt vector to be done next.

28 Initialization after interrupt vector is complete. Going for monochrome mode setting.

29 Monochrome mode setting is done. Going for Color mode setting.

2A Color mode setting is done. About to go for toggle parity before optional rom test.

2B Toggle parity over. About to give control for any setup required before optional video ROM check.

2C Processing before video ROM control is done. About to look for optional video ROM and give control.

2D Optional video ROM control is done. About to give control to do any procesing after video ROM returns control.

2E Return from processing after the video ROM control. If EGA/VGA not found then do display memory R/W test.

2F EGA/VGA not found. Display memory R/W test about to begin.

30 Display memory R/W test passed. About to look for the retrace checking.

31 Display memory R/W test or retrace checking failed. About to do alternate Display memory R/W test.

32 Alternate Display memory R/W test passed. About to look for the alternate display retrace checking.

33 Video display checking over. Verification of display type with switch setting and actual card to begin.

34 Verification of display adapter done. Display mode to be set next.

35 Display mode set complete. BIOS ROM data area about to be checked.

36 BIOS ROM data area check over. Going to set cursor for power on message.

37 Cursor setting for power on message id complete. Going to display the power on message.

38 Power on message display complete. Going to read new cursor positon.

39 New cursor position read and saved. Going to display the reference string.

3A Reference string display is over. Going to display the Hit message.

3B Hit message displayed. Virtual mode memory test about to start.

40 Preperation for virtual mode test started. Going to verify from video memory.

41 Returned after verifying from display memory. Going to prepare the descriptor tables.

42 Descriptor tables prepared. Goin to enter in virtual mode for memory test.

43 Entered in the virtual mode. Going to enable interrupts for diagnostics mode.

44 Interrupts enabled (if diagnostics switch is on). Going to initialize data to check memory wrap around at 0:0.

45 Data initialized. Going to check for memory wrap around at 0:0 and finding the total system memory size.

46 Memory wrap around test done. Memory size calculation over. About to go for writing patterns to test memory.

47 Pattern to be tested written in extended memory. Going to write patterns in base 640k memory.

48 Patterns written in base memory. Going to findout amount of memory below 1M memory.

49 Amount of memory below 1M found and verified. Going to findout amount of memory above 1M memory.

4A Amount of memory above 1M found and verified. Going for BIOS ROM data area check.

4B BIOS ROM data area check over. Going to check and to clear memory below 1M for soft reset.

4C Memory below 1M cleared. (SOFT RESET) Going to clear memory above 1M.

4D Memory above 1M cleared. (SOFT RESET) Going to save the memory size.

4E Memory test started. (NO SOFT RESET) About to display the first 64k memory test.

4F Memory size display started. This will be updated during memory test. Going for sequential and random memory test.

50 Memory test below 1M complete. Going to adjust memory size for relocation/ shadow.

51 Memory size adjusted due to relocation/ shadow. Memory test above 1M to follow.

52 Memory test above 1M complete. Going to prepare to go back to real mode.

53 CPU registers are saved including memory size. Going to enter in real mode.

54 Shutdown successfull, CPU in real mode. Going to restore registers saved during preparation for shutdown.

55 Registers restored. Going to disable gate A20 address line.

56 A20 address line disable successful. BIOS ROM data area about to be checked.

57 BIOS ROM data area check halfway. BIOS ROM data area check to be complete.

58 BIOS ROM data area check over. Going to clear Hit message.

59 Hit message cleared. message displayed. About to start DMA and interrupt controller test.

60 DMA page register test passed. About to verify from display memory.

61 Display memory verification over. About to go for DMA #1 base register test.

62 DMA #1 base register test passed. About to go for DMA #2 base register test.

63 DMA #2 base register test passed. About to go for BIOS ROM data area check.

64 BIOS ROM data area check halfway. BIOS ROM data area check to be complete.

65 BIOS ROM data area check over. About to program DMA unit 1 and 2.

66 DMA unit 1 and 2 programming over. About to initialize 8259 interrupt controller.

67 8259 initialization over. About to start keyboard test.

80 Keyboard test started. clearing output buffer, checking for stuck key, About to issue keyboard reset command.

81 Keyboard reset error/stuck key found. About to issue keyboard controller interface test command.

82 Keyboard controller interface test over. About to write command byte and init circular buffer.

83 Command byte written, Global data init done. About to check for lock-key.

84 Lock-key checking over. About to check for memory size mismatch with cmos.

85 Memory size check done. About to display soft error and check for pasasword or bypass setup.

86 Password checked. About to do pogramming before setup.

87 Programming before setup complete. Going to cmos setup program.

88 Returned from cmos setup program and screen is cleared. About to do programming after setup.

89 Programming after setup complete. Going to display power on screen message.

8A First screen message displayed. About to display message

8B message displayed. About to do Main and Video BIOS shadow.

8C Main and Video BIOS shadow successful. Setup options programming after cmos setup about to start.

8D Setup options are programmed, mouse check and init to be done next.

8E Mouse check and initialisation complete. Going for hard disk, floppy reset.

8F Floppy check returns that floppy is to be initialized. Floppy setup to follow.

90 Floppy setup is over. Test for hard disk presence to be done.

91 Hard disk presence test over. Hard disk setup to follow.

92 Hard disk setup complete. About to go for BIOS ROM data area check.

93 BIOS ROM data area check halfway. BIOS ROM data area check to be complete.

94 BIOS ROM data area check over. Going to set base and extended memory size.

95 Memory size adjusted due to mouse support, hdisk type-47. Going to verify from display memory.

96 Returned after verifying from display memory. Going to do any init before C800 optional ROM control

97 Any init before C800 optional ROM control is over. Optional ROM check and control will be done next.

98 Optional ROM control is done. About to give control to do any required procesing after optional ROM returns control.

99 Any initialization required after optional ROM test over. Going to setup timer data area and printer base address.

9A Return after setting timer and printer base address. Going to set the RS-232 base address.

9B Returned after RS-232 base address. Going to do any initialization before Co-processor test

9C Required initialization before co-processor is over. Going to initialize the coprocessor next.

9D Coprocesor initialized. Going to do any initialization after Co-processor test.

9E Initialization after co-processor test is complete. Going to check extd keyboard, keyboard ID and num-lock.

9F Extd keyboard check is done, ID flag set. num-lock on/off. Keyboard ID command to be issued.

A0 Keyboard ID command issued. Keyboard ID flag to be reset.

A1 Keyboard ID flag reset. Cache memory test to follow.

A2 Cache memory test over. Going to display any soft errors.

A3 Soft error display complete. Going to set the keyboard typematic rate.

A4 Keyboard typematic rate set. Goin to program memory wait states.

A5 Memory wait states programming over. Screen to be cleared next.

A6 Screen cleared. Going to enable parity and NMI.

A7 NMI and parity enabled. Going to do any initialization required before giving control to optional ROM at E000.

A8 Initialization before E000 ROM control over. E000 ROM to get control next.

A9 Returned from E000 ROM control. Going to do any initialization required after E000 optional ROM control.

AA Initialization after E000 optional ROM control is over. Going to display the system configuration.

00 System configuration is displayed. Going to give control to INT 19h boot loader.



Award BIOS Error Codes

http://www.award.com/

During the power-on self test (POST), the BIOS either sounds a beep code or displays a message when it detects a correctable error.

Following is a list of POST messages for the ISA BIOS kernel. Specific chipset ports and BIOS extensions may include additional messages. An error message may be followed by a prompt to press F1 to continue or press DEL to enter Setup.

1.Beep
Currently the only beep code indicates that a video error has occurred and the BIOS cannot initialize the video screen to display any additional information. This beep code consists of a single long beep followed by two short beeps. Any other beeps are probably a RAM problem.

2.BIOS ROM checksum error - System halted
The checksum of the BIOS code in the BIOS chip is incorrect, indicating the BIOS code may have become corrupt.
Contact your system dealer to replace the BIOS.

3.CMOS battery failed
CMOS battery is no longer functional. Contact your system dealer for a replacement battery.

4.CMOS checksum error - Defaults loaded
Checksum of CMOS is incorrect, so the system loads the default equipment configuration. A checksum error may indicate that CMOS has become corrupt. This error may have been caused by a weak battery. Check the battery and replace if necessary.

5.CPU at nnnn
Displays the running speed of the CPU.

6.Display switch is set incorrectly.
The display switch on the motherboard can be set to either monochrome or color. This message indicates the switch is set to a different setting than indicated in Setup. Determine which setting is correct, and then either turn off the system and change the jumper, or enter Setup and change the VIDEO selection.

7.Press ESC to skip memory test
The user may press Esc to skip the full memory test.

8.Floppy disk(s) fail
Cannot find or initialize the floppy drive controller or the drive. Make sure the controller is installed correctly. If no floppy drives are installed, be sure the Diskette Drive selection in Setup is set to NONE or AUTO.

9.HARD DISK initializing
Please wait a moment... Some hard drives require extra time to initialize.

10.HARD DISK INSTALL FAILURE
Cannot find or initialize the hard drive controller or the drive. Make sure the controller is installed correctly. If no hard drives are installed, be sure the Hard Drive selection in Setup is set to NONE.

11.Hard disk(s) diagnosis fail
The system may run specific disk diagnostic routines. This message appears if one or more hard disks return an error when the diagnostics run.

12.Keyboard error or no keyboard present
Cannot initialize the keyboard. Make sure the keyboard is attached correctly and no keys are pressed during POST. To purposely configure the system without a keyboard, set the error halt condition in Setup to HALT ON ALL, BUT KEYBOARD. The BIOS then ignores the missing keyboard during POST.

13.Keyboard is locked out - Unlock the key
This message usually indicates that one or more keys have been pressed during the keyboard tests. Be sure no objects are resting on the keyboard.

14.Memory Test :
This message displays during a full memory test, counting down the memory areas being tested.

15.Memory test fail
If POST detects an error during memory testing, additional information appears giving specifics about the type and location of the memory error.

16.Override enabled - Defaults loaded
If the system cannot boot using the current CMOS configuration, the BIOS can override the current configuration is a set of BIOS defaults designed for the most stable, minimal-performance system operations.

17.Press TAB to show POST screen
System OEMs may replace the Award BIOS POST display with their own proprietary display. Including this message in the OEM display permits the operator to switch between the OEM display and the default POST display.

18.Primary master hard disk fail
POST detects an error in the primary master IDE hard drive.

19.Primary slave hard disk fail
POST detects an error in the secondary master IDE hard drive.

20.Resuming from disk, Press TAB to show POST screen
Award offers a save-to-disk feature for notebook computers. This message may appear when the operator re-starts the system after a save-to-disk shut-down. See the Press TAB ... message above for a description of this feature.

21.Secondary master hard disk fail
POST detects an error in the primary slave IDE hard drive.

22.Secondary slave hard disk fail
POST detects an error in the secondary slave IDE hard drive.

If the above suggestions fail to cause any change in the disfunction of the system, the motherboard should be returned for repair.



Your CMOS Information Is Important

Many users have old hard drives in their computers and have never written down their BIOS configuration--usually a custom one. For the newest hard drives, autodetect works and the drive (or the Internet) has the information, but this is usually not the case for older drives. I would recommend that these users have all this information printed in case of disaster (or in case the BIOS battery dies!)"

You're thinking of the CMOS information, not the BIOS. The CMOS (Complementary Metal Oxide Semiconductor) chip is battery-powered and stores the hard drive's configuration and other information. When the PC is turned off, battery power maintains the CMOS data.

The battery could someday lose its charge, or for some other reason the data might become corrupt. Check your owner's manual to determine how to access the CMOS at bootup--usually by pressing the Delete key; a function key; or perhaps some combination of keys, like Ctrl-Alt-Esc, Ctrl-Alt-S, Ctrl-Alt-Ins, and so forth.

Some PCs do not have the setup program built in; it's on a separate disk. Check your owner's manual for the actual CMOS setup. You'll need to know the information for your hard drive if the CMOS data get corrupted later, so if this info is not in the manual, write it there in case you ever need it.



Entering CMOS For Different Motherboards

This is a small sample of multitude of things you can find at
eHelp PC Consultant and Tech Support Forum
http://www.ehelpfree.com/nathan/tips.html

Press del during boot= (AMI, Award).
Press Esc during boot= Toshiba.
Press F1 during boot= (Toshiba; Phoenix; Late model PS/1 Value Point and 330s).
Press F2 during boot = (NEC).
Press F10 when square in top RH corner of screen= (Compaq).
Press Ins during boot=IBM PS/2 with reference partition.
Shift Ctrl Alt + Num Pad del= - Olivetti PC Pro.
Ctrl Alt ? =some PS/2s, such as 75 and 90.
Ctrl-Esc = Misc Puters
Ctrl Ins= some PS/2s when pointer at top right of screen.
Press reset twice= some Dells.
Ctrl Alt Enter= Dell.
Ctrl Alt Esc=AST Advantage, Award, Tandon.
Ctrl Alt + =Misc Puters
Ctrl Alt S= Phoenix.
Ctrl Alt Ins= (Zenith, Phoenix)
Ctrl S =(Phoenix).
Ctrl Shift Esc= Tandon 386.