一、理论知识:
1、硬盘的结构:通俗的想象硬盘,是由多个同轴的双面磁盘组成,在磁面上有磁头,信息的读取就是由磁头完成,每个磁盘上面又有多个同心圆的磁道,这就构成了硬盘。在此基础上我们人为的进行了一些划分,如扇区、柱面。扇区就是在同一磁面上的扇形,划分扇区是因为以磁道为最小存储单元不方便磁头的寻址;柱面是同轴的磁面在同一半径上的磁道,划分柱面也是为了磁头寻址方便。硬件在linux中都有对应的文件映射,映射文件都在/dev/*中,其中硬盘的接口有IDE,SATA等形式,其中IDE形式的在linux中文件形式是/dev/hd*,其他的都统一为/dev/sd*。
2、分区的特性:分区的划分是以柱面为单位,现在的分区体系有MBR和GPT两种,主流的是MBR,但是当硬盘大小超过2T时MBR就不在适用。MBR的分区体系是在第一个磁面的第一个扇区存储bootloader、分区信息,此扇区的总大小是512字节,bootloader占了446个字节,其余的又有两个字节用于存储标志位5A,剩下的64个字节每16个字节存储一个分区的信息,因此一共储存4个分区的信息。但我们想多划分分区时就需要拿出一个分区用于再储存分区信息,这个分区就是扩展分区,因此MBR分区体系只能有4个主分区,或者是1个扩展分区划分成多个逻辑分区和多个主分区。每个分区又被划分成多个小的块,多个块又被统一在一个块组中,为为了存储块组信息,又需要有某些块存这些信息,这些块就叫做超级块。每个块只能属于一个文件,一个文件可能被多个块储存,为了方便找到某个文件,又给每个块设置编号,编号存在inode中。上面的bootloader在引导内核程序加载后,内核程序会将‘/‘与硬盘上相应的区域关联,与系统启动相关的配置均在此,因此/lib,/lib64,/etc不能单独分区。在系统启动完成后,其他文件都是以‘/‘为入口。
3、内存与swap:内存是cpu与硬盘速度不一致而产生的中间储存设备,用于提高cpu的效率。swap是linux中的虚拟内存,是将一块硬盘格式化和内存一样的文件格式,用于当内存不够用时充但内存使用。实际当中不用到swap是最好的,实际当中分配swap大小的策略是 <2G分配2*内存,2G-4G分配4G,>8G分配4G,对于数据库服务器最好不用swap。
二、常用建立命令:
1、建立分区:分区命令有fdisk、sfdisk、parted,其中常用的是fdisk。fdisk是一个交互式的命令,当我们输入fdisk /dev/sdb时会让我们选择是主分区还是扩展分区,分区标示号,起始柱面和结束柱面。其中常用选项有:
fdisk /dev/sdb
p列出分区 l显示分区id n新建分区 t调整分区id d删除分区 q不保存退出 w保存退出
在CentOS6上w保存退出之后分区并没有被内核识别还需要用kpartx和partx让内核识别刚才的分区,具体的使用是kpartx -l /dev/sdb列出可以被内核识别的分区,kpartx -af /dev/sdb partx -a /dev/sdb让内核识别上诉的分区。但是在centos7中在执行完w后,内核直接就是别了上诉的分区。
2、构建文件系统:上诉分区完后并不能被我们所用,还需要格式化建立文件系统。命令有mkfs、mke2fs,其中mke2fs是常用的。其中常用的选项有:
mke2fs /dev/sdb
-t制定文件系统类型 -L指定卷标 -b制定block大小 -m 预留给管理员空间百分比 -i多少个字节分配一个inode -I每个inode的大小 -N分配的inode数
3、构建swap:mkswap /dev/sdb,在执行上诉命令后并不会将swap加到内存的大小上,还需要手动的开启,用swapon /dev/sdb,如果想要关闭可用swapoff /dev/sdb。
三、常用查看命令:
1、对应文件:
a、硬盘:电脑上的硬盘设备在linux上以文件的形式表现在/dev/[hs]d*上
b、分区:分区的文件是/proc/partitions
c、内存:/proc/meminfo ,和/proc/sys/vm/swappiness(什么时候使用swap,默认为60)
2、查看命令:
a、硬盘:fdisk -l可以查看硬盘的分区情况,hdparm也可以查看硬盘的信息[-i通过操作系统查看 -I直接绕过操作系统查看硬盘 -g硬盘布局信息]
b、分区:blkid 查看分区的uuid和type,dumpe2fs用来查看分区的块组信息[-h只查看超级块],tune2fs[-l查看超级块信息,-L改变卷标,-m调整预留给管理员的百分比,-o设定默认挂在选项,-O调整分区特性],e2label可以查看和更改卷标。
c、内存:free查看内存使用[-mI以MB显示大小-g以GB显示大小-h以方便读形式显示]