Recuperando arquivos de texto no terminal usando o grep no Mac OS X Snow Leopard

3

Eu estupidamente removi alguns códigos-fonte de minha máquina Snow Leopard do Mac OS X com rm -rf ao fazer algo com o buildout. Eu quero tentar recuperar esses arquivos novamente. Eu não toquei no sistema desde então para tentar buscar uma resposta.

Eu encontrei este artigo e parece que o método grep é o caminho para ir, mas quando executá-lo na minha máquina eu estou recebendo 'Resource ocupado' ao tentar executá-lo no disco.

Estou usando este comando:

sudo grep -a -B1000 -A1000 'video_output' /dev/disk0s2 > file.txt

Onde 'dev / disk0s2' é o que surgiu quando eu corri df .

Eu recebo isso quando estou executando:

grep: /dev/disk0s2: Resource busy

Eu não sou especialista nisso, estou dando o meu melhor. Por favor, alguém pode me ajudar ainda mais? Estou prestes a perder dois dias de trabalho com código-fonte!

Obrigado

    
por littlejim84 18.02.2010 / 18:40

3 respostas

1

Tente isso com um LiveCD do Ubuntu ( aqui ) ou o CD de inicialização do GPartEd (aqui ) ou algo parecido, onde você pode inicializar a partir do CD e não da partição do seu disco rígido (supondo que você tenha outro computador onde possa baixar e gravar um desses). Mesmo que eles não entendam o sistema de arquivos HFS +, eles poderão lê-lo em formato raw.

Este será o caminho mais seguro. Por uma vez, o sistema operacional não bloqueará a unidade e você não correrá o risco de que o arquivo de troca ou os arquivos temporários sobrescrevam os preciosos blocos livres.

    
por 18.02.2010 / 18:45
1

Depois de inicializar em algum outro dispositivo, você precisará ter em mente que, se estiver usando o nome do arquivo, talvez não esteja recebendo o que deseja, pois o nome do arquivo não está no próprio arquivo - a menos que você o tenha incluído em comentários ou algo assim.

Você precisará entender algumas frases que você sabe que estão no arquivo.

    
por 18.02.2010 / 22:10
0

Você terá que grep o disk em vez do disk slice . Usando minha máquina como exemplo,

$ diskutil list
/dev/disk0
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *240.1 GB   disk0
   1:                        EFI EFI                     209.7 MB   disk0s1
   2:                  Apple_HFS Sandisk 240G            239.2 GB   disk0s2
   3:                 Apple_Boot Recovery HD             650.0 MB   disk0s3

disk0 é o disco inteiro e disk0s2 é a partição em que excluí o arquivo. Grep não funciona na fatia de disco

$ sudo grep --binary-files=text --context=10 '192.168.1.196' /dev/disk0s2 > recovered.txt
Password:
grep: /dev/disk0s2: Resource busy

Mas funciona no próprio disco

$ sudo grep --binary-files=text --context=10 '192.168.1.196' /dev/disk0 > recovered.txt

Cuidado

grep 'ing discos brutos no OSX não funciona - e irá travar o OSX. Quando executei o comando acima, Activity Monitor mostra grep lendo dados rapidamente. Depois de ler cerca de 3GB, o OSX travou e eu tive que reiniciar.

    
por 27.06.2014 / 05:27