Záloha a obnova MBR
Občas se hodí mít zazálohovaný tzv. Master Boot Record, ať již kvůli možnosti obnovy bootovacího sektoru nebo kvůli uchování/zálohování tabulky oddílů.
Jak MBR vypadá?
MBR se skládá ze tří částí. V první části (000000 - 0001bd) je uložena primární část bootovacího programu - zavaděče. Tato část je velká 446 Bytů. Druhá část (0001be - 0001fd) obsahuje tabulku oddílů a je proto velice důležitá. Tato část je velká 64 Bytů. Poslední část (0001fe - 0001ff) je vlastně značka/podpis zavaděče (55aa) a je velká 2 Byty. Leží vždy na konci MBR. Podává vlastně informaci o tom, že těch 512 Bytů je validních a že je v MBR nahrán zavaděč.
Jak zazálohovat/obnovit MBR?
V Linuxu lze MBR zazálohovat jednoduše pomocí programu dd
. Budu
zálohovat MBR (pod uživatelem root, protože pouze tento uživatel má přístup
k danému zařízení) z IDE disku, který je jako primární master - tedy zařízení
/dev/hda
.
dd if=/dev/hda of=mbr.backup bs=512 count=1
Je dobré si uvědomit, že tímto příkazem se zazálohuje i tabulka oddílů, takže pokud by se obnova prováděla na jiném PC, tak dojde k přepsání tabulky oddílů na tomto PC, což není vždy to, co človek právě potřebuje.
Takto zazálohovaný MBR si lze prohlédnout s využitím hexa prohlížeče:
xxd -g4 mbr.backup 0000000: eb489010 8ed0bc00 b0b80000 8ed88ec0 .H.............. 0000010: fbbe007c bf0006b9 0002f3a4 ea210600 ...|.........!.. 0000020: 00bebe07 3804750b 83c61081 fefe0775 ....8.u........u 0000030: f3eb16b4 02b001bb 007cb280 8a740302 .........|...t.. 0000040: 80000080 3fc00501 0008fa80 ca80ea53 ....?..........S 0000050: 7c000031 c08ed88e d0bc0020 fba0407c |..1....... ..@| 0000060: 3cff7402 88c252be 797de834 01f6c280 <.t...R.y}.4.... 0000070: 7454b441 bbaa55cd 135a5272 4981fb55 tT.A..U..ZRrI..U 0000080: aa7543a0 417c84c0 750583e1 01743766 .uC.A|..u....t7f 0000090: 8b4c10be 057cc644 ff01668b 1e447cc7 .L...|.D..f..D|. 00000a0: 041000c7 44020100 66895c08 c7440600 ....D...f.\..D.. 00000b0: 706631c0 89440466 89440cb4 42cd1372 pf1..D.f.D..B..r 00000c0: 05bb0070 eb7db408 cd13730a f6c2800f ...p.}....s..... 00000d0: 84f000e9 8d00be05 7cc644ff 006631c0 ........|.D..f1. 00000e0: 88f04066 89440431 d288cac1 e20288e8 ..@f.D.1........ 00000f0: 88f44089 440831c0 88d0c0e8 02668904 ..@.D.1......f.. 0000100: 66a1447c 6631d266 f7348854 0a6631d2 f.D|f1.f.4.T.f1. 0000110: 66f77404 88540b89 440c3b44 087d3c8a f.t..T..D.;D.}<. 0000120: 540dc0e2 068a4c0a fec108d1 8a6c0c5a T.....L......l.Z 0000130: 8a740bbb 00708ec3 31dbb801 02cd1372 .t...p..1......r 0000140: 2a8cc38e 06487c60 1eb90001 8edb31f6 *....H|`......1. 0000150: 31fffcf3 a51f61ff 26427cbe 7f7de840 1.....a.&B|..}.@ 0000160: 00eb0ebe 847de838 00eb06be 8e7de830 .....}.8.....}.0 0000170: 00be937d e82a00eb fe475255 42200047 ...}.*...GRUB .G 0000180: 656f6d00 48617264 20446973 6b005265 eom.Hard Disk.Re 0000190: 61640020 4572726f 7200bb01 00b40ecd ad. Error....... 00001a0: 10ac3c00 75f4c300 00000000 00000000 ..<.u........... 00001b0: 00000000 00000000 51330900 00008001 ........Q3...... 00001c0: 010083fe ffff3f00 00003b0d 770100fe ......?...;.w... 00001d0: ffff82fe ffff7a0d 7701c31c 200000fe ......z.w... ... 00001e0: ffff83fe ffff3d2a 97014352 65050000 ......=*..CRe... 00001f0: 00000000 00000000 00000000 000055aa ..............U.
Případnou obnovu MBR pak provedeme takto:
dd if=mbr.backup of=/dev/hda
Pokud chcete do MBR vložit pouze první část zavaděče a podpis zavaděče (55aa) a chcete ponechat stávající tabulku oddílů, tak to lze provést následovně:
dd if=/dev/hda of=mbr.backup bs=512 count=1 dd if=boot_sector of=mbr.backup bs=446 count=1 dd if=boot_sector of=mbr.backup bs=1 skip=510 count=2 seek=510 dd if=mbr.backup of=/dev/hda
Prvním příkazem jsme udělali zálohu MBR do souboru mbr.backup
.
V druhém
příkazu jsme vzali zaváděcí program (máme jej uložen například v souboru
boot_sector
), který chceme do našeho MBR vložit a vložili jsme
jej na začátek souboru mbr.backup
(do prvních 446 Bytů). Třetím
příkazem jsme na konec souboru mbr.backup
vložili podpis
zavaděče, tedy 2 Byty. Posledním příkazem jsme provedli zápis námi
vytvořeného MBR na disk.
Tabulku oddílů lze také zazálohovat pomocí programu sfdisk
, viz
níže:
sfdisk -d /dev/hda > tabulka_oddilu
Případnou obnovu tabulky oddílů pak provedeme takto:
sfdisk /dev/hda < tabulka_oddilu