MBR находится в самом начале дискового блочного устройства ("в нулевом секторе"). Вы можете использовать fdisk
чтобы узнать смещение раздела (то есть, где первый блок файловой системы относительно начала диска). Обратите внимание, что я использую u
для переключения единиц измерения на сектора, которые, как показано в выводе, составляют 512 байт для этого диска.
# 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
#
(Чтобы избежать путаницы, я должен уточнить, что блоки в столбце Blocks
fdisk
- это блоки размером 1 КБ, а не блоки любого размера, которые может использовать ваша файловая система или блочное устройство.)
В этом примере с виртуальной машины /dev/sda1
, который является разделом my /boot
, начинается с сектора 2048, который является 256-м блоком 4k (2048 секторов * 512 байт / 4096 байт = 256 блоков 4k).
Если бы я знал, что только что изменил размер файловой системы в /dev/sda1
до 100000 блоков 4k, я мог бы скопировать первые 256 + 100000 = 100256 блоков 4k из /dev/sda
в образ, чтобы получить MBR и все /boot
раздел.
например
dd if=/dev/sda of=my_backup.img bs=4096 count=100256