1. 程式人生 > >mbr分區表備份、刪除和恢復

mbr分區表備份、刪除和恢復

1.5 文件備份 cit finger scp install perm 啟動 登錄

磁盤分區表備份、刪除和恢復

簡要說明

MBR分區磁盤的分區表信息存放在硬盤0磁道第0個扇區內總共512字節
前446字節為bootloader。
中間64位為磁盤分區表信息,每個分區信息占16個字節,總計存放4個分區。(這段就是需要備份出來的數據)
最後的aa55為結束標誌位。


一、分區表的備份

首先先查看下硬盤前512字節,從2080開啟時至aa55前的64字節就是我們需要備份的磁盤分區表

[root@centos7 ~]# hexdump -n 512 /dev/sda
0000000 63eb 1090 d08e 00bc b8b0 0000 d88e c08e
0000010 befb 7c00 00bf b906 0200 a4f3 21ea 0006
0000020 be00 07be 0438 0b75 c683 8110 fefe 7507
0000030 ebf3 b416 b002 bb01 7c00 80b2 748a 8b01
0000040 024c 13cd 00ea 007c eb00 00fe 0000 0000
0000050 0000 0000 0000 0000 0000 8000 0001 0000
0000060 0000 0000 faff 9090 c2f6 7480 f605 70c2
0000070 0274 80b2 79ea 007c 3100 8ec0 8ed8 bcd0
0000080 2000 a0fb 7c64 ff3c 0274 c288 be52 7c05
0000090 41b4 aabb cd55 5a13 7252 813d 55fb 75aa
00000a0 8337 01e1 3274 c031 4489 4004 4488 89ff
00000b0 0244 04c7 0010 8b66 5c1e 667c 5c89 6608
00000c0 1e8b 7c60 8966 0c5c 44c7 0006 b470 cd42
00000d0 7213 bb05 7000 76eb 08b4 13cd 0d73 845a
00000e0 0fd2 de83 be00 7d85 82e9 6600 b60f 88c6
00000f0 ff64 6640 4489 0f04 d1b6 e2c1 8802 88e8
0000100 40f4 4489 0f08 c2b6 e8c0 6602 0489 a166
0000110 7c60 0966 75c0 664e 5ca1 667c d231 f766
0000120 8834 31d1 66d2 74f7 3b04 0844 377d c1fe
0000130 c588 c030 e8c1 0802 88c1 5ad0 c688 00bb
0000140 8e70 31c3 b8db 0201 13cd 1e72 c38c 1e60
0000150 00b9 8e01 31db bff6 8000 c68e f3fc 1fa5
0000160 ff61 5a26 be7c 7d80 03eb 8fbe e87d 0034
0000170 94be e87d 002e 18cd feeb 5247 4255 0020
0000180 6547 6d6f 4800 7261 2064 6944 6b73 5200
0000190 6165 0064 4520 7272 726f 0a0d bb00 0001
00001a0 0eb4 10cd 3cac 7500 c3f4 0000 0000 0000
00001b0 0000 0000 0000 0000 b4f0 000a 0000 2080         2080:分區表開始
00001c0 0021 aa83 8228 0800 0000 0000 0020 aa00
00001d0 8229 fe83 ffff 0800 0020 0000 0c80 fe00         
00001e0 ffff fe83 ffff 0800 0ca0 0000 0640 fe00         
00001f0 ffff fe05 ffff 0800 12e0 f800 061f aa55         061f:分區表結束
0000200

1.使用dd命令將硬盤分區表的信息備份出來。

[root@centos7 ~]# dd if=/dev/sda of=mbr.bak bs=1 count=64 skip=446  復制sda的內的信息,復制方法為跳過前446個字節
64+0 records in
64+0 records out
64 bytes (64 B) copied, 0.000224581 s, 285 kB/s

2.查看下所備份出來的數據,然後將其備份至遠程主機上,也可以將其復制到U盤進行備份,此處以遠程主機為例。
查看備份數據,確保備份數據的正確性

[root@centos7 ~]# hexdump mbr.bak                   確保備份出來的數據沒有錯誤
0000000 2080 0021 aa83 8228 0800 0000 0000 0020
0000010 aa00 8229 fe83 ffff 0800 0020 0000 0c80
0000020 fe00 ffff fe83 ffff 0800 0ca0 0000 0640
0000030 fe00 ffff fe05 ffff 0800 12e0 f800 061f
0000040

將文件備份至遠程主機,並登錄遠程主機查看下數據。

[root@centos7 ~]# scp mbr.bak [email protected]:/root
The authenticity of host ‘192.168.172.140 (192.168.172.140)‘ can‘t be established.
RSA key fingerprint is SHA256:gPedPBi+OsdkYR+Y7j26ViQWSi4lIPU4cViDPImib0A.
RSA key fingerprint is MD5:46:d8:67:07:f3:51:87:95:2c:d7:4b:27:ce:85:a2:ed.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added ‘192.168.172.140‘ (RSA) to the list of known hosts.
[email protected]‘s password: 
mbr.bak                                                          100%   64    51.9KB/s   00:00    
[root@centos7 ~]# ssh [email protected]
[email protected]‘s password: 
Last login: Sat Mar 23 20:48:30 2019
[root@centos6 ~]# ls
anaconda-ks.cfg  install.log  install.log.syslog  mbr.bak
[root@centos6 ~]# hexdump mbr.bak 
0000000 2080 0021 aa83 8228 0800 0000 0000 0020
0000010 aa00 8229 fe83 ffff 0800 0020 0000 0c80
0000020 fe00 ffff fe83 ffff 0800 0ca0 0000 0640
0000030 fe00 ffff fe05 ffff 0800 12e0 f800 061f
0000040

註意:千萬不要把備份文件放在本機,否則當分區表被破壞後,磁盤將無法讀取內部的任何數據,存放在本地的備份毫無意義。


刪除和恢復

1.清空磁盤分區表

將446字節後的64字節清空

[root@centos7 ~]# dd if=/dev/zero of=/dev/sda bs=1 count=64 seek=446
64+0 records in
64+0 records out
64 bytes (64 B) copied, 0.000366417 s, 175 kB/s
[root@centos7 ~]# reboot

至此,磁盤分區已被破壞重啟後將無法進入系統。重啟。

2.恢復MBR分區表

1.重啟後顯示沒有磁盤
技術分享圖片
2.重啟選擇光盤模式
技術分享圖片
3.選擇Troubleshooting
技術分享圖片
4.選擇Rescue a CentOS System進入救援模式
技術分享圖片
5.選擇1 continue
技術分享圖片
6.此時主機沒有網絡地址無法從遠程主機獲取備份文件。所以先給本地主機配置IP地址
技術分享圖片
7.獲取地址後將遠程主機上的mbr.bak文件拉取至本機
技術分享圖片
8.將備份的分區表重新恢復至/dev/sda內,然後重啟
技術分享圖片
9.此時註意已經都能正常啟動。
技術分享圖片

mbr分區表備份、刪除和恢復