Blog Nerd do Liquuid

Recuperando dados deletados de uma partição reiserfs



Assunto delicado, perder um dado importante ou todos os dados de uma partição ou uma partição inteira é como um incêndio na casa de um geek.... Eu mesmo já surtei inúmeras vezes nessa lista por ter perdido partições inteiras ao instalar uma distro nova (Conectiva 7 e depois nunca mais usei conectiva), ao dar um comando errado na hora errada na partição certa ou por falha de disco.... alias meu HD aqui já tem 3 anos......
Bom Após passar 2 semanas puxando um game de playstation ( Valkyrie Profile= RPG ambientado nas culturas nórdicas, asgard, odim, vicking e tals...) para curtir nas férias, hoje finalmente o jogo veio ! Tava puxando por bittorrent e no ápice do meu egoísmo, fui deletar o torrent para não fazer mais upload |:-> mas cai na pegadinha do tab-completion do shell que completou com o arquivo rar em vez do torrent X-(
Digamos que nenhuma política de backup poderia ter me salvado dessa tragédia...
Então vou descrever aqui como recuperar dados deletados de uma partição reiserfs incluindo os passos que dei para recuperar meus dados :)

Lascou-se ! Tudo deu errado ! Deletou tudo ! TIRE SEU MICRO DA TOMADA IMEDIATAMENTE, isso ai puxe o fio ! Não dê shutdown !
Parece loucura, afinal , tirar o micro da tomada não é nenhum procedimento técnico não é mesmo ? Mas isso impede que o sistema operacional grave arquivos no disco... Ao deletar um arquivo na verdade o sistema operacional apenas realoca seu espaço ocupado para novos arquivos, se por um acaso o SO gravar um novo arquivo ele pode sobre-escrever seu precioso arquivo com algum arquivo temporário ou um importante log do sistema :-/

Muita calma nessa hora o computador está desligado, seu arquivo está seguro ! Para religar todo cuidado é pouco, um erro e todos seus arquivos deletados podem ir para o limbo ! Será nescessário religar seu sistema em modo reparo com as partições em RO (read-only), como fazer ?
Se vc usa lilo/yaboot, dê um tab no prompt descubra o nome do Label do seu sistema e acrescente "ro init=/bin/bash", por exemplo :

Linux ro init=/bin/bash

Se vc usa grub, no menu de opções aperte "e" no item que corresponde a sua distro, "e" na linha do kernel e adicione "ro init=/bin/bash no final.... então aperte ESC e b para bootar.

Isso vai fazer com que o sistema monte a partição root em modo ro e vai iniciar o processo bash como processo número 1 no lugar do init.... Pode acontecer do diretório dev não ser populado ou seja não será possível montar outras partições se nescessário... se isso acontecer, vc deve remontar a partição / para leitura e escrita (mount -o rw,remount /) e rodar o comando udevstart (ou devfsd para quem usa sistemas antigos como debian sarge desatualizado e etc...) e rezar para dar certo.

Se tudo der errado, a única forma é iniciar o sistema no runlevel 1 , mas isso pode ser uma péssima idéia em algumas distros... várias delas escrevem no disco antes de entrar em modo de manutenção, entre elas : Fedora, Ubuntu, gentoo... deve haver uma porção delas por ai... Tenho quase certeza que slackware e debian não o fazem.

Na distro em questão (gentoo) isso ocorreu, o sistema escreveu no disco e não foi pouco : as consequencias serão descritas no final.....

Bom com o sistema montado em ro e com o bash em mãos é hora de agir ! O sistema de arquivos reiserfs peca por não ter uma ferramenta para recuperar arquivos deletados.... ou pior se ela existe não é livre (várias ferramentas de sistema do reiserfs não são livres....), mas tem uma gambiarra que funciona bem....É o comando reiserfsck !

Use :

reiserfsck --rebuild-tree -S /dev/PARTICAO

Esse comando vai buscar por todos os arquivos e diretórios e vestígios dos mesmos na partição e vai criar um diretório chamado "lost+found" no topo da partição...
dentro desse diretório vc vai encontrar uma porção de arquivos cujo o nome são apenas números... no meu caso tive que procurar por um arquivo grande, e achei, depois para confirmar usei o programa "file" para identificar o conteúdo ,tá lá ! Arquivo RAR na cabeça, então foi só renomear....
Tive a sorte de ser um arquivo grande , fácil de identificar... mas e se fosse um arquivo pequeno ? Bem mais complicado, não tem jeito é garimpar até achar.... No caso de diretórios inteiros ou partições a sistuação é mais grave, todos eles vão ter números como nomes e muitas vezes arquivos aparecem fora de seus diretórios .... uma zona.

Bom, e como meu sistema inicializou em init 1 e escreveu no disco não deu outra, ele corrompeu partes do meu arquivo e só pude recuperar 30% do meu arquivo original, bom melhor que nada :-/


0 comentários

TAGS : asgard backup conectiva dados fedora geek gentoo grub init lilo linux odim partição profile psone rebuild-tree recuperar reiser reiserfs reiserfsck rpg shell sys tab-completion torrent ubuntu valkyrie vicking yaboot

Ubuntu dapper em powerbook G4



Bom, faz um tempo que venho estudando o ubuntu dapper... e a versão liveCD para PPC simplesmente não funcionou no meu powerbook G4... o GNOME não sobe ! E ao forçar o gnome, o sistema de instalação simplesmente não funciona !!!!! Arrg ! Apesar disso, pbbutons , som, wireless e o vídeo funcionam maravilhosamente bem, assim como no fedora 4 ... Mas essa versão para PPC realmente foi esquecida pelos developers, nem o tema do GNOME é o mesmo para as 3 arquiteturas da distro... Lamentável.

Então, estou escrevendo um guia de instalação manual do ubuntu Dapper em PPC via liveCD, no melhor estilo gentoo de se instalar uma distro :

O gnome não subiu no liveCD, não existe outra alternativa ao gnome nesse cd.... o que fazer ? Eu fui para o modo console, e lá o sistema já está logado como usuário ubuntu. Crie o arquivo .xinitrc :

echo "exec xterm" > .xinitrc

Então suba uma nova instância do X:

xinit -- :1

Se tudo der certo você terá um terminal "xterm" no seu modo gráfico, agora reparticione seu HD com o mac-fdisk... se você não sabe como, vá para o Mac Os X , e faça usando o Disk Utility. Com o mac-fdisk crie uma partição de bootstrap e outra para o seu linux:

mac-fdisk /dev/hda

Crie a partição bootstrap com o comando "b", quando ele pedir o "First Block" diga o número da partição de espaço livre seguido da letra "p", exemplo "12p". Agora crie uma partição linux , use o comando "c", seguido da partição livre (exemplo: 13p) e finalmente o tamanho da partição, exemplo : 5G.

Formate sua partição linux, exemplo:

mkfs.ext3 /dev/hda2

Com sua partição linux criada e formatada, monte e compie os dados do root do liveCD, mas não copie o conteúdo dos diretórios: cdrom , proc e sys, ok ? E não esqueça de copiar os arquivos com o comando "cp -a", sem isso o seu sistema do HD não vai funcionar apropriadamente.

Temos também que formatar a partição do openfirmware bootstrap device que criamos agora a pouco, para isso, use o comando :

mkofboot -o /dev/hda9                            # No meu caso 

Após isso, temos que configurar o bootloader, no caso dos portáteis apple , o yaboot, ele tem um script que gera a configuração automaticamente, o yabootconfig, mas no ubuntu ele não funcionou apresentando o erro: "yabootconfig: unionfs: no such file or directory".... Ou seja , vamos criar a configuração na mão :)
Para nossa sorte a configuração do yaboot é muito parecida com a do lilo, um exemplo de configuração é:

## /etc/yaboot.conf
##
## Para menu dual-boot, adcione :
## bsd=/dev/hdaX, macos=/dev/hdaY, macosx=/dev/hdaZ

## Coloque aqui a partição bootstrap

boot=/dev/hda9

## Se vc tem um G5 descomente essa linha !
#ofboot=hd:2

## Apelido para seu hd do jeito que o OpenFirmware vê
device=/pci@f2000000/mac-io@17/ata-4@1f000/disk@0:


delay=5
defaultos=macosx
timeout=30
install=/usr/lib/yaboot/yaboot
magicboot=/usr/lib/yaboot/ofboot

image=/boot/vmlinuz-2.6.15-23-powerpc
	label=Linux
	initrd=/initrd.img.old
	root=/dev/hda12
	partition=12
	read-only

macos=/dev/hda13
macosx=/dev/hda12
enablecdboot
enableofboot

Para instalar o bootloader no hd, o comando é : ybin -b /dev/hda9 -C yaboot.conf . Você não precisa fazer chroot no sistema que você está instalando para rodar o ybin, basta dizer para ele qual é a partição de boot e onde está o arquivo de configuração.

Por último temos, arrumar o /etc/fstab, adicionando o a linha correspondente ao nosso root.
Depois disso, meu sistema bootou ai tive que resolver outros problemas heheh, espero que você também consiga !


0 comentários

TAGS : dapper fedora g4 gentoo gnome livecd mac mac-fdisk mkfs.ext3 mkofboot pbbuttons powerbook ppc ubuntu xinitrc yaboot ybin

Posts relacionados

Delicious/liquuid/yaboot
liquuid's post :: Recuperando dados deletados de uma partição reiserfs
liquuid's post :: Ubuntu dapper em powerbook G4