23 24 25 linux系统磁盘管理、磁盘分区知识

磁盘:disk
磁头:head
扇区:sector
磁道:track
柱面:cylinder

单元块(一个柱面大小):units
数据块:block
索引节点:inode

  

  

  

 

  

 

  

磁盘容量的计算方法:
方法一:
一个磁道的大小=512字节*扇区数/每磁道
一个盘面的大小=512字节*扇区数*磁道数
磁盘大小=512字节*扇区数*磁道数*磁头数

方法二:
磁盘大小=柱面数*柱面大小
磁盘大小=磁道数*(磁道大小*磁头数)
磁盘大小=磁道数*磁头数*扇区数*扇区大小(512字节)
7832*255*63*512
[root@centos ~]# fdisk -l
Disk /dev/sda: 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: 0x000c5352

Device Boot Start End Blocks Id System
/dev/sda1 * 1 6528 52428800 83 Linux
/dev/sda2 6528 7311 6289408 83 Linux
/dev/sda3 7311 7833 4194304 82 Linux swap / Solaris

//计算表达式:
[root@centos ~]# echo 7832*255*63*512|bc
64420392960
[root@centos ~]# echo $((7832*255*63*512))
64420392960

磁盘读写原理小结:
(1)磁盘是按照柱面为单位读写数据的,即先读取同一个盘面的某个磁道,读完整个磁道之后,如果数据没有读完,磁头也不会切换到同一个盘面的其他磁道,而是选择切换磁头,读取下一个盘面的相同半径的磁道,直到所有盘面的相同半径的磁道读取完成后,若数据还没有读写完成,才会切换其他不同半径的磁道(柱面),这个切换磁道的过程称为寻道(效率最差,机械)。
(2)不同磁头间的切换是电子切换(所有磁头同时读一个柱面的相同半径的磁道),而不同磁道间的切换需要磁头做径向运动,这个径向运动需要步进电机调节,这个动作是机械切换。

磁盘的碎片整理有利于读数据更快。

  

 

  

  

磁盘分区:

硬盘的0磁头0磁道1扇区,是硬盘上的一个非常重要的位置。在此扇区中存放有硬盘的:
a.主引导记录MBR(Master Boot Record);446字节
b.硬盘的分区表DPT(Disk Partition Table);64字节
[root@centos ~]# man dd
[root@centos ~]# dd if=/dev/sda of=mbr.bin bs=512 count=1
1+0 records in
1+0 records out
512 bytes (512 B) copied, 0.000619069 s, 827 kB/s
[root@centos ~]# file mbr.bin
mbr.bin: x86 boot sector; GRand Unified Bootloader, stage1 version 0x3, boot drive 0x80, 1st sector stage2 0x587fce0, GRUB version 0.94; partition 1: ID=0x83, active, starthead 32, startsector 2048, 104857600 sectors; partition 2: ID=0x83, starthead 254, startsector 104859648, 12578816 sectors; partition 3: ID=0x82, starthead 254, startsector 117438464, 8388608 sectors, code offset 0x48
[root@centos ~]# od -ax mbr.bin //od命令
0000000 k H dle dle so P < nul 0 8 nul nul so X so @
48eb 1090 d08e 00bc b8b0 0000 d88e c08e
0000020 { > nul | ? nul ack 9 nul stx s $ j ! ack nul
befb 7c00 00bf b906 0200 a4f3 21ea 0006
0000040 nul > > bel 8 eot u vt etx F dle soh ~ ~ bel u
be00 07be 0438 0b75 c683 8110 fefe 7507

磁盘分区的重点:
(1)磁盘分区的实质就是针对0磁道1扇区的前446字节后面接下来的64字节的分区表进行设置,分区工具有fdisk(适小于2T的磁盘分区),parted(适合大于2T的磁盘分区,可以对小于2T的磁盘分区)
(2)一块磁盘的分区表仅有64字节,仅支持4个分区表信息(主分区+扩展分区)
(3)磁盘分区的最小单位为柱面(cylinder)
(4)扩展分区不能直接使用,还需要在扩展分区基础上创建逻辑分区才行
(5)扩展分区有自己的分区表,因此扩展分区下面的逻辑分区可以有多个
磁盘在使用前一般要进行分区,当然如果不分区直接格式化使用也行。
磁盘分区有主分区、扩展分区和逻辑分区之分。
一块硬盘最多可以有4个分区表信息(磁盘本身限制),其中一个主分区的位置可以用一个扩展分区替换,且一块硬盘只能有一个扩展分区(操作系统限制),在这个扩展分区内可以划分多个逻辑分区。

说明:
(1)扩展分区不是一个真正的可用分区,建立完扩展分区后还需要在扩展分区上建立逻辑分区才可以使用;
(2)对于主分区和逻辑分区在一般的数据存储使用上是没有区别的(对于大多数的数据存储),在安装操作系统时第一个分区要选主分区;
(3)分区数字编号1~4留给主分区或者扩展分区使用,逻辑分区编号只能从5开始,即使1~4分区号即使有剩余也不会分配给逻辑分区;
(4)对硬盘分区实际就是在修改硬盘的分区表,也就是说我们通过fdisk分区实际上就是在改64字节的分区表,分区和对应的数据没有关系。因此,理论上调整分区大小不会删除分区内的数据。


eg:假如有一块SAS硬盘需要分成6个可以使用的磁盘分区,那么每个磁盘分区在linux系统下的数字编号是多少:
解答:
如果是1P+1E则分区编号为:/dev/sda1,/dev/sda5,/dev/sda6,/dev/sda7,/dev/sda8,/dev/sda9;
如果是2P+1E则分区编号为:/dev/sda1,/dev/sda2,/dev/sda5,/dev/sda6,/dev/sda7,/dev/sda8;
如果是3P+1E则分区编号为:/dev/sda1,/dev/sda2,/dev/sda3,/dev/sda5,/dev/sda6,/dev/sda7;

http://blog.51cto.com/oldboy/634725
常用分区方案:
方案1:
/boot 100M
swap 1.5倍
/ 剩余硬盘大小
相当于windows不能只分C盘,还需要分D,E,因为重装系统,数据会丢。

方案2:
DB及存储:有大量重要的数据。
/boot 100M
swap 1.5倍
/data/ 剩余硬盘大小,放数据的

方案3:
门户大网站:
/boot 100M 主分区
swap 1.5倍 主分区
/ 50-200G 主分区
不再进行分区,保留,将来根据需要来分用 //灵活,扩展分区

  

posted @ 2017-12-04 17:36  bkycrmn  阅读(290)  评论(0)    收藏  举报