quinta-feira, setembro 09, 2010

How to recover of the crash after the udev package update

Last night I've updated the udev package on my Ubuntu 10.04 (32-bits) and after system restart my PC was unable to boot.

The error messages were the following:

udevadm settle is not permitted while udev is unconfigured
ALERT! /dev/disk/by-uuid/)a8cc71e....071cd does not exist. Dropping to a shell

Was it a plague of St. iGNUcius because I have written an article about Windows?



After some research on Google, I found out the solution:

  • Boot the system using the Ubuntu live CD. If Ubuntu automatically mount the hard disk partition, unmount it before proceeding. This can be done easily through Nautilus.

  • Open a command prompt.

  • Create a new folder in order to mount the HD:



    sudo mkdir /mnt/newroot
    
    
  • Mount the HD (sda1, in my case):



    sudo mount /dev/sda1 /mnt/newroot
    
    
  • Change the root directory:



    sudo chroot /mnt/newroot
    
    
  • Run the following command:



    update-initramfs -u -k all

  • Return to the old root and unmount the partition:



    exit
    sudo umount /mnt/newroot
    
    
  • Reboot.
After these steps, Ubuntu should work without problems.

Como se recuperar do crash após atualizar o pacote udev

Ontem de noite fiz a atualização do pacote udev do meu Ubuntu 10.04 (32 bits) e ao reiniciar a máquina conforme a solicitação do instalador, o sistema não bootava.

A mensagem de erro apresentada era:

udevadm settle is not permitted while udev is unconfigured
ALERT! /dev/disk/by-uuid/)a8cc71e....071cd does not exist. Dropping to a shell

Será que isso foi uma praga de  São iGNUcius devido eu ter escrito um artigo sobre o Windows?



Após pesquisar um pouco no Google, encontrei a solução:

  • Inicie o sistema usando o live CD do Ubuntu. Se o Ubuntu montar automaticamente a partição do disco rígido, desmonte-a antes de prosseguir. Isso pode ser feito facilmente por meio do Nautilus.

  • Abra um prompt de comando.

  • Crie uma pasta para montar o HD:


    sudo mkdir /mnt/newroot
    
    
  • Monte o HD (no meu caso, ele é o sda1):


    sudo mount /dev/sda1 /mnt/newroot
    
    
  • Altere o diretório root:


    sudo chroot /mnt/newroot
    
    
  • Execute o comando abaixo:


    update-initramfs -u -k all

  • Volte para o root anterior e desmonte a partição:


    exit
    sudo umount /mnt/newroot
    
    
  • Reinicie a máquina.
Após esses passos, o Ubuntu deve funcionar sem problemas.

quarta-feira, setembro 08, 2010

Running 32-bits .NET applications on Windows 7 64-bits.

I tried to run a 32-bits .NET application that belongs to the enterprise that I work for on Windows 7 64-bits but IIS 7 was unable to load a DLL or one of its dependencies.

The message error is was the following:

Parser Error Message: Could not load file or assembly 'Engine.Client' or one of its dependencies. An attempt was made to load a program with an incorrect format.

After some Googled, I found out that I should explicitly instruct IIS to run 32-bit applications.

Next you'll see all the steps needed to solve this problem.
  • Open the IIS Manager. You'll see two items: Application Pools and Sites. Select Application Pools. My site is configured to use DefaultAppPool. See picture 1.




  •  Right click on the pool that your application uses (DefaultAppPool, in my case) and select the option Set Application Pool Defaults. See picture 2.





  • A configuration window will pop up. Notice that the property Enable 32-Bit Applications is set to false. See picture 3.




  • Change the Enable 32-Bit Applications value from false to true and close the configuration window.Done! Problem solved. See picture 4.




    I hope this post will be useful. Any question, fill free to get in touch.

Executando aplicações .NET de 32 bits no Windows 7 de 64 bits

Eu fui executar um aplicativo .NET da empresa, desenvolvida para rodar em 32 bits, no Windows 7 64 bits e o ISS 7 não consegui carregar uma DLL ou uma de suas dependências.

A mensagem apresentada foi:

Parser Error Message: Could not load file or assembly 'Engine.Client' or one of its dependencies. An attempt was made to load a program with an incorrect format.

Após algumas buscas no Google, descobri que a opção de executar aplicativos de 32 bits deveria ser habilitada explicitamente.

Abaixo seguem os passos a serem executados.
  • Abra o gerenciador do IIS. Tu verás dois items: Application Pools e Sites. Selecione Application Pools. No meu caso, o meu site estava configurado para usar o DefaultAppPool. Veja a figura 1.


  •  Clique com o botão direito sobre o pool que a tua aplicação estiver usando (DefaultAppPool no meu caso) e selecione a opção Set Application Pool Defaults. Veja a figura 2.



  • Abrirá uma janela de configuração. Note que a propriedade Enable 32-Bit Applications está com o valor false. Veja a figura 3.


  • Mude o valor do campo Enable 32-Bit Applications para true e feche a janela de configuração. Pronto! Problema resolvido. Veja figura 4.


    Espero que esse artigo seja útil. Qualquer dúvida entre em contato.