Como calcular o tamanho necessário de um backup de partição a partir da contagem de blocos do sistema de arquivos ext3 contendo

0

Eu preciso gerar uma imagem de disco contendo o MBR e uma partição primária. A partição contém um sistema de arquivos ext3, que foi redimensionado para o mínimo com resize2fs -M /dev/sdc1 . Eu tenho a saída que o sistema de arquivos é agora N blocos grandes, onde um bloco é 4K. Agora eu acho que eu preciso do primeiro N * 4K Bytes da partição. Mas quantos bytes são antes dessa partição (eu acho que o próprio MBR e a tabela de partição tem algum tamanho) também são necessários?

O layout é apenas uma partição primária começando no início do disco.

Então a questão é: como posso obter da contagem de blocos N para a contagem real necessária de bytes?

    
por Rudi 23.10.2015 / 09:37

1 resposta

1

O MBR está logo no início do dispositivo de bloco de disco ("no setor zeroth"). Você pode usar fdisk para descobrir o deslocamento da partição (ou seja, onde o primeiro bloco do sistema de arquivos é relativo ao início do disco). Observe que estou usando u para alternar as unidades para setores, que, conforme mostrado na saída, são 512 bytes para este disco.

# fdisk /dev/sda

WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
         switch off the mode (command 'c') and change display units to
         sectors (command 'u').

Command (m for help): u
Changing display/entry units to sectors

Command (m for help): p

Disk /dev/sda: 85.9 GB, 85899345920 bytes
255 heads, 63 sectors/track, 10443 cylinders, total 167772160 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: 0x000bbac4

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048     1026047      512000   83  Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2         1026048   167772159    83373056   8e  Linux LVM

Command (m for help): q
#

(Para evitar confusão, devo esclarecer que os blocos na coluna Blocks de fdisk são blocos de 1k, não qualquer tamanho que o seu sistema de arquivos ou dispositivo de bloco possa usar.)

Neste exemplo de uma VM, /dev/sda1 , que é minha partição /boot , inicia no setor 2048, que é o 256º bloco de 4k (2048 setores * 512 bytes / 4096 bytes = 256 blocos de 4k).

Se eu soubesse que tinha acabado de redimensionar o sistema de arquivos em /dev/sda1 para 100.000 blocos de 4k, eu poderia copiar os primeiros 256 + 100000 = 100256 blocos de 4k de /dev/sda para a imagem para obter o MBR e todos os /boot partition.

por exemplo,

dd if=/dev/sda of=my_backup.img bs=4096 count=100256
    
por 23.10.2015 / 10:23