Alguma experiência
- O próprio disco foi "trabalhado" por um amigo e ainda está intacto, sem danos e ainda montável / recuperável
- O disco fazia parte de uma invasão de software 1 no Ubuntu 12.04
- O outro disco no ataque original 1 foi formatado e usado para outra finalidade, deixando o disco atual (o em questão) ainda tecnicamente parte de um ataque que não existe mais
O que eu já tentei
Montagem básica
- Adicionei uma entrada ao fstab, marquei o disco como ext3 / ext4 e tentei montar.
Ao montar, o seguinte erro aparece
wrong fs type, bad option, bad superblock on
E em dmesg
EXT4-fs (sdc1): VFS: Can't find ext4 filesystem
Eu tentei encontrar o tipo de sistema de arquivos do disco e criei
$sudo file -s /dev/sdc
/dev/sdc: x86 boot sector; partition 1: ID=0x83, starthead 254, startsector 63, 1953520002 sectors, code offset 0xb8
Onde preciso de ajuda / Minhas perguntas
- Existe uma maneira de converter o disco para ext4 sem danificar os dados?
- Existe uma maneira simples de montar o disco do tipo de arquivo Linux 83 e recuperar os dados?
- Eu tenho outro disco atualmente livre, caso seja possível reconstruir o ataque de alguma forma
- Meu principal objetivo é recuperar os dados do disco. Estou aberto a todas as opções.
Atualizar
Saída de alguns comandos
fdisk -l / dev / sdc
$fdisk -l /dev/sdc
Disk /dev/sdc: 1000.2 GB, 1000204886016 bytes
255 heads, 63 sectors/track, 121601 cylinders, total 1953525168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0005ed9c
Device Boot Start End Blocks Id System
/dev/sdc1 63 1953520064 976760001 83 Linux
arquivo -s / dev / sdc1
$file -s /dev/sdc1
/dev/sdc1: data
hexdump -C -n 32256 / dev / sdc (Não tenho certeza se isso pode ajudar ou não)
$hexdump -C -n 32256 /dev/sdc` 00000000 fa b8 00 10 8e d0 bc 00 b0 b8 00 00 8e d8 8e c0 |................| 00000010 fb be 00 7c bf 00 06 b9 00 02 f3 a4 ea 21 06 00 |...|.........!..| 00000020 00 be be 07 38 04 75 0b 83 c6 10 81 fe fe 07 75 |....8.u........u| 00000030 f3 eb 16 b4 02 b0 01 bb 00 7c b2 80 8a 74 01 8b |.........|...t..| 00000040 4c 02 cd 13 ea 00 7c 00 00 eb fe 00 00 00 00 00 |L.....|.........| 00000050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| * 000001b0 00 00 00 00 00 00 00 00 9c ed 05 00 00 00 00 fe |................| 000001c0 ff ff 83 fe ff ff 3f 00 00 00 82 59 70 74 00 00 |......?....Ypt..| 000001d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| * 000001f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 55 aa |..............U.| 00000200 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| * 00007e00
mount -f ext4 /dev/sdc1 /mountpoint
deve fazer o truque. Para força montar a assumir ext4 em vez de olhar para um sistema de arquivos é o que -f fazdf
mostra que o disco recém-montado está em uso a 2%, o que é significativamente menor do que o esperado.mount -t ext4
? O sinalizador -f é para montagem 'fake' (ubuntu 14.04).Respostas:
Isso está funcionando excelentemente no Ubuntu 14.04:
Você vai ter:
Em seguida, monte e veja seus arquivos:
fonte
/dev/sdc
e como/dev/md127
. Em seguida, fezmdadm --assemble --scan
o que resultou em/dev/md/Volume0_0p1
e/dev/md/Volume0_0p2
e assim por diante correspondente a 4 partições que estavam no disco. O P2 era o que eu precisava:mkdir /p2
seguido demount /dev/md/Volume0_0p2 /p2
um EXT3 montado e posso acessar e copiar os dados com facilidade. Também o montou como leitura e gravação.--scan
modo de não começar matrizes com discos que faltam, no meu caso aqui eu tive que parar o conjunto montado automaticamente e iniciá-lo novamente commdadm --assemble --force /dev/md/1 /dev/sdc1
O Linux mdraid possui vários formatos de metadados . Os formatos 0.9 e 1.0 colocam os metadados no final do dispositivo que contém e a carga (o sistema de arquivos) começa no início do dispositivo e pode ser acessada diretamente sem passar pela camada de ataque. Os formatos 1.1 e 1.2 colocam os metadados no meio e no início do dispositivo que contém, respectivamente, para que a carga útil esteja em um deslocamento.
O instalador do Ubuntu cria volumes com o formato de metadados 1.2, para que seus dados sejam iniciados após os metadados, e não no início do dispositivo.
A maneira mais simples de acessar esses dados é montar o dispositivo de ataque. Em um volume RAID-1, um único dispositivo é suficiente.
(Pare aqui, a menos que você goste de dor.)
Você também pode acessar os dados em um deslocamento. O único ponto que posso fazer para fazer isso é se você precisar trabalhar em um kernel muito antigo que não suporte os formatos 1.x mdraid. Primeiro, determine o deslocamento
mdadm -E /dev/sdc1
: procure a linhaData Offset : SSS sectors
. Um setor mdadm é de 512 bytes.Em desespero, nos formatos 1.x, o deslocamento de dados é armazenado nos bytes 128 a 135 dos metadados, little endian¹. Os metadados 1,2 são 4096 bytes após o início do dispositivo.
Você também pode alterar a tabela de partição para que ela comece ainda mais. Tenha muito cuidado com sua aritmética. Faça isso apenas se quiser continuar usando o disco a longo prazo em um sistema antigo que não pode acessar o dispositivo de invasão.
¹ Ou com endianness de plataforma? Não tenho certeza.
fonte
mdadm -E /dev/sdc1
exatamente onde), mas certamente não em 4k para 1,2 metadados, pois 4k é exatamente onde os metadados são armazenados. Veja também unix.stackexchange.com/q/57477/22565mdadm -A /dev/sdc1
saídasmdadm: device /dev/sdc1 exists but is not an md array.
eu fui um pouco mais para uso mdadm e ver se há qualquer informação adicional ...mdadm --misc --examine /dev/sdc1
saídasmdadm: No md superblock detected on /dev/sdc1.
. Existe uma maneira de reescrever os superblocos nesse disco para marcá-lo como um disco disponível para montagem RAID?mdadm -E /dev/sdc
retorna o seguinte para mim:/dev/sdc: MBR Magic : aa55 Partition[0] : 1953520002 sectors at 63 (type 83)
mas nenhuma informação para / dev / sdc1 emboraPara minha surpresa, eu era capaz de recuperar os dados simplesmente usando o principal .
A ajuda recebida aqui foi inestimável. Depois de tentar uma variedade de combinações sugeridas, bem como meus próprios mix-ins, o método ideal (montar e usar o disco normalmente) não parecia mais uma opção. Recorrer à recuperação de dados é a minha solução neste caso.
fonte
Parece que você já aplicou um zap no superbloco mdadm. Se ele costumava estar lá e tinha o formato 1.1 ou 1.2, provavelmente o sistema de arquivos está no deslocamento de 2048 setores. Você pode executar
e2fsck /dev/sdc1?offset=2048
para forçá-lo a procurar o sistema de arquivos iniciando nesse deslocamento. Se encontrar, você poderá modificar sua tabela de partições para apontar para onde o sistema de arquivos realmente inicia. Você pode usarparted /dev/sdc
e ounit s
comando para usar unidades de setores.print
Na tabela, observe o setor inicial e final, depoisrm
a partição, em seguida, recrie-amkpart
e use o mesmo setor final, mas adicione o deslocamento ao setor inicial.Se 2048 não funcionar, você também pode tentar 1985.
fonte
e2fsck /dev/sdc1?offset=2048
(eu também executei o offset = 1985) produzBad magic number..Superblock invalid...
, além de sugerir que o superbloco está corrompido e tentar executar o e2fsck com um superbloco alternativo. Parece que eu deveria fornecer um superbloco alternativo para avançar.testdisk
deve poder fazer uma varredura detalhada e corrigir a tabela de partições para você.testdisk
é um território completamente novo para mim. Uma apresentação básica (Analisar)No ext2, JFS, Reiser.. marker. Bad relative sector. No partition is bootable.
Também fornece o seguinte:1 P Linux 0 1 1 121600 254 63 1953520002
Como entender isso para ajudar a situação?