Linux磁盘管理

现在Linux已经成为系统服务发展趋势,那么,我们对底层硬件存储了解多少呢?接下来我们来聊聊关于磁盘的那些事

1:从下图我们可以看到,硬盘结构是由柱面,扇区,磁头组成,面积最广的是扇区,每个扇区容量是512字节,第一个扇区最为重要,保存着主引导记录(MBR)和分区表信息;主引导记录占用446字节,分区表占用64字节,结束符2字节 共计512字节;而分区表中每记录一个信息占用16字节,,因此只能分配4个分区,当然呢,为了解决分区不够的问题,我们衍生出去扩展分区,基于扩展分区上面创建逻辑分区,逻辑分区最多可以创建128,这个分区数量确实大,但是还用不到这么多,

IDE硬盘接口在linux中设备名为/dev/hda,现在基本上被淘汰了,主要用的还是SAS,SCSI,SATA等硬盘接口在Linux中设备名为sda,高效云硬盘会被识别为/dev/vda等

我们硬盘存储最小单位是sector(扇区),每个扇区存储512字节,硬盘读取的时候不会逐一读取,这样的话效率太低,操作系统会一次性连续性读取多个扇区,这个一次性读取多个扇区被称为block块

由多个stctor组成的Block是文件存储的最小单位,Block的大小常见的有1kb~4kb,Block在linux中长设置为4kb,

硬盘分区被分为(superblock),inode,block

superblock:文件系统的整体信息,包含inode值和block块的使用大小,剩余大小,相关的格式及信息(只记录inode和block的对应关系)

Inode:记录文件的属性和信息,比如文件的创建者,创建时间,文件大小等等,这些存储文件元数据区域成为Inode,名为:索引节点;同时将文件的存储位置生成一个Inode值(这个inode值记录文件存储的位置信息)

Block块是存储文件的内容,因为每个Inode与block都有编号,而每个文件都会占用一个inode,inode内侧有文件存储数据的block号码,如果能够找到文件的Inode值,就能找到存储文件数据的block号码,从而读取文件内容

 [parted分区]

我们知道,一般我们分区都会通过fdisk进行分区,要知道fdisk命令是针对MBR分区进行操作的,MBR分区因为自身设计原因,不能处理大于2TB的硬盘,并且只能有四个分区,针对大于2TB的硬盘,需要采用GPT分区,也就是使用parted命令操作

简介:parted是一个硬盘分区或调整分区大小的工具,可以基于parted工具进行创建,删除,调整,移动以及复制,通常在数据拷贝到新硬盘的时候也常常用到

(parted) mklabel  gpt    #新建磁盘类型,如gpt,msdos等

(parted) mkpart primary 0% 20%    #通过mkpart 指定百分比创建分区,分区起始大小0%~20%

parted) mkpart       #通过交互模式创建分区,
分区名称? []? 2
文件系统类型? [ext2]? xfs
起始点? 30%
结束点? 50%


(parted) print           #查看分区详情·
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdc: 21.5GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:

Number Start End Size File system Name 标志
1 1049kB 4295MB 4294MB primary
2 6442MB 10.7GB 4295MB 2

(parted) rm 2    #删除分区,rm指定Number分区号即可删除对应的分区

 mkfs.xfs /dev/sdb2             #格式化xfs格式

echo "/dev/sdb2 /www/ xfs defaults 0 0 " >> /etc/fstab    #设置自动挂载

posted @ 2018-07-25 12:13  Mr&Yu  阅读(212)  评论(0编辑  收藏  举报