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