磁盘管理之分区的介绍

 

一划分分区的意义

硬盘要使用就要划分分区了。

为什么分区?是否可以在一个硬盘上不划分分区直接使用?

划分分区之后就可以创建文件系统,如果没有这样的分区而直接使用分区,最终表现的是0101二进制。

读取上面的数据就不是读取文件了,那么也就没有文件名和目录结构。这样去访问上面的数据就很麻烦了。

没有分区就要以二进制的方式访问数据了。

[root@centos65 ~]# hexdump   /dev/sda   -C  -n  500
00000000  eb 48 90 10 8e d0 bc 00  b0 b8 00 00 8e d8 8e c0  |.H..............|
00000010  fb be 00 7c bf 00 06 b9  00 02 f3 a4 ea 21 06 00  |...|.........!..|
00000020  00 be be 07 38 04 75 0b  83 c6 10 81 fe fe 07 75  |....8.u........u|
00000030  f3 eb 16 b4 02 b0 01 bb  00 7c b2 80 8a 74 03 02  |.........|...t..|
00000040  80 00 00 80 e0 f0 04 00  00 08 fa 90 90 f6 c2 80  |................|
00000050  75 02 b2 80 ea 59 7c 00  00 31 c0 8e d8 8e d0 bc  |u....Y|..1......|
00000060  00 20 fb a0 40 7c 3c ff  74 02 88 c2 52 f6 c2 80  |. ..@|<.t...R...|
00000070  74 54 b4 41 bb aa 55 cd  13 5a 52 72 49 81 fb 55  |tT.A..U..ZRrI..U|
00000080  aa 75 43 a0 41 7c 84 c0  75 05 83 e1 01 74 37 66  |.uC.A|..u....t7f|
00000090  8b 4c 10 be 05 7c c6 44  ff 01 66 8b 1e 44 7c c7  |.L...|.D..f..D|.|
000000a0  04 10 00 c7 44 02 01 00  66 89 5c 08 c7 44 06 00  |....D...f.\..D..|
000000b0  70 66 31 c0 89 44 04 66  89 44 0c b4 42 cd 13 72  |pf1..D.f.D..B..r|
000000c0  05 bb 00 70 eb 7d b4 08  cd 13 73 0a f6 c2 80 0f  |...p.}....s.....|
000000d0  84 f0 00 e9 8d 00 be 05  7c c6 44 ff 00 66 31 c0  |........|.D..f1.|
000000e0  88 f0 40 66 89 44 04 31  d2 88 ca c1 e2 02 88 e8  |[email protected]........|
000000f0  88 f4 40 89 44 08 31 c0  88 d0 c0 e8 02 66 89 04  |[email protected]..|
00000100  66 a1 44 7c 66 31 d2 66  f7 34 88 54 0a 66 31 d2  |f.D|f1.f.4.T.f1.|
00000110  66 f7 74 04 88 54 0b 89  44 0c 3b 44 08 7d 3c 8a  |f.t..T..D.;D.}<.|
00000120  54 0d c0 e2 06 8a 4c 0a  fe c1 08 d1 8a 6c 0c 5a  |T.....L......l.Z|
00000130  8a 74 0b bb 00 70 8e c3  31 db b8 01 02 cd 13 72  |.t...p..1......r|
00000140  2a 8c c3 8e 06 48 7c 60  1e b9 00 01 8e db 31 f6  |*....H|`......1.|
00000150  31 ff fc f3 a5 1f 61 ff  26 42 7c be 7f 7d e8 40  |1.....a.&B|..}.@|
00000160  00 eb 0e be 84 7d e8 38  00 eb 06 be 8e 7d e8 30  |.....}.8.....}.0|
00000170  00 be 93 7d e8 2a 00 eb  fe 47 52 55 42 20 00 47  |...}.*...GRUB .G|
00000180  65 6f 6d 00 48 61 72 64  20 44 69 73 6b 00 52 65  |eom.Hard Disk.Re|
00000190  61 64 00 20 45 72 72 6f  72 00 bb 01 00 b4 0e cd  |ad. Error.......|
000001a0  10 ac 3c 00 75 f4 c3 00  00 00 00 00 00 00 00 00  |..<.u...........|
000001b0  00 00 00 00 00 00 00 00  5a c7 00 00 00 00 80 20  |........Z...... |
000001c0  21 00 83 aa 28 82 00 08  00 00 00 00 20 00 00 aa  |!...(....... ...|
000001d0  29 82 83 fe ff ff 00 08  20 00 00 80 1a 06 00 fe  |)....... .......|
000001e0  ff ff 83 fe ff ff 00 88  3a 06 00 00 71 02 00 fe  |........:...q...|
000001f0  ff ff 05 fe                                       |....|
000001f4
[root@centos73 ~]# hexdump   /dev/sda1   -C  -n  500
00000000  58 46 53 42 00 00 10 00  00 00 00 00 00 04 00 00  |XFSB............|
00000010  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000020  e7 6f fa 1a 91 69 42 d4  ad cc c6 bd bf ef d6 63  |.o...iB........c|
00000030  00 00 00 00 00 02 00 04  00 00 00 00 00 00 00 40  |...............@|
00000040  00 00 00 00 00 00 00 41  00 00 00 00 00 00 00 42  |.......A.......B|
00000050  00 00 00 01 00 01 00 00  00 00 00 04 00 00 00 00  |................|
00000060  00 00 0a 00 b4 b5 02 00  02 00 00 08 00 00 00 00  |................|
00000070  00 00 00 00 00 00 00 00  0c 09 09 03 10 00 00 19  |................|
00000080  00 00 00 00 00 00 02 00  00 00 00 00 00 00 00 ba  |................|
00000090  00 00 00 00 00 03 7a 73  00 00 00 00 00 00 00 00  |......zs........|
000000a0  ff ff ff ff ff ff ff ff  ff ff ff ff ff ff ff ff  |................|
000000b0  00 00 00 00 00 00 00 04  00 00 00 00 00 00 00 00  |................|
000000c0  00 00 00 00 00 00 00 01  00 00 01 8a 00 00 01 8a  |................|
000000d0  00 00 00 00 00 00 00 00  00 00 00 01 00 00 00 00  |................|
000000e0  2c 50 1a 45 00 00 00 00  ff ff ff ff ff ff ff ff  |,P.E............|
000000f0  00 00 00 01 00 00 0d db  00 00 00 00 00 00 00 00  |................|
00000100  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
*
000001f0  00 00 00 00                                       |....|
000001f4

在有些极端情况下,直接把数据放到磁盘上。不分区,不创建文件系统,直接使用,这种叫做裸设备。

数据直接以二进制方式访问,虽然不好访问,但是效率高。

多个分区的意义:

1优化I/O性能。

2实现磁盘空间配额限制。限制分区的空间大小,和每栋楼的住房空间大小限制是一样的。

3提高修复速度。多个分区有助于对分区的管理和修复。

4隔离系统和程序。如果是只有一个分区,那么文件损坏了就可能影响分区里面所有的数据。多个分区有助于对分区的管理和修复。

也可以把不同的数据放到不同的分区,避免互相干扰。

5安装多个OS。

6采用不同文件系统。比如有的是xfs,有的是ext4,根据生产需求进行变化。

在硬盘安装Linux系统,建议要有的分区/,/boot/,swap,/app存放用户数据的分区

[root@centos73 ~]# lsblk 
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda      8:0    0  200G  0 disk 
├─sda1   8:1    0    1G  0 part /boot
├─sda2   8:2    0   50G  0 part /
├─sda3   8:3    0   20G  0 part /app
├─sda4   8:4    0    1K  0 part 
└─sda5   8:5    0    2G  0 part [SWAP]
sr0     11:0    1  4.2G  0 rom  /mnt

二划分分区的方式——MBR

   1MBR简介

两种分区方式:MBR,GPT


MBR: Master Boot Record,主引导记录。

创建于1982年,使用32位表示扇区数,也就是能够表达2^32个扇区的总容量。

一个扇区的大小是512字节,0.5K。总容量就是2^32x0.5K=2T。所以分区不超过2T

如何分区:按柱面

0磁道0扇区存储了硬盘的分区信息,从哪到哪。所以每个硬盘的第1个扇区,也就是0扇区就叫MBR。0磁道0扇区占用了512bytes的空间。

其中MBR分成了3部分:

446bytes: boot loader计算机启动的内容——启动加载器。
64bytes:分区表,包括从哪到哪是一个分区,分区的类型,分区的使用情况。
16bytes: 标识一个分区
2bytes: 55AA。  这是十六进制数,一个十六进制数占4位二进制数。4个就占用了16位二进制数,也就是两个字节。

   2MBR分区结构

如果电脑上有两块硬盘,第1块硬盘是要引导计算机操作系统启动,另外一块硬盘纯粹就是用来存储数据的,那么在这块硬盘的0扇区的前446字节就是空的了。

 

显示前512字节

[root@centos65 ~]#  hexdump   /dev/sda   -C  -n  512
00000000  eb 48 90 10 8e d0 bc 00  b0 b8 00 00 8e d8 8e c0  |.H..............|
00000010  fb be 00 7c bf 00 06 b9  00 02 f3 a4 ea 21 06 00  |...|.........!..|
00000020  00 be be 07 38 04 75 0b  83 c6 10 81 fe fe 07 75  |....8.u........u|
00000030  f3 eb 16 b4 02 b0 01 bb  00 7c b2 80 8a 74 03 02  |.........|...t..|
00000040  80 00 00 80 e0 f0 04 00  00 08 fa 90 90 f6 c2 80  |................|
00000050  75 02 b2 80 ea 59 7c 00  00 31 c0 8e d8 8e d0 bc  |u....Y|..1......|
00000060  00 20 fb a0 40 7c 3c ff  74 02 88 c2 52 f6 c2 80  |. ..@|<.t...R...|
00000070  74 54 b4 41 bb aa 55 cd  13 5a 52 72 49 81 fb 55  |tT.A..U..ZRrI..U|
00000080  aa 75 43 a0 41 7c 84 c0  75 05 83 e1 01 74 37 66  |.uC.A|..u....t7f|
00000090  8b 4c 10 be 05 7c c6 44  ff 01 66 8b 1e 44 7c c7  |.L...|.D..f..D|.|
000000a0  04 10 00 c7 44 02 01 00  66 89 5c 08 c7 44 06 00  |....D...f.\..D..|
000000b0  70 66 31 c0 89 44 04 66  89 44 0c b4 42 cd 13 72  |pf1..D.f.D..B..r|
000000c0  05 bb 00 70 eb 7d b4 08  cd 13 73 0a f6 c2 80 0f  |...p.}....s.....|
000000d0  84 f0 00 e9 8d 00 be 05  7c c6 44 ff 00 66 31 c0  |........|.D..f1.|
000000e0  88 f0 40 66 89 44 04 31  d2 88 ca c1 e2 02 88 e8  |[email protected]........|
000000f0  88 f4 40 89 44 08 31 c0  88 d0 c0 e8 02 66 89 04  |[email protected]..|
00000100  66 a1 44 7c 66 31 d2 66  f7 34 88 54 0a 66 31 d2  |f.D|f1.f.4.T.f1.|
00000110  66 f7 74 04 88 54 0b 89  44 0c 3b 44 08 7d 3c 8a  |f.t..T..D.;D.}<.|
00000120  54 0d c0 e2 06 8a 4c 0a  fe c1 08 d1 8a 6c 0c 5a  |T.....L......l.Z|
00000130  8a 74 0b bb 00 70 8e c3  31 db b8 01 02 cd 13 72  |.t...p..1......r|
00000140  2a 8c c3 8e 06 48 7c 60  1e b9 00 01 8e db 31 f6  |*....H|`......1.|
00000150  31 ff fc f3 a5 1f 61 ff  26 42 7c be 7f 7d e8 40  |1.....a.&B|..}.@|
00000160  00 eb 0e be 84 7d e8 38  00 eb 06 be 8e 7d e8 30  |.....}.8.....}.0|
00000170  00 be 93 7d e8 2a 00 eb  fe 47 52 55 42 20 00 47  |...}.*...GRUB .G|
00000180  65 6f 6d 00 48 61 72 64  20 44 69 73 6b 00 52 65  |eom.Hard Disk.Re|
00000190  61 64 00 20 45 72 72 6f  72 00 bb 01 00 b4 0e cd  |ad. Error.......|
000001a0  10 ac 3c 00 75 f4 c3 00  00 00 00 00 00 00 00 00  |..<.u...........|
000001b0  00 00 00 00 00 00 00 00  5a c7 00 00 00 00 80 20  |........Z...... |
000001c0  21 00 83 aa 28 82 00 08  00 00 00 00 20 00 00 aa  |!...(....... ...|
000001d0  29 82 83 fe ff ff 00 08  20 00 00 80 1a 06 00 fe  |)....... .......|
000001e0  ff ff 83 fe ff ff 00 88  3a 06 00 00 71 02 00 fe  |........:...q...|
000001f0  ff ff 05 fe ff ff 00 88  ab 08 00 78 54 10 55 aa  |...........xT.U.|
00000200
[root@centos73 ~]# hexdump   /dev/sda   -C  -n  512
00000000  eb 63 90 10 8e d0 bc 00  b0 b8 00 00 8e d8 8e c0  |.c..............|
00000010  fb be 00 7c bf 00 06 b9  00 02 f3 a4 ea 21 06 00  |...|.........!..|
00000020  00 be be 07 38 04 75 0b  83 c6 10 81 fe fe 07 75  |....8.u........u|
00000030  f3 eb 16 b4 02 b0 01 bb  00 7c b2 80 8a 74 01 8b  |.........|...t..|
00000040  4c 02 cd 13 ea 00 7c 00  00 eb fe 00 00 00 00 00  |L.....|.........|
00000050  00 00 00 00 00 00 00 00  00 00 00 80 01 00 00 00  |................|
00000060  00 00 00 00 ff fa 90 90  f6 c2 80 74 05 f6 c2 70  |...........t...p|
00000070  74 02 b2 80 ea 79 7c 00  00 31 c0 8e d8 8e d0 bc  |t....y|..1......|
00000080  00 20 fb a0 64 7c 3c ff  74 02 88 c2 52 be 05 7c  |. ..d|<.t...R..||
00000090  b4 41 bb aa 55 cd 13 5a  52 72 3d 81 fb 55 aa 75  |.A..U..ZRr=..U.u|
000000a0  37 83 e1 01 74 32 31 c0  89 44 04 40 88 44 ff 89  |[email protected]..|
000000b0  44 02 c7 04 10 00 66 8b  1e 5c 7c 66 89 5c 08 66  |D.....f..\|f.\.f|
000000c0  8b 1e 60 7c 66 89 5c 0c  c7 44 06 00 70 b4 42 cd  |..`|f.\..D..p.B.|
000000d0  13 72 05 bb 00 70 eb 76  b4 08 cd 13 73 0d 5a 84  |.r...p.v....s.Z.|
000000e0  d2 0f 83 de 00 be 85 7d  e9 82 00 66 0f b6 c6 88  |.......}...f....|
000000f0  64 ff 40 66 89 44 04 0f  b6 d1 c1 e2 02 88 e8 88  |[email protected]..........|
00000100  f4 40 89 44 08 0f b6 c2  c0 e8 02 66 89 04 66 a1  |[email protected].|
00000110  60 7c 66 09 c0 75 4e 66  a1 5c 7c 66 31 d2 66 f7  |`|f..uNf.\|f1.f.|
00000120  34 88 d1 31 d2 66 f7 74  04 3b 44 08 7d 37 fe c1  |4..1.f.t.;D.}7..|
00000130  88 c5 30 c0 c1 e8 02 08  c1 88 d0 5a 88 c6 bb 00  |..0........Z....|
00000140  70 8e c3 31 db b8 01 02  cd 13 72 1e 8c c3 60 1e  |p..1......r...`.|
00000150  b9 00 01 8e db 31 f6 bf  00 80 8e c6 fc f3 a5 1f  |.....1..........|
00000160  61 ff 26 5a 7c be 80 7d  eb 03 be 8f 7d e8 34 00  |a.&Z|..}....}.4.|
00000170  be 94 7d e8 2e 00 cd 18  eb fe 47 52 55 42 20 00  |..}.......GRUB .|
00000180  47 65 6f 6d 00 48 61 72  64 20 44 69 73 6b 00 52  |Geom.Hard Disk.R|
00000190  65 61 64 00 20 45 72 72  6f 72 0d 0a 00 bb 01 00  |ead. Error......|
000001a0  b4 0e cd 10 ac 3c 00 75  f4 c3 00 00 00 00 00 00  |.....<.u........|
000001b0  00 00 00 00 00 00 00 00  10 4b 0d 00 00 00 80 20  |.........K..... |
000001c0  21 00 83 aa 28 82 00 08  00 00 00 00 20 00 00 aa  |!...(....... ...|
000001d0  29 82 83 fe ff ff 00 08  20 00 00 00 40 06 00 fe  |)....... ...@...|
000001e0  ff ff 83 fe ff ff 00 08  60 06 00 00 80 02 00 fe  |........`.......|
000001f0  ff ff 05 fe ff ff 00 08  e0 08 00 f8 1f 10 55 aa  |..............U.|
00000200
[root@centos73 ~]# lsblk 
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda      8:0    0  200G  0 disk 
├─sda1   8:1    0    1G  0 part /boot
├─sda2   8:2    0   50G  0 part /
├─sda3   8:3    0   20G  0 part /app
├─sda4   8:4    0    1K  0 part 
└─sda5   8:5    0    2G  0 part [SWAP]
sr0     11:0    1  4.2G  0 rom  /mnt

在6上加硬盘

 

创建了4块硬盘

 

使刚刚创建的硬盘生效

 “- – -” 这三个-之间是有空格的

还是未发现新硬盘,把命令中的host2,替换为host0,host1

[root@centos65 ~]# lsblk 
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sr0     11:0    1  3.7G  0 rom  /mnt
sda      8:0    0  200G  0 disk 
├─sda1   8:1    0    1G  0 part /boot
├─sda2   8:2    0 48.8G  0 part /
├─sda3   8:3    0 19.5G  0 part /app
├─sda4   8:4    0    1K  0 part 
└─sda5   8:5    0    2G  0 part [SWAP]
[root@centos65 ~]# echo  '- - -'   >   /sys/class/scsi_host/host2/scan   
[root@centos65 ~]# lsblk 
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sr0     11:0    1  3.7G  0 rom  /mnt
sda      8:0    0  200G  0 disk 
├─sda1   8:1    0    1G  0 part /boot
├─sda2   8:2    0 48.8G  0 part /
├─sda3   8:3    0 19.5G  0 part /app
├─sda4   8:4    0    1K  0 part 
└─sda5   8:5    0    2G  0 part [SWAP]
sdb      8:16   0  100G  0 disk 
sdc      8:32   0   80G  0 disk 
sdd      8:48   0   60G  0 disk 

在新硬盘的二进制表现形式是空的,因为还没有分区

[root@centos65 ~]# hexdump   /dev/sda   -C  -n  512
00000000  eb 48 90 10 8e d0 bc 00  b0 b8 00 00 8e d8 8e c0  |.H..............|
00000010  fb be 00 7c bf 00 06 b9  00 02 f3 a4 ea 21 06 00  |...|.........!..|
00000020  00 be be 07 38 04 75 0b  83 c6 10 81 fe fe 07 75  |....8.u........u|
00000030  f3 eb 16 b4 02 b0 01 bb  00 7c b2 80 8a 74 03 02  |.........|...t..|
00000040  80 00 00 80 e0 f0 04 00  00 08 fa 90 90 f6 c2 80  |................|
00000050  75 02 b2 80 ea 59 7c 00  00 31 c0 8e d8 8e d0 bc  |u....Y|..1......|
00000060  00 20 fb a0 40 7c 3c ff  74 02 88 c2 52 f6 c2 80  |. ..@|<.t...R...|
00000070  74 54 b4 41 bb aa 55 cd  13 5a 52 72 49 81 fb 55  |tT.A..U..ZRrI..U|
00000080  aa 75 43 a0 41 7c 84 c0  75 05 83 e1 01 74 37 66  |.uC.A|..u....t7f|
00000090  8b 4c 10 be 05 7c c6 44  ff 01 66 8b 1e 44 7c c7  |.L...|.D..f..D|.|
000000a0  04 10 00 c7 44 02 01 00  66 89 5c 08 c7 44 06 00  |....D...f.\..D..|
000000b0  70 66 31 c0 89 44 04 66  89 44 0c b4 42 cd 13 72  |pf1..D.f.D..B..r|
000000c0  05 bb 00 70 eb 7d b4 08  cd 13 73 0a f6 c2 80 0f  |...p.}....s.....|
000000d0  84 f0 00 e9 8d 00 be 05  7c c6 44 ff 00 66 31 c0  |........|.D..f1.|
000000e0  88 f0 40 66 89 44 04 31  d2 88 ca c1 e2 02 88 e8  |[email protected]........|
000000f0  88 f4 40 89 44 08 31 c0  88 d0 c0 e8 02 66 89 04  |[email protected]..|
00000100  66 a1 44 7c 66 31 d2 66  f7 34 88 54 0a 66 31 d2  |f.D|f1.f.4.T.f1.|
00000110  66 f7 74 04 88 54 0b 89  44 0c 3b 44 08 7d 3c 8a  |f.t..T..D.;D.}<.|
00000120  54 0d c0 e2 06 8a 4c 0a  fe c1 08 d1 8a 6c 0c 5a  |T.....L......l.Z|
00000130  8a 74 0b bb 00 70 8e c3  31 db b8 01 02 cd 13 72  |.t...p..1......r|
00000140  2a 8c c3 8e 06 48 7c 60  1e b9 00 01 8e db 31 f6  |*....H|`......1.|
00000150  31 ff fc f3 a5 1f 61 ff  26 42 7c be 7f 7d e8 40  |1.....a.&B|..}.@|
00000160  00 eb 0e be 84 7d e8 38  00 eb 06 be 8e 7d e8 30  |.....}.8.....}.0|
00000170  00 be 93 7d e8 2a 00 eb  fe 47 52 55 42 20 00 47  |...}.*...GRUB .G|
00000180  65 6f 6d 00 48 61 72 64  20 44 69 73 6b 00 52 65  |eom.Hard Disk.Re|
00000190  61 64 00 20 45 72 72 6f  72 00 bb 01 00 b4 0e cd  |ad. Error.......|
000001a0  10 ac 3c 00 75 f4 c3 00  00 00 00 00 00 00 00 00  |..<.u...........|
000001b0  00 00 00 00 00 00 00 00  5a c7 00 00 00 00 80 20  |........Z...... |
000001c0  21 00 83 aa 28 82 00 08  00 00 00 00 20 00 00 aa  |!...(....... ...|
000001d0  29 82 83 fe ff ff 00 08  20 00 00 80 1a 06 00 fe  |)....... .......|
000001e0  ff ff 83 fe ff ff 00 88  3a 06 00 00 71 02 00 fe  |........:...q...|
000001f0  ff ff 05 fe ff ff 00 88  ab 08 00 78 54 10 55 aa  |...........xT.U.|
00000200
[root@centos65 ~]# hexdump   /dev/sdb   -C  -n  512
00000000  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
*
00000200
[root@centos65 ~]# hexdump   /dev/sdc   -C  -n  512
00000000  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
*
00000200
[root@centos65 ~]# hexdump      -C  -n  512   /dev/sdd
00000000  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
*
00000200

取其中的两行进行分析

eb就是一个字节,也就是0字节,第1个字节。

因为是十六进制数。一个十六进制数是4位二进制数,两个十六进制数就是8位二进制数,也就是一个字节。

一行就是16个字节。fb是16字节,使用的是十六进制数就是10了。

00000000  eb 48 90 10 8e d0 bc 00  b0 b8 00 00 8e d8 8e c0  |.H..............|
00000010  fb be 00 7c bf 00 06 b9  00 02 f3 a4 ea 21 06 00  |...|.........!..|

27是十进制数,要转化成十六进制数

[root@centos65 ~]# bc
bc 1.06.95
Copyright 1991-1994, 1997, 1998, 2000, 2004, 2006 Free Software Foundation, Inc.
This is free software with ABSOLUTELY NO WARRANTY.
For details type `warranty'. 
446/16
27
obase=16
27
1B说明446字节的最后一行在1B
quit
[root@centos65 ~]# bc
bc 1.06.95
Copyright 1991-1994, 1997, 1998, 2000, 2004, 2006 Free Software Foundation, Inc.
This is free software with ABSOLUTELY NO WARRANTY.
For details type `warranty'. 
27*16
432说明第27行的第1个字节是第433字节
446-432
14说明了446个字节最后一个字节是在第27行的第14字节

所以446字节的范围

[root@centos65 ~]# hexdump   /dev/sda   -C  -n  512
00000000  eb 48 90 10 8e d0 bc 00  b0 b8 00 00 8e d8 8e c0  |.H..............|
00000010  fb be 00 7c bf 00 06 b9  00 02 f3 a4 ea 21 06 00  |...|.........!..|
00000020  00 be be 07 38 04 75 0b  83 c6 10 81 fe fe 07 75  |....8.u........u|
00000030  f3 eb 16 b4 02 b0 01 bb  00 7c b2 80 8a 74 03 02  |.........|...t..|
00000040  80 00 00 80 e0 f0 04 00  00 08 fa 90 90 f6 c2 80  |................|
00000050  75 02 b2 80 ea 59 7c 00  00 31 c0 8e d8 8e d0 bc  |u....Y|..1......|
00000060  00 20 fb a0 40 7c 3c ff  74 02 88 c2 52 f6 c2 80  |. ..@|<.t...R...|
00000070  74 54 b4 41 bb aa 55 cd  13 5a 52 72 49 81 fb 55  |tT.A..U..ZRrI..U|
00000080  aa 75 43 a0 41 7c 84 c0  75 05 83 e1 01 74 37 66  |.uC.A|..u....t7f|
00000090  8b 4c 10 be 05 7c c6 44  ff 01 66 8b 1e 44 7c c7  |.L...|.D..f..D|.|
000000a0  04 10 00 c7 44 02 01 00  66 89 5c 08 c7 44 06 00  |....D...f.\..D..|
000000b0  70 66 31 c0 89 44 04 66  89 44 0c b4 42 cd 13 72  |pf1..D.f.D..B..r|
000000c0  05 bb 00 70 eb 7d b4 08  cd 13 73 0a f6 c2 80 0f  |...p.}....s.....|
000000d0  84 f0 00 e9 8d 00 be 05  7c c6 44 ff 00 66 31 c0  |........|.D..f1.|
000000e0  88 f0 40 66 89 44 04 31  d2 88 ca c1 e2 02 88 e8  |[email protected]........|
000000f0  88 f4 40 89 44 08 31 c0  88 d0 c0 e8 02 66 89 04  |[email protected]..|
00000100  66 a1 44 7c 66 31 d2 66  f7 34 88 54 0a 66 31 d2  |f.D|f1.f.4.T.f1.|
00000110  66 f7 74 04 88 54 0b 89  44 0c 3b 44 08 7d 3c 8a  |f.t..T..D.;D.}<.|
00000120  54 0d c0 e2 06 8a 4c 0a  fe c1 08 d1 8a 6c 0c 5a  |T.....L......l.Z|
00000130  8a 74 0b bb 00 70 8e c3  31 db b8 01 02 cd 13 72  |.t...p..1......r|
00000140  2a 8c c3 8e 06 48 7c 60  1e b9 00 01 8e db 31 f6  |*....H|`......1.|
00000150  31 ff fc f3 a5 1f 61 ff  26 42 7c be 7f 7d e8 40  |1.....a.&B|..}.@|
00000160  00 eb 0e be 84 7d e8 38  00 eb 06 be 8e 7d e8 30  |.....}.8.....}.0|
00000170  00 be 93 7d e8 2a 00 eb  fe 47 52 55 42 20 00 47  |...}.*...GRUB .G|
00000180  65 6f 6d 00 48 61 72 64  20 44 69 73 6b 00 52 65  |eom.Hard Disk.Re|
00000190  61 64 00 20 45 72 72 6f  72 00 bb 01 00 b4 0e cd  |ad. Error.......|
000001a0  10 ac 3c 00 75 f4 c3 00  00 00 00 00 00 00 00 00  |..<.u...........|
000001b0  00 00 00 00 00 00 00 00  5a c7 00 00 00 00 80 20  |........Z...... |
000001c0  21 00 83 aa 28 82 00 08  00 00 00 00 20 00 00 aa  |!...(....... ...|
000001d0  29 82 83 fe ff ff 00 08  20 00 00 80 1a 06 00 fe  |)....... .......|
000001e0  ff ff 83 fe ff ff 00 88  3a 06 00 00 71 02 00 fe  |........:...q...|
000001f0  ff ff 05 fe ff ff 00 88  ab 08 00 78 54 10 55 aa  |...........xT.U.|
00000200

分区表一共是64个字节。因为每一个分区就要占16个字节,来表达这个分区是从哪开始哪结束。

所以只能分4个分区。

分区表的范围

                                                     80 20  |........Z...... |
000001c0  21 00 83 aa 28 82 00 08  00 00 00 00 20 00 00 aa  |!...(....... ...|
000001d0  29 82 83 fe ff ff 00 08  20 00 00 80 1a 06 00 fe  |)....... .......|
000001e0  ff ff 83 fe ff ff 00 88  3a 06 00 00 71 02 00 fe  |........:...q...|
000001f0  ff ff 05 fe ff ff 00 88  ab 08 00 78 54 10

分区表(DPT,Disk Partition Table)含4个分区项,偏移地址01BEH--01FDH,每个分区表项长16个字节,

共64字节为分区项1、分区项2、分区项3、分区项4。

分区表项里面的16个字节使用16格表示。分区表项的第1个字节如果是80就是活动分区,00就是非活动分区。

活动分区就是引导计算机启动的,而非活动分区就是存储数据的分区。

因为在同一时间引导计算机的操作系统只能是一个分区来引导,所以4个分区表里面只能有一个分区表的第1个字节是80活动分区。

因为80是十六进制数,正好表示的是一个字节。

分区表项里面的第2,3,4个格子也就是第2,3,4字节表示的是分区的起始点位置,CHS三维来描述起始点位置。

 第2字节是磁头号,从第几个磁头开始的。

 第3字节是扇区号,第3字节的低6位。

为什么是第6位?

柱面号是第3字节的高2位+第4字节,因为一个字节是8位,所以柱面数占10位,也就是可以表达2^10个柱面。

第5字节表示分区类型,0表示分区未使用。

第6,7,8字节表示结束位置的CHS标识。

C柱面,H磁头,S扇区。

3个字节也就是24位来表示起始点和结束点。最小的数就是24个0表示起始点,24个1表示的结束点。

最大的总容量是2^24个扇区,也就是8G,之前计算过了。

高于8G的容量就要使用到第9到第12字节。表示起始位置的LBA地址。使用4个字节也就是32位表示。

理论上就是2^32个扇区,2T容量。

2^10=1024=1K
2^20=1024k=1M
2^30=1024M=1G

2^32=4G=4G*0.5*1024=2T

以扇区为单位的,一个扇区是0.5K。

所以传统的MBR最大能够表示2T的容量。

扩展分区的表达不一样了,其里面还有逻辑分区。

如图所示,4个分区其中有一个扩展分区。扩展分区的分区表项是16个字节。

扩展分区的0号扇区记录了扩展分区的逻辑分区的信息。

整个硬盘的最前面是MBR,而扩展分区的最前面是EBR,也是512字节。

因为扩展分区没有引导记录,所以446个字节是没有使用的。

扩展分区的结构是参考了MBR的结构。

最后两个字节也是结束标志。

中间也是64个字节,分成了4个分区表项。

其中第1个16字节指向了第1个逻辑分区的位置,第2个16字节指向了下一个扩展分区的EBR。

每个逻辑分区的前面都有一个扇区叫做EBR。

所以第1,2个16字节就表示出来逻辑分区的位置,从哪开始到哪结束。

分区表的作用表示的从哪开始到哪结束是一个分区。

分区最大是2T大小是由其物理结构限制的。如果清除了分区表,也就是64个字节,那么就没有分区了,也就无法访问了。

数据还是在磁盘上存放着,就是不容易找到了。

就像到了人生地不熟的地方,没有地图等工具的导航。

对分区进行备份。

读数据生成到文件里面,读取的时候是1块块读的,1块是1个字节。

[root@centos65 ~]# dd  if=/dev/sda   of=/app/MBR    bs=1  count=512
512+0 records in
512+0 records out
512 bytes (512 B) copied, 0.000549382 s, 932 kB/s
[root@centos65 ~]# ll  /app/MBR 
-rw-r--r-- 1 root root 512 Feb 20 17:39 /app/MBR
[root@centos65 ~]# ll  /app/MBR   -h
-rw-r--r-- 1 root root 512 Feb 20 17:39 /app/MBR

和备份前的是一样的。

[root@centos65 ~]# hexdump    -C  /app/MBR 
00000000  eb 48 90 10 8e d0 bc 00  b0 b8 00 00 8e d8 8e c0  |.H..............|
00000010  fb be 00 7c bf 00 06 b9  00 02 f3 a4 ea 21 06 00  |...|.........!..|
00000020  00 be be 07 38 04 75 0b  83 c6 10 81 fe fe 07 75  |....8.u........u|
00000030  f3 eb 16 b4 02 b0 01 bb  00 7c b2 80 8a 74 03 02  |.........|...t..|
00000040  80 00 00 80 e0 f0 04 00  00 08 fa 90 90 f6 c2 80  |................|
00000050  75 02 b2 80 ea 59 7c 00  00 31 c0 8e d8 8e d0 bc  |u....Y|..1......|
00000060  00 20 fb a0 40 7c 3c ff  74 02 88 c2 52 f6 c2 80  |. ..@|<.t...R...|
00000070  74 54 b4 41 bb aa 55 cd  13 5a 52 72 49 81 fb 55  |tT.A..U..ZRrI..U|
00000080  aa 75 43 a0 41 7c 84 c0  75 05 83 e1 01 74 37 66  |.uC.A|..u....t7f|
00000090  8b 4c 10 be 05 7c c6 44  ff 01 66 8b 1e 44 7c c7  |.L...|.D..f..D|.|
000000a0  04 10 00 c7 44 02 01 00  66 89 5c 08 c7 44 06 00  |....D...f.\..D..|
000000b0  70 66 31 c0 89 44 04 66  89 44 0c b4 42 cd 13 72  |pf1..D.f.D..B..r|
000000c0  05 bb 00 70 eb 7d b4 08  cd 13 73 0a f6 c2 80 0f  |...p.}....s.....|
000000d0  84 f0 00 e9 8d 00 be 05  7c c6 44 ff 00 66 31 c0  |........|.D..f1.|
000000e0  88 f0 40 66 89 44 04 31  d2 88 ca c1 e2 02 88 e8  |[email protected]........|
000000f0  88 f4 40 89 44 08 31 c0  88 d0 c0 e8 02 66 89 04  |[email protected]..|
00000100  66 a1 44 7c 66 31 d2 66  f7 34 88 54 0a 66 31 d2  |f.D|f1.f.4.T.f1.|
00000110  66 f7 74 04 88 54 0b 89  44 0c 3b 44 08 7d 3c 8a  |f.t..T..D.;D.}<.|
00000120  54 0d c0 e2 06 8a 4c 0a  fe c1 08 d1 8a 6c 0c 5a  |T.....L......l.Z|
00000130  8a 74 0b bb 00 70 8e c3  31 db b8 01 02 cd 13 72  |.t...p..1......r|
00000140  2a 8c c3 8e 06 48 7c 60  1e b9 00 01 8e db 31 f6  |*....H|`......1.|
00000150  31 ff fc f3 a5 1f 61 ff  26 42 7c be 7f 7d e8 40  |1.....a.&B|..}.@|
00000160  00 eb 0e be 84 7d e8 38  00 eb 06 be 8e 7d e8 30  |.....}.8.....}.0|
00000170  00 be 93 7d e8 2a 00 eb  fe 47 52 55 42 20 00 47  |...}.*...GRUB .G|
00000180  65 6f 6d 00 48 61 72 64  20 44 69 73 6b 00 52 65  |eom.Hard Disk.Re|
00000190  61 64 00 20 45 72 72 6f  72 00 bb 01 00 b4 0e cd  |ad. Error.......|
000001a0  10 ac 3c 00 75 f4 c3 00  00 00 00 00 00 00 00 00  |..<.u...........|
000001b0  00 00 00 00 00 00 00 00  5a c7 00 00 00 00 80 20  |........Z...... |
000001c0  21 00 83 aa 28 82 00 08  00 00 00 00 20 00 00 aa  |!...(....... ...|
000001d0  29 82 83 fe ff ff 00 08  20 00 00 80 1a 06 00 fe  |)....... .......|
000001e0  ff ff 83 fe ff ff 00 88  3a 06 00 00 71 02 00 fe  |........:...q...|
000001f0  ff ff 05 fe ff ff 00 88  ab 08 00 78 54 10 55 aa  |...........xT.U.|
00000200

如果硬盘因为病毒或者什么原因被破坏了,利用上面的备份就可以还原。

现在模拟破坏,对中间的64字节进行破坏

[root@centos65 ~]# dd  if=/dev/zero     of=/dev/sda    bs=1    count=64     skip=446   seek=446
64+0 records in
64+0 records out
64 bytes (64 B) copied, 0.000960943 s, 66.6 kB/s
[root@centos65 ~]# hexdump    -C  /dev/sda     -n  512   
00000000  eb 48 90 10 8e d0 bc 00  b0 b8 00 00 8e d8 8e c0  |.H..............|
00000010  fb be 00 7c bf 00 06 b9  00 02 f3 a4 ea 21 06 00  |...|.........!..|
00000020  00 be be 07 38 04 75 0b  83 c6 10 81 fe fe 07 75  |....8.u........u|
00000030  f3 eb 16 b4 02 b0 01 bb  00 7c b2 80 8a 74 03 02  |.........|...t..|
00000040  80 00 00 80 e0 f0 04 00  00 08 fa 90 90 f6 c2 80  |................|
00000050  75 02 b2 80 ea 59 7c 00  00 31 c0 8e d8 8e d0 bc  |u....Y|..1......|
00000060  00 20 fb a0 40 7c 3c ff  74 02 88 c2 52 f6 c2 80  |. ..@|<.t...R...|
00000070  74 54 b4 41 bb aa 55 cd  13 5a 52 72 49 81 fb 55  |tT.A..U..ZRrI..U|
00000080  aa 75 43 a0 41 7c 84 c0  75 05 83 e1 01 74 37 66  |.uC.A|..u....t7f|
00000090  8b 4c 10 be 05 7c c6 44  ff 01 66 8b 1e 44 7c c7  |.L...|.D..f..D|.|
000000a0  04 10 00 c7 44 02 01 00  66 89 5c 08 c7 44 06 00  |....D...f.\..D..|
000000b0  70 66 31 c0 89 44 04 66  89 44 0c b4 42 cd 13 72  |pf1..D.f.D..B..r|
000000c0  05 bb 00 70 eb 7d b4 08  cd 13 73 0a f6 c2 80 0f  |...p.}....s.....|
000000d0  84 f0 00 e9 8d 00 be 05  7c c6 44 ff 00 66 31 c0  |........|.D..f1.|
000000e0  88 f0 40 66 89 44 04 31  d2 88 ca c1 e2 02 88 e8  |[email protected]........|
000000f0  88 f4 40 89 44 08 31 c0  88 d0 c0 e8 02 66 89 04  |[email protected]..|
00000100  66 a1 44 7c 66 31 d2 66  f7 34 88 54 0a 66 31 d2  |f.D|f1.f.4.T.f1.|
00000110  66 f7 74 04 88 54 0b 89  44 0c 3b 44 08 7d 3c 8a  |f.t..T..D.;D.}<.|
00000120  54 0d c0 e2 06 8a 4c 0a  fe c1 08 d1 8a 6c 0c 5a  |T.....L......l.Z|
00000130  8a 74 0b bb 00 70 8e c3  31 db b8 01 02 cd 13 72  |.t...p..1......r|
00000140  2a 8c c3 8e 06 48 7c 60  1e b9 00 01 8e db 31 f6  |*....H|`......1.|
00000150  31 ff fc f3 a5 1f 61 ff  26 42 7c be 7f 7d e8 40  |1.....a.&B|..}.@|
00000160  00 eb 0e be 84 7d e8 38  00 eb 06 be 8e 7d e8 30  |.....}.8.....}.0|
00000170  00 be 93 7d e8 2a 00 eb  fe 47 52 55 42 20 00 47  |...}.*...GRUB .G|
00000180  65 6f 6d 00 48 61 72 64  20 44 69 73 6b 00 52 65  |eom.Hard Disk.Re|
00000190  61 64 00 20 45 72 72 6f  72 00 bb 01 00 b4 0e cd  |ad. Error.......|
000001a0  10 ac 3c 00 75 f4 c3 00  00 00 00 00 00 00 00 00  |..<.u...........|
000001b0  00 00 00 00 00 00 00 00  5a c7 00 00 00 00 00 00  |........Z.......|
000001c0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
*
000001f0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 55 aa  |..............U.|
00000200
[root@centos65 ~]# hexdump    -C  /dev/sda     -n  512   -v
00000000  eb 48 90 10 8e d0 bc 00  b0 b8 00 00 8e d8 8e c0  |.H..............|
00000010  fb be 00 7c bf 00 06 b9  00 02 f3 a4 ea 21 06 00  |...|.........!..|
00000020  00 be be 07 38 04 75 0b  83 c6 10 81 fe fe 07 75  |....8.u........u|
00000030  f3 eb 16 b4 02 b0 01 bb  00 7c b2 80 8a 74 03 02  |.........|...t..|
00000040  80 00 00 80 e0 f0 04 00  00 08 fa 90 90 f6 c2 80  |................|
00000050  75 02 b2 80 ea 59 7c 00  00 31 c0 8e d8 8e d0 bc  |u....Y|..1......|
00000060  00 20 fb a0 40 7c 3c ff  74 02 88 c2 52 f6 c2 80  |. ..@|<.t...R...|
00000070  74 54 b4 41 bb aa 55 cd  13 5a 52 72 49 81 fb 55  |tT.A..U..ZRrI..U|
00000080  aa 75 43 a0 41 7c 84 c0  75 05 83 e1 01 74 37 66  |.uC.A|..u....t7f|
00000090  8b 4c 10 be 05 7c c6 44  ff 01 66 8b 1e 44 7c c7  |.L...|.D..f..D|.|
000000a0  04 10 00 c7 44 02 01 00  66 89 5c 08 c7 44 06 00  |....D...f.\..D..|
000000b0  70 66 31 c0 89 44 04 66  89 44 0c b4 42 cd 13 72  |pf1..D.f.D..B..r|
000000c0  05 bb 00 70 eb 7d b4 08  cd 13 73 0a f6 c2 80 0f  |...p.}....s.....|
000000d0  84 f0 00 e9 8d 00 be 05  7c c6 44 ff 00 66 31 c0  |........|.D..f1.|
000000e0  88 f0 40 66 89 44 04 31  d2 88 ca c1 e2 02 88 e8  |[email protected]........|
000000f0  88 f4 40 89 44 08 31 c0  88 d0 c0 e8 02 66 89 04  |[email protected]..|
00000100  66 a1 44 7c 66 31 d2 66  f7 34 88 54 0a 66 31 d2  |f.D|f1.f.4.T.f1.|
00000110  66 f7 74 04 88 54 0b 89  44 0c 3b 44 08 7d 3c 8a  |f.t..T..D.;D.}<.|
00000120  54 0d c0 e2 06 8a 4c 0a  fe c1 08 d1 8a 6c 0c 5a  |T.....L......l.Z|
00000130  8a 74 0b bb 00 70 8e c3  31 db b8 01 02 cd 13 72  |.t...p..1......r|
00000140  2a 8c c3 8e 06 48 7c 60  1e b9 00 01 8e db 31 f6  |*....H|`......1.|
00000150  31 ff fc f3 a5 1f 61 ff  26 42 7c be 7f 7d e8 40  |1.....a.&B|..}.@|
00000160  00 eb 0e be 84 7d e8 38  00 eb 06 be 8e 7d e8 30  |.....}.8.....}.0|
00000170  00 be 93 7d e8 2a 00 eb  fe 47 52 55 42 20 00 47  |...}.*...GRUB .G|
00000180  65 6f 6d 00 48 61 72 64  20 44 69 73 6b 00 52 65  |eom.Hard Disk.Re|
00000190  61 64 00 20 45 72 72 6f  72 00 bb 01 00 b4 0e cd  |ad. Error.......|
000001a0  10 ac 3c 00 75 f4 c3 00  00 00 00 00 00 00 00 00  |..<.u...........|
000001b0  00 00 00 00 00 00 00 00  5a c7 00 00 00 00 00 00  |........Z.......|
000001c0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
000001d0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
000001e0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
000001f0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 55 aa  |..............U.|
00000200

磁盘的分区表清理了,但是内存还存储了一份分区表

lsblk查看的是内存的分区表

机器重启之后就看不到了。

[root@centos65 ~]# lsblk 
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sr0     11:0    1  3.7G  0 rom  /mnt
sda      8:0    0  200G  0 disk 
├─sda1   8:1    0    1G  0 part /boot
├─sda2   8:2    0 48.8G  0 part /
├─sda3   8:3    0 19.5G  0 part /app
├─sda4   8:4    0    1K  0 part 
└─sda5   8:5    0    2G  0 part [SWAP]
sdb      8:16   0  100G  0 disk 
sdc      8:32   0   80G  0 disk 
sdd      8:48   0   60G  0 disk 

 查看磁盘上的分区表

[root@centos65 ~]# fdisk   -l  /dev/sda

Disk /dev/sda: 214.7 GB, 214748364800 bytes
255 heads, 63 sectors/track, 26108 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0000c75a

   Device Boot      Start         End      Blocks   Id  System

机器是不能重启,不能使用下面文件备份的,所以要先拷贝到其他的机器上。

[root@centos65 ~]# ls /app/MBR 
/app/MBR
[root@centos65 ~]# ll  /app/MBR 
-rw-r--r-- 1 root root 512 Feb 20 17:39 /app/MBR

重启机器

因为做了快照不好

在生产中拆下硬盘就可以了。

 

以光盘的方式启动

 进入到救援模式

 

 

语言和键盘保持默认就可以了

 

备份文件是在另外一个主机72上,可以拷贝到U盘上,也可以使用网络远程传输文件

 

不配置IP地址,选择自动获取IP地址

注意要确保开启了DHCP服务。

 

选择skip

 

现在看到的根不是硬盘的根,是光盘加载了一个小Linux系统。

磁盘分区和正常时的不一样了

 

已经自动获取IP地址了

 

查看通过DHCP获取的IP地址

 

使用scp把文件传输到本地

硬盘是看不到的

恢复sda,因为只损坏了sda。

注意我后来恢复快照,使用干净的系统并且对其进行删除分区表,所以只有一块硬盘被损坏。

 

恢复分区表

 

 

 因为损坏又恢复的操作是后来使用快照干净的系统,所以只存在一块硬盘。

[root@centos65 ~]# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda2        48G  1.4G   45G   4% /
tmpfs           491M     0  491M   0% /dev/shm
/dev/sda3        20G   44M   19G   1% /app
/dev/sda1       976M   30M  895M   4% /boot
/dev/sr0        3.7G  3.7G     0 100% /mnt
[root@centos65 ~]# lsblk 
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sr0     11:0    1  3.7G  0 rom  /mnt
sda      8:0    0  200G  0 disk 
├─sda1   8:1    0    1G  0 part /boot
├─sda2   8:2    0 48.8G  0 part /
├─sda3   8:3    0 19.5G  0 part /app
├─sda4   8:4    0    1K  0 part 
└─sda5   8:5    0    2G  0 part [SWAP]
[root@centos65 ~]# ifconfig 
eth0      Link encap:Ethernet  HWaddr 00:0C:29:5E:62:DA  
          inet addr:192.168.137.65  Bcast:192.168.137.255  Mask:255.255.255.0
          inet6 addr: fe80::20c:29ff:fe5e:62da/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:78 errors:0 dropped:0 overruns:0 frame:0
          TX packets:67 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:8639 (8.4 KiB)  TX bytes:9437 (9.2 KiB)

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:4 errors:0 dropped:0 overruns:0 frame:0
          TX packets:4 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:348 (348.0 b)  TX bytes:348 (348.0 b)

virbr0    Link encap:Ethernet  HWaddr 52:54:00:3B:45:F6  
          inet addr:192.168.122.1  Bcast:192.168.122.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)

总结实验备份mbr和恢复

备份的命令

dd    if=/dev/sda    of=/app/mbr    bs=1    count=64    skip=446   seek=446
scp   /app/mbr    remoteip:/root

最省事的方法就是对MBR进行完全备份

dd    if=/dev/sda    of=/app/mbr    bs=1    count=512
scp   /app/mbr     remoteip:/root

要进入到救援模式是有技巧的。当重启机器,系统会显示下面的界面,存在时间非常,要马上按住左上角的Esc键,并且只能按下一次。

 进入到救援模式选择自动获取IP地址,使用网络把文件拷贝回来。

建议最好是做快照,这样即使不能恢复要可以使用快照让系统变成正常的状态。

dd if=/dev/zero of=/dev/sda bs=1 count=512 
#这个是删除MBR

rescue mode scp remoteip:/root/mbr / dd if=mbr of=/dev/sda

 注意之前是下图的4块硬盘的,但是因为使用快照损坏又恢复就要重新把之前的硬盘创建起来。

[root@centos65 ~]# lsblk 
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sr0     11:0    1  3.7G  0 rom  /mnt
sda      8:0    0  200G  0 disk 
├─sda1   8:1    0    1G  0 part /boot
├─sda2   8:2    0 48.8G  0 part /
├─sda3   8:3    0 19.5G  0 part /app
├─sda4   8:4    0    1K  0 part 
└─sda5   8:5    0    2G  0 part [SWAP]
[root@centos65 ~]# echo  '- - -'   >   /sys/class/scsi_host/host2/scan  
[root@centos65 ~]# lsblk 
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sr0     11:0    1  3.7G  0 rom  /mnt
sda      8:0    0  200G  0 disk 
├─sda1   8:1    0    1G  0 part /boot
├─sda2   8:2    0 48.8G  0 part /
├─sda3   8:3    0 19.5G  0 part /app
├─sda4   8:4    0    1K  0 part 
└─sda5   8:5    0    2G  0 part [SWAP]
sdb      8:16   0  100G  0 disk 
sdc      8:32   0   80G  0 disk 
sdd      8:48   0   60G  0 disk 

sdb硬盘没有分区,只恢复中间的64个字节。

skip跳过前446个字节。读写都要跳过前446个字节,所以要跳两处,一个是读的,一个是目标的。

skip  446,seek  446

因为我是使用快照,没有原来对sda的操作,就要重新执行,为的是给sdb创建分区

[root@centos65 app]# dd  if=/app/MBR    of=/dev/sdb    bs=1  count=64    skip=446  seek=446
dd: opening `/app/MBR': No such file or directory
[root@centos65 app]# dd  if=/dev/sda   of=/app/MBR    bs=1  count=512  
512+0 records in
512+0 records out
512 bytes (512 B) copied, 0.000648818 s, 789 kB/s

[root@centos65 app]# dd if=/app/MBR of=/dev/sdb bs=1 count=64 skip=446 seek=446 64+0 records in 64+0 records out 64 bytes (64 B) copied, 0.548617 s, 0.1 kB/s [root@centos65 app]# lsblk
#显示内存的 NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sr0 11:0 1 3.7G 0 rom /mnt sda 8:0 0 200G 0 disk ├─sda1 8:1 0 1G 0 part /boot ├─sda2 8:2 0 48.8G 0 part / ├─sda3 8:3 0 19.5G 0 part /app ├─sda4 8:4 0 1K 0 part └─sda5 8:5 0 2G 0 part [SWAP] sdb 8:16 0 100G 0 disk sdc 8:32 0 80G 0 disk sdd 8:48 0 60G 0 disk [root@centos65 app]# fdisk -l /dev/sdb Disk /dev/sdb: 107.4 GB, 107374182400 bytes 255 heads, 63 sectors/track, 13054 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x00000000

fdisk -l /dev/sdb还是看不到分区表,因为少复制了2个字节,55aa

前446字节都跳过,后面的都要

如果创建的分区表是一样,那么直接复制就可以了

注意在工作中不能这么做。因为硬盘之间会存在差异,比如硬盘大小,分区策略。

而且只能备份主分区和扩展分区,逻辑分区是不能的。逻辑分区的信息是存放在扩展分区空间里面。

[root@centos65 app]# ls
lost+found  MBR
[root@centos65 app]# dd  if=/app/MBR    of=/dev/sdb    bs=1  count=66    skip=446  seek=446
66+0 records in
66+0 records out
66 bytes (66 B) copied, 0.0402675 s, 1.6 kB/s
[root@centos65 app]# fdisk   -l  /dev/sdb
Warning: invalid flag 0x0000 of partition table 5 will be corrected by w(rite)

Disk /dev/sdb: 107.4 GB, 107374182400 bytes
255 heads, 63 sectors/track, 13054 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1   *           1         131     1048576   83  Linux
Partition 1 does not end on cylinder boundary.
/dev/sdb2             131        6505    51200000   83  Linux
/dev/sdb3            6505        9055    20480000   83  Linux
/dev/sdb4            9055       26109   136985600    5  Extended
[root@centos65 app]# pwd
/app

所以把分区表复制到sdb时实际上只复制了sda一部分分区表的内容。没有复制逻辑分区

[root@centos65 app]# fdisk   -l  /dev/sda

Disk /dev/sda: 214.7 GB, 214748364800 bytes
255 heads, 63 sectors/track, 26108 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0000c75a

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1         131     1048576   83  Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2             131        6505    51200000   83  Linux
/dev/sda3            6505        9055    20480000   83  Linux
/dev/sda4            9055       26109   136985600    5  Extended
/dev/sda5            9055        9316     2097152   82  Linux swap / Solaris

如果硬盘大小不同,原来的硬盘已经对分区分完了,目标硬盘的空间更小,那么就容不下那么多的柱面了。

如果分区没有逻辑分区,目标硬盘空间比原来的硬盘大就可以使用这种方法进行分区,可以节省一部分命令,

但是工作中一般不用,在学习过程中可以使用这种方法加深对硬盘的理解。

上面是使用备份文件,也可以不使用备份文件,直接使用原来的分区表,对拷

这是原来的方法:

dd  if=/app/MBR    of=/dev/sdb    bs=1  count=66    skip=446  seek=446

直接对拷:

dd  if=/dev/sda    of=/dev/sdb    bs=1  count=66    skip=446  seek=446

二划分分区的方式——GPT分区策略

   1GPT简介

GPT:GUID(Globals Unique Identifiers) 全局唯一标识符  partition    table 


支持128个分区,使用64位,支持8Z(512Byte/block )64Z ( 4096Byte/block)



使用128位UUID(Universally Unique Identifier) 表示磁盘和分区。

GPT分区表自动备份在头和尾两份,并有CRC校验位。



UEFI (统一扩展固件接口)硬件支持GPT,使操作系统启动。

UUID差不多的,GUID是windows微软实现UUID的技术。相当于苹果和水果的关系。

   2UUID的介绍

UUID是由8位,3个4位,1个12位组成,总共是128位,使用的是十六进制数。

32位的十六进制数,一个十六进制数就是4个二进制数,所以32x4=128位,也就是128个二进制数。

UUID的作用就是唯一的标识一个资源,因为值太大了。因为发生冲突的情况几乎是不存在的。

生成UUID,使用命令uuidgen 

[root@centos65 ~]# uuidgen 
9e6201e7-8f0a-466c-9b3a-3458bf8a0790
[root@centos65 ~]# uuidgen 
358bcaa2-f22e-4c0b-94de-abaea22d182f
[root@centos65 ~]# uuidgen 
2528dddd-ee40-4cce-8ea9-62298be938bb
[root@centos65 ~]# uuidgen 
1f9cbf60-466b-4725-a4c0-61847f52003d
[root@centos65 ~]# uuidgen 
c8d64295-ee81-4000-b947-52b9ae97ee33
[root@centos65 ~]# uuidgen 
16ea1fe6-7427-4cbd-a109-9c7203725aa7
[root@centos65 ~]# uuidgen 
f72f12d8-e3e8-43f0-b047-e3005b79a2f0

UUID的格式

[root@centos65 ~]# cat  /etc/fstab 

#
# /etc/fstab
# Created by anaconda on Wed Jan 23 16:50:34 2019
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
UUID=10d2b40d-dcd8-4c16-aa81-511c520213f6 /                       ext4    defaults        1 1
UUID=e432b350-a9a6-429b-8f07-592058efc6e2 /app                    ext4    defaults        1 2
UUID=6bbd9da4-0c3d-4496-a4b1-44bf79912740 /boot                   ext4    defaults        1 2
UUID=b25a8a7e-40d8-485b-a5af-1b583698864d swap                    swap    defaults        0 0
tmpfs                   /dev/shm                tmpfs   defaults        0 0
devpts                  /dev/pts                devpts  gid=5,mode=620  0 0
sysfs                   /sys                    sysfs   defaults        0 0
proc                    /proc                   proc    defaults        0 0
/dev/cdrom   /mnt    iso9660  defaults  0 0

   3GPT分区实例

为了突破分区大小是2T的限制就不能再使用MBR分区。

GPT特点就是所有的分区都是主分区。一个分区是2T以上就是GPT分区。

查看电脑使用的是MBR分区还是GPT分区,右键单击选择磁盘管理,右键单击磁盘0,选择属性,选择卷。

如果一个分区低于2T,不论采用哪种分区策略都没有本质的区别了。

 

 

   4GPT的结构

最前面有一个0扇区,名称是保护MBR。

因为GPT分区和MBR分区是完全不同的,如果没有早期的MBR结构,一些较老的分区设备或者软件看到没有MBR,

没有55aa标记位就会认为是硬盘是没有分区的,就会把GPT分区已经分好的并且存放数据的内容破坏了。

也就是为了保护GPT分区而伪造了MBR分区。

 EFI部分又可以分为4个区域:EFI信息区(GPT头)、分区表、GPT分区、备份区域

接下来都是分区信息,分别是分区头部,分区表1-128,第几个分区的总空间。

还有备份区域。MBR要手工备份,也就是前面使用的命令dd......

如果在生产中机器不多可以互相备份。机器多就是使用批量化部署了,分区情况都一样,从其他机器上拷贝一份就可以了。

 注意在生产中最重要是备份,最起码不会出大事。

 

GPT分区结构

老王说中关村有数据恢复公司,就是专门恢复硬盘或者扇区的公司,按照容量多少来付费的。

实际上也不难,使用专门的数据恢复软件,这个领域我觉得可以尝试一下,技多不压身。

对于固态硬盘就没戏了,机械硬盘还有机会恢复。

分区表项是128,也就可以分128个分区。

 

GPT结构,GPT头和分区表项

闪闪

字段长度是8个字节,那就是64位,2^64个扇区。

GPT:GUID(Globals Unique Identifiers) partition
table 支持128个分区,使用64位,支持8Z(512Byte/block )64Z ( 4096Byte/block)

要注意计算机的数据存储单位,至少要知道Z

数据存储单位Bit(比特)是binary digit的英文缩写,量度信息的单位,也是表示信息量的最小单位,只有0、1两种二进制状态。
 
8个bit组成一个Byte(字节),能够容纳一个英文字符,不过一个汉字需要两个字节的存储空间!
1024个字节就是1KByte(千字节),简写为1KB。
计算机工作原理为高低电平(高为1,低为0)产生的2进制算法进行运算,所以我们购买的硬盘通常使用近似1000的1024进位(1024=2的10次方)。
 

换算单位

计算机常用的存储单位
8 bit = 1 Byte 一字节
1024 B = 1 KB (KiloByte) 千字节
1024 KB = 1 MB (MegaByte) 兆字节
1024 MB = 1 GB (GigaByte) 吉字节
1024 GB = 1 TB (TeraByte) 太字节
1024 TB = 1 PB (PetaByte) 拍字节
1024 PB = 1 EB (ExaByte) 艾字节
1024 EB = 1 ZB (ZetaByte) 皆字节
1024 ZB = 1 YB (YottaByte) 佑字节
1024 YB = 1BB(Brontobyte)珀字节
1024 BB = 1 NB (NonaByte) 诺字节
1024 NB = 1 DB (DoggaByte)刀字节
 

2进位的制度

因为计算机内部是2进位的制度,所以它只能识别出1和0而我们常人又都是习惯生活当中10进位的进位规律,所以计算机就被设定成了2的10次方的进位。
也就是说1K=2*2*2*2*2*2*2*2*2*2(10个2进行相乘,最后的结果是1024)。

MBR,GPT是和其他内容配合使用的

MBR配合老的BIOS,GPT配合UEFI。最新的电脑主板是UEFI,后者更方便,对硬件设置只要点击鼠标就可以了。

以GPT方式分区启动操作系统就要使用UEFI才可以。

wintel,也就是windows和intel一起赚老百姓的钱。

以后BIOS要淘汰了,生产中使用新技术往往会滞后一些。

在生产中很多机器是虚拟机,而且是最小化安装。除了要存储数据库的硬盘要很大,像其他的web服务并不需要多少空间。

涉及到大数据就要使用专门的存储设备了,而不是GPT了。

四管理分区


列出块设备
lsblk


创建分区使用:
fdisk 创建MBR分区
gdisk 创建GPT分区
parted 高级分区操作
partprobe-重新设置内存中的内核分区表版本

   1查看磁盘上的分区

 list partition table(s)

[root@centos65 ~]# fdisk   -l

Disk /dev/sda: 214.7 GB, 214748364800 bytes
255 heads, 63 sectors/track, 26108 cylinders   从这里就可以看出是CSH结构,也就是使用了MBR分区。
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0000c75a

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1         131     1048576   83  Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2             131        6505    51200000   83  Linux
/dev/sda3            6505        9055    20480000   83  Linux
/dev/sda4            9055       26109   136985600    5  Extended
/dev/sda5            9055        9316     2097152   82  Linux swap / Solaris
Warning: invalid flag 0x0000 of partition table 5 will be corrected by w(rite)

Disk /dev/sdb: 107.4 GB, 107374182400 bytes
255 heads, 63 sectors/track, 13054 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1   *           1         131     1048576   83  Linux
Partition 1 does not end on cylinder boundary.
/dev/sdb2             131        6505    51200000   83  Linux
/dev/sdb3            6505        9055    20480000   83  Linux
/dev/sdb4            9055       26109   136985600    5  Extended

Disk /dev/sdc: 85.9 GB, 85899345920 bytes
255 heads, 63 sectors/track, 10443 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000


Disk /dev/sdd: 64.4 GB, 64424509440 bytes
255 heads, 63 sectors/track, 7832 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

 这是克隆了sda的分区表,512字节无法克隆数据。

硬盘没有分区就没有分区类型

 

   2查看内存上的分区

法1

[root@centos65 ~]# ls  /dev/sd*
/dev/sda  /dev/sda1  /dev/sda2  /dev/sda3  /dev/sda4  /dev/sda5  /dev/sdb  /dev/sdc  /dev/sdd
[root@centos65 ~]# ll  /dev/sd*
brw-rw----. 1 root disk 8,  0 Jan 23 22:50 /dev/sda
brw-rw----. 1 root disk 8,  1 Jan 23 22:51 /dev/sda1
brw-rw----. 1 root disk 8,  2 Jan 23 22:51 /dev/sda2
brw-rw----. 1 root disk 8,  3 Jan 23 22:51 /dev/sda3
brw-rw----. 1 root disk 8,  4 Jan 23 22:50 /dev/sda4
brw-rw----. 1 root disk 8,  5 Jan 23 22:50 /dev/sda5
brw-rw----. 1 root disk 8, 16 Jan 23 23:27 /dev/sdb
brw-rw----. 1 root disk 8, 32 Jan 23 23:00 /dev/sdc
brw-rw----. 1 root disk 8, 48 Jan 23 23:00 /dev/sdd

看到数字出现了就说明是硬盘已经分区并且生效了,生效就是保存在内存里了。

分区表在两个地方有,磁盘和内存。下面的命令查看到的内容是来自内存。

只有内存里面保存了内存才可以对硬盘的数据处理,而如果只是放到硬盘上就无法处理了。

磁盘包括硬盘,是树林和树的关系。

法2:

[root@centos65 ~]# cat  /proc/partitions 
major minor  #blocks  name

   8        0  209715200 sda
   8        1    1048576 sda1
   8        2   51200000 sda2
   8        3   20480000 sda3
   8        4          1 sda4
   8        5    2097152 sda5
   8       16  104857600 sdb
   8       32   83886080 sdc
   8       48   62914560 sdd

法3:

[root@centos65 ~]# lsblk 
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sr0     11:0    1  3.7G  0 rom  /mnt
sda      8:0    0  200G  0 disk 
├─sda1   8:1    0    1G  0 part /boot
├─sda2   8:2    0 48.8G  0 part /
├─sda3   8:3    0 19.5G  0 part /app
├─sda4   8:4    0    1K  0 part 
└─sda5   8:5    0    2G  0 part [SWAP]
sdb      8:16   0  100G  0 disk 
sdc      8:32   0   80G  0 disk 
sdd      8:48   0   60G  0 disk 

注意

上面的3种方法显示的内容都是一样,因为都是来自内存的分区表。

对磁盘上的文件进行修改都是先读取到内存中,在内存里面修改

当使用vim编辑器时修改文件就要w才可以保存在磁盘上。?

dd命令是直接在磁盘上把数据修改了,所以内存分区表和磁盘分区表有可能就不同步了。

猜你喜欢

转载自www.cnblogs.com/wang618/p/11132813.html
今日推荐