Recuperando tabela de partições que Windows Vista apagou

Pensei no título desse post em algo como “Micro$oft, a saga continua agora em outra galáxia” ou algo assim, mas resolvi fazer uma coisa mais informativa. Sei que muita gente passa por isso e nem sempre é fácil achar informação válida sobre o assunto.
Meu mais recente notebook veio com Windows Vista. Quando instalei Linux nele resolvi deixar o Vista lá para caso eu precisasse ver alguma coisa no IE. Ficou por alguns meses numa boa com o dual boot rolando sem problemas. Até que um dia eu precisei entrar no Windows ele não deu boot: tela azul e restarta sozinho sem que eu consiga ver a mensagem de erro. Deixei ele de lado lá…
Hoje precisei usar IE para debugar um javascript que está dando problema somente nele. Resolvi colocar o CD de recovery do Windows para ver se ele dava sinal de vida. Conclusão sem me perguntar nada ele disse: formatando… copiando arquivos… Nisso eu pensei: puts ferrou! Dei reboot antes que ele passasse por cima das minhas partições Linux. Ubuntu Live CD to the rescue! Dei boot num Ubuntu Live CD e a “recuperação” de fato tinha apagado todas as partições e criado uma única novamente somente para o Windows. Ok, sem pânico.
Última vez que passei por problema semelhante foi há uns 10 anos atrás, quando meu Windows foi infectado pelo vírus Chernobyl(CHI). Esse vírus ficava quietinho na sua máquina e somente agia se você ligasse ela num dia 26 de abril, aniversário do acidente nuclear na Ucrânia. Ele apagava o primeiro megabyte do seu disco rígido. Com isso ia pro espaço seu boot loader e sua tabela de partições. Depois desse dia eu exterminei o Windows da minha vida e passei a usar somente Linux.
Google é nosso amigo. Na época eu consegui um software que varria o disco e procurava por partições perdidas e depois recriava a tabela de partições. Se eu consegui resolver esse mesmo problema há tanto tempo atrás, não devia ser tão dificil resolver nos dias de hoje. E realmente não foi. Achei dos programas de código aberto para fazer o trabalho: gpart e TestDisk.
Eu optei por usar o TestDisk, me pareceu ser mais completo. Ele demorou cerca de 30 minutos para fazer o scan no disco de 160gb. Detectou todas as minhas 3 partições Linux (swap, uma de sistema que fica no “/” e outra que uso como “/home”). Foi só marcar elas como primárias novamente e salvar a nova tabela de partições. É preciso dar um boot no Live CD para o sistema reler a tabela de partições (na verdade tem uma forma de fazer isso sem boot, mas eu esqueci como é). Por último é só restaurar o GRUB a partir do Live CD do Ubuntu.
Depois disso o Ubuntu apagado pelo Windows rolou numa boa e eu deixei o Windows de mão de novo. Ô sisteminha…
Links legais:
- TestDisk
- Site do TestDisk. Eles também tem uma ferramenta específica para recuperação de fotografias em mídias diversas.
- System Rescue with Knoppix
- Foi aqui que eu descobri o gpart. As outras apresentações também são muito boas.
- Insert Linux
9 comentários : 31.03.2009 03:50 PM
Movendo um repositório SVN
Anteriormente eu utilizava hospedagem compartilhada no Dreamhost, mas eu mudei a pouco tempo atrás. Gerenciava meus repositórios pelas ferramentas do Dreamhost. Agora no vps precisei aprender uns truques a mais. Antes eu tinha minhas coisas públicas espalhadas por alguns repositórios. Agora juntei tudo num só e foi mais fácil do que pode parecer:
svnadmin dump caminho_para_o_repositorio > repositorio.dump
O caminho_para_o_repositorio é o caminho físico (e não a url de acesso ao svn, logo é preciso estar logado na máquina onde está o repositório) e repositorio.dump é o nome do arquivo do dump. Agora é só:
svnadmin load caminho_para_o_repositorio_destino < repositorio.dump
Com isso você leva todo o conteúdo de um repositório para o outro. E é por isso que agora meu repositório svn público está de volta ao ar:
http://mergulhao.info/svn/
1 comentário : 02.05.2008 11:54 PM
extjs 2.0.2 para download
Eu consegui no endereço http://pypi.python.org/pypi/ore.extjs/2.0.2 um pacote para Zope que contém a extjs 2.0.2, última lançada como LGPL. O Jack Slocum da Ext afirma num comentário nesse post e outros lugares pela rede que um fork da versão 2.0.2 é uma violação da licença. Vasculhando o pacote do link acima encontrei o arquivo original da licença que diz o seguinte sobre a “versão” open source:
Open Source License
Ext is also licensed under the terms of the Open Source LGPL 3.0 license. You may use our open source license if you:
- Want to use Ext in an open source project that precludes using non-open source software
- Plan to use Ext in a personal, educational or non-profit manner
- Are using Ext in a commercial application that is not a software development library
or toolkit, you will meet LGPL requirements and you do not wish to support the project
http://www.gnu.org/licenses/lgpl.html
Ou seja: ele tenta impor restrições ao uso da licença open source(LGPL), o que de forma alguma é permitido pela LGPL, Stallman que me corrija se eu estiver errado.
Conclusão: até que um advogado me prove o contrário não há nada de errado ou ilegal fazer um fork da versão 2.0.2.
1 comentário : 29.04.2008 12:20 AM
Analizando cobertura dos testes com Rcov
Até o momento considero um sucesso a minha adesão ao TDD no desenvolvimento com Rails. Em apenas dois dias os testes automatizados encontraram bugs que possivelmente passariam desapercebidos e já escrevi novos testes para cobrir situações inicialmente não previstas, mas que mostraram sua cara nos testes que já estavam escritos.
Após algumas horas de testes e programação finalizei a primeira etapa de codificação do que será o novo sistema de inscrições do Fórum de Software Livre do Rio de Janeiro desse ano, que ocorrerá em outubro. Foi todo um período de codificação em que não encostei em html/css, mas apenas na codificação dos testes e na lógica dos controladores e modelos.
Para validar todo o trabalho é necessário verificar a cobertura dos testes. Assim podemos descobrir se alguma linha de código passou sem ser testada. Pegando emprestada a idéia do pessoal da ImproveIt, instalei o rcov no Ubuntu:
sudo apt-get install rcov
Foi acrescentado um rake task para automatizar o processo de geração do relatório. Gerado o arquivo /lib/tasks/rcov.rake com o conteúdo(levemente modificado do original da ImproveIt):
require 'rake/clean'
RCOV_OUT = "doc/coverage"
EXCLUDE = "-x /site_ruby/"
CLOBBER.include(RCOV_OUT)
RCOV = "rcov --no-color"
task :coverage_units do
sh "find test/unit -name '*.rb' | xargs #{RCOV} #{EXCLUDE} --rails --output #{RCOV_OUT}/units"
end
task :coverage_functional do
sh "find test/functional -name '*.rb' | xargs #{RCOV} #{EXCLUDE} --rails --output #{RCOV_OUT}/functionals"
end
task :coverage_all do
sh "find test/* -name '*.rb' | xargs #{RCOV} #{EXCLUDE} --rails --output #{RCOV_OUT}"
end
task :rcov => [:coverage_all]
Agora basta entrar no diretório do seu projeto em Rails e digitar:
rake rcov
Será gerado dentro do diretório /doc/coverage o relatório de cobertura dos testes. E não é eu fui bem pra minha surpresa? Resultado: 100% testado! Que venham os próximos testes!
0 comentários : 01.08.2007 02:28 AM
Diff para Gnome
Há algum tempo eu procurava um programa gráfico para fazer diff em arquivos de uma maneira amigável, assim como o Eclipse faz quando usa-se o merge em um arquivo no cvs ou svn.
Hoje pesquisando no freshmeat.net encontrei um para Gnome! É o Meld. Não tem pacote para Ubuntu, mas tem para Debian, e aqui funcionou muito bem. Fica a dica para quem precisar. O screenshot aí abaixo está comparando dois arquivos de folha de estilo.
0 comentários : 06.06.2007 08:00 AM




