zoukankan      html  css  js  c++  java
  • 磁盘管理之分区的介绍

     

    一划分分区的意义

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

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

    划分分区之后就可以创建文件系统,如果没有这样的分区而直接使用分区,最终表现的是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  |..@f.D.1........|
    000000f0  88 f4 40 89 44 08 31 c0  88 d0 c0 e8 02 66 89 04  |..@.D.1......f..|
    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  |..@f.D.1........|
    000000f0  88 f4 40 89 44 08 31 c0  88 d0 c0 e8 02 66 89 04  |..@.D.1......f..|
    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  |7...t21..D.@.D..|
    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  |d.@f.D..........|
    00000100  f4 40 89 44 08 0f b6 c2  c0 e8 02 66 89 04 66 a1  |.@.D.......f..f.|
    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  |..@f.D.1........|
    000000f0  88 f4 40 89 44 08 31 c0  88 d0 c0 e8 02 66 89 04  |..@.D.1......f..|
    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  |..@f.D.1........|
    000000f0  88 f4 40 89 44 08 31 c0  88 d0 c0 e8 02 66 89 04  |..@.D.1......f..|
    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  |..@f.D.1........|
    000000f0  88 f4 40 89 44 08 31 c0  88 d0 c0 e8 02 66 89 04  |..@.D.1......f..|
    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  |..@f.D.1........|
    000000f0  88 f4 40 89 44 08 31 c0  88 d0 c0 e8 02 66 89 04  |..@.D.1......f..|
    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  |..@f.D.1........|
    000000f0  88 f4 40 89 44 08 31 c0  88 d0 c0 e8 02 66 89 04  |..@.D.1......f..|
    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命令是直接在磁盘上把数据修改了,所以内存分区表和磁盘分区表有可能就不同步了。


    作者:wang618
    出处:https://www.cnblogs.com/wang618/
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接,否则保留追究法律责任的权利。

  • 相关阅读:
    MTLLoader 报 Handlers.get() has been removed. Use LoadingManager.getHandler() instead 错误处理
    uniCloud云开发已实现五端上线【言语录书】
    v-model 双向绑定 vue3.x
    javascript 集合操作
    链表操作
    vue3 父子组件双向数据绑定
    二叉树排序
    自制Chrome扩展插件:用于重定向js
    解析Markdown文件生成React组件文档
    微前端框架single-spa初探
  • 原文地址:https://www.cnblogs.com/wang618/p/11132813.html
Copyright © 2011-2022 走看看