É possível editar a partição na imagem do disco?

1

Estou tentando recuperar uma unidade de 2 TB com falha usando o ddrescue. Ele está sendo executado há mais de uma semana e ficou perto do final e, aparentemente, ficou sem espaço com esse erro:

ddrescue: write error: No space left on device

Era uma unidade vazia de 2 TB para a qual eu estava copiando, então acho que havia uma variação no espaço real da unidade de um fabricante para o próximo. A unidade não estava cheia, apenas cerca de 600GB usados quando caiu, e havia apenas 20 erros totalizando 254MB, então acho que na verdade eu tenho a grande maioria dos dados que estavam lá na imagem do disco recuperado.

Quando tento montar a imagem usando este comando:

sudo mount -o loop,ro,offset=0 rimage /mnt/resc

falha, e isso está aparecendo no dmesg:

[999150.073373] EXT4-fs (loop0): bad geometry: block count 488378646 exceeds size of device (480723271 blocks)

1) Existe uma maneira de editar a contagem de blocos da imagem para que eu possa montá-la?

2) Em caso afirmativo, é possível reduzir o tamanho da partição da imagem do disco posteriormente?

    
por Michael VanDeMar 16.11.2015 / 09:32

1 resposta

1

Problema de espaço em disco

Seu destino de recuperação provavelmente ficou sem espaço em disco porque você estava gravando em um arquivo de imagem em um sistema de arquivos no destino e o sistema de arquivos tem uma sobrecarga. Você pode ter conseguido resolver o problema de espaço em disco com o sinalizador --sparse em ddrescue .

Recomendo enfaticamente tentar criar outra imagem , evitando o problema de espaço desta vez com um disco rígido maior ou usando ddrescue --sparse .

Na verdade, você pode usar ddrescue para gravar em todo o disco rígido de destino de recuperação, ignorando um sistema de arquivos. Se a unidade de disco rígido de destino de recuperação for /dev/sdc , você diria a ddrescue para gravar nela em vez de rimage . O disco rígido de destino de recuperação então se comportaria como um clone do disco rígido com falha, menos as partes irrecuperáveis.

Redimensionando uma imagem de dispositivo

Se a imagem ddrescue for supostamente de toda a unidade com falha, execute este comando, substituindo /dev/sdb pelo caminho do dispositivo da unidade com falha:

sudo blockdev --getsize64 /dev/sdb

Pegue a saída (por exemplo, 500107862016 ) e redimensione sua imagem de recuperação /path/to/rimage usando truncate :

truncate -s 500107862016 /path/to/rimage

CAUTION: Truncating to a size less that the size of /path/to/rimage will result in data loss.

Make sure to check the current size of /path/to/rimage with du -b --apparent-size /path/to/image and confirm that the size returned is less than what blockdev gave you.

Agora, a imagem recuperada terá o tamanho total que mount.ext4 pode estar esperando.

Redimensionando uma imagem de partição

Se você estava executando ddrescue em uma partição na unidade com falha, use este comando para obter o tamanho da partição, substituindo /dev/sdb1 pelo caminho do dispositivo da partição:

sudo blockdev --getsize64 /dev/sdb1

Em seguida, pegue a saída (por exemplo, 500106788864 ) e redimensione sua imagem de recuperação /path/to/rimage usando truncate :

truncate -s 500106788864 /path/to/rimage

CAUTION: Truncating to a size less that the size of /path/to/rimage will result in data loss.

Make sure to check the current size of /path/to/rimage with du -b --apparent-size /path/to/image and confirm that the size returned is less than what blockdev gave you.

    
por 16.11.2015 / 10:29