硬盘信息和磁盘分区管理
硬盘
硬盘可分为机械硬盘和固态硬盘
机械硬盘(HDD ):
Hard Disk Drive,即是传统普通硬盘,主要由:盘片,磁头,盘片转轴及控制电机,磁头控制器,数据转换器,接口,缓存等几个部分组成。机械硬盘中所有的盘片都装在一个旋转轴上,每张盘片之间是平行的,在每个盘片的存储面上有一个磁头,磁头与盘片之间的距离比头发丝的直径还小,所有的磁头联在一个磁头控制器上,由磁头控制器负责各个磁头的运动。磁头可沿盘片的半径方向运动,加上盘片每分钟几千转的高速旋转,磁头就可以定位在盘片的指定位置上进行数据的读写操作。数据通过磁头由电磁流来改变极性方式被电磁流写到磁盘上,也可以通过相反方式读取。硬盘为精密设备,进入硬盘的空气必须过滤。
固态硬盘(SSD ):
Solid State Drive,用固态电子存储芯片阵列而制成的硬盘,由控制单元和存储单元(FLASH 芯片、DRAM芯片)组成。固态硬盘在接口的规范和定义、功能及使用方法上与普通硬盘的完全相同,在产品外形和尺寸上也与普通硬盘一致相较于HDD ,SSD在防震抗摔、传输速率、功耗、重量、噪音上有明显优势,SSD 传输速率性能是HDD 的2倍。
相较于SSD ,HDD 在价格、容量、使用寿命上占有绝对优势。
硬盘有价,数据无价,目前SSD 不能完全取代HHD。
硬盘接口类型
并行接口:
IDE :133MB/s
SCSI :640MB/s
串口接口:(B为字节,b为位,1字节=8位)
SATA :6Gbps
SAS :6Gbps(服务器上用)
USB :480MB/s
Linux中磁盘的命名方式
命名:/dev/DEV_FILE
Sd :表示SCSI硬盘
Sda:表示SCSI硬盘中第一块硬盘,b表示第二块,以此类推
磁盘分区方式
磁盘分区可以优化I/O 性能,实现磁盘空间配额限制,提高修复速度,隔离系统和程序,安装多个OS,采用不同文件系统。
分区表有两份,一个在内存中(是从磁盘上复制的),一个是在磁盘上。
磁盘有两种分区方式:MBR和GPT。
MRB分区
MBR分区格式最多有4个分区,可以是4个主分区,或者3个主分区和1个扩展分区,第一个逻辑分区必须从5开始。
例如:/dev/sda1:表示第一块磁盘的第一个主分区,/dev/sda5:表示第一块磁盘的第一个逻辑分区。
MBR分区特点:使用32位表示分区数,分区的大小不能超过2T。
MBR分区结构
![](http://images2017.cnblogs.com/blog/1250974/201801/1250974-20180126202133162-1677424066.png)
第一点,磁道0号扇区有512btyes,其中446btyes为boot loader(引导加载器);64btyes为存储分区表,此表只记录4个主分区或者3个主分区和1个扩展分区,这1个扩展分区可以包含N个逻辑分区,其中16bytes就标识一个分区;2bytes为55AA,这是个结束标志,是个表明前面信息的有效性标识。
第二点,MBR使用32位表示扇区数,分区不能超过2T当磁盘容量超过2T的时候,现在的MBR机制是没办法识别2T以后的磁盘空间的,此时就需要使用另一个分区机制GTP来进行分区。
MBR结构
![](http://images2017.cnblogs.com/blog/1250974/201801/1250974-20180126202146834-1330124506.png)
MBR的DPT结构
![](http://images2017.cnblogs.com/blog/1250974/201801/1250974-20180126202156506-106212638.png)
GPT分区
![](http://images2017.cnblogs.com/blog/1250974/201801/1250974-20180126202208444-70833671.png)
EFI部分又可以分为4个区域:EFI信息区(GPT头)、分区表、GPT分区、备份区域
GPT是使用64为表示扇区数,打破了MBR的仅嫩共有4个主分区缺点,能支持128分区且是由UUID来表示的。GPT分区表是自动备份在头尾两份,并有CRC校验未,且统一扩展固件接口UEFI支持GPT分区。
交换分区
交换分区是系统RAM的补充。
基本设置包括:
创建交换分区或者文件
使用mkswap 写入特殊签名
在/etc/fstab 文件中添加适当的条目
使用swapon -a 激活交换空间
文件也可以创建为swap分区:
先创建分区,然后创建文件系统,然后在文件系统中创建swap 分区。
SWAP的优先级:
可以指定swap分区0到32767的优先级,值越大优先级越高。
如果用户没有指定,那么核心会自动给swap指定一个优先级,这个优先级从-1开始,每加入一个新的没有用户指定优先级的swap ,会给这个优先级减一
先添加的swap的缺省优先级比较高,除非用户自己指定一个优先级,而用户指定的优先级( 是正数)永远高于核心缺省指定的优先级( 是负数)
优化性能:分布存放,高性能磁盘存放。
分区创建过程
1.创建分区
fdisk ;
gdisk
2.创建分区后查看分区情况
查看内存中的
lsblk ;
ll /dev/sd* ;
cat /proc/paritions
查看磁盘上的
fdisk -l ;
gdisk -l /dev/DEVICE
3.若内容中和磁盘上的不相同就需同步
centos5和7上使用partprobe
centos6上使用partx
分区管理命令
fdisk
fdisk - manipulate disk partition table
创建MBR分区。
注:
3主分区+1 扩展(N 个逻辑分区)或4个主分区。
扩展分区包含逻辑分区,扩展分区应该占用所有剩下的空间,然后逻辑分区从扩展分区中分。
1)
fdisk [options] <disk> change partition table
fdisk [options] -l <disk> list partition table(s)
fdisk -s <partition> give partition size(s) in blocks
options:
-b <size> 扇区尺寸 (512, 1024, 2048 or 4096)
-c[=<mode>] 兼容模式: 'dos' or 'nondos' (default)
-h 显示帮助
-u[=<unit>] 显示单元: 'cylinders' or 'sectors' (default)
-v 显示版本信息
-C <number> 指定 the number of cylinders
-H <number> 指定 the number of heads
-S <number> 指定the number of sectors per track
2)
fdisk也是一个交互命令
fdisk /dev/device_name
子命令:
a toggle a bootable flag
b edit bsd disklabel
c toggle the dos compatibility flag
d 删除分区
g 创建一个新的空白的GPT分区表
G create an IRIX (SGI) partition table
l 列出系统id
m 显示菜单
n 创建新分区
o 创建一个新的空白的DOS分区表
p 查看现有分区列表
q 不保存退出
s create a new empty Sun disklabel
t 更改分区的系统id
u 转换单位
v 校验分区
w 保存并退出
x extra functionality (experts only)
gdisk
gdisk - Interactive GUID partition table (GPT) manipulator
创建GPT分区。
gdisk [ -l ] device
gdisk是交互命令
子命令:
b 备份GPT数据到一个文件中
c 更改分区名
d 删除一个分区
i 在一个分区上显示详细信息
l 显示已知的分区类型
n 添加新的分区
o 传教一个新的空白的GUID分区表(GPT)
p 显示分区表
q 不保存退出
r recovery and transformation options (experts only)
s 分区分类
t 更改分区类型码
v 校验磁盘
w 把表写到磁盘上并退出
x extra functionality (experts only)
? 显示本目录
lsblk
lsblk - list block devices,列出块设备。
lsblk [options] [device...]
-a, --all 显示所有设备
-b, --bytes 显示bytes类型的大小尺寸
-d, --nodeps 不显示 slaves or holders
-D, --discard 显示discard capabilities
-e, --exclude <list> 通过指定号排除设备 (default: RAM disks)
-I, --include <list> 仅显示指定号的设备
-f, --fs 显示有关文件系统的信息
-h, --help 帮助信息
-i, --ascii 仅使用ascii 字符
-m, --perms 显示有关权限的信息
-l, --list 使用列表格式显示输出
-n, --noheadings 不显示头部信息
-o, --output <list> 显示输出列
-p, --paths 显示设备绝对路径
-P, --pairs 使用key="value"的输出格式
-r, --raw 使用raw输出格式
-s, --inverse 反响依赖
-t, --topology 显示有关拓扑结构的信息
-S, --scsi 显示有关 SCSI 设备的信息
可用的列 (for --output):
NAME device name
KNAME internal kernel device name
MAJ:MIN major:minor device number
FSTYPE filesystem type
MOUNTPOINT where the device is mounted
LABEL filesystem LABEL
UUID filesystem UUID
RA read-ahead of the device
RO read-only device
RM removable device
MODEL device identifier
SIZE size of the device
STATE state of the device
OWNER user name
GROUP group name
MODE device node permissions
ALIGNMENT alignment offset
MIN-IO minimum I/O size
OPT-IO optimal I/O size
PHY-SEC physical sector size
LOG-SEC logical sector size
ROTA rotational device
SCHED I/O scheduler name
RQ-SIZE request queue size
TYPE device type
DISC-ALN discard alignment offset
DISC-GRAN discard granularity
DISC-MAX discard max bytes
DISC-ZERO discard zeroes data
parted
parted - a partition manipulation program
高级分区操作,是个交互命令,操作是实时生效的,所以要谨慎使用。
parted [options] [device [command [options...]...]]
OPTIONs:
-h, --help 显示帮助信息
-l, --list 在所有块设备上列出分区的布局
-m, --machine 显示存放机器可解析的输出
-s, --script 不提示用户干预
-v, --version 显示版本信息
-a, --align=[none|cyl|min|opt] 新分区alignment
COMMANDs,也是子命令:
align-check TYPE N check partition N for TYPE(min|opt) alignment
help [COMMAND] print general help, or help on COMMAND
mklabel,mktable LABEL-TYPE create a new disklabel (partition table)
mkpart PART-TYPE [FS-TYPE] START END make a partition
name NUMBER NAME name partition NUMBER as NAME
print [devices|free|list,all|NUMBER] 显示
quit exit program
rescue START END rescue a lost partition near START and END
rm NUMBER delete partition NUMBER
select DEVICE choose the device to edit
disk_set FLAG STATE change the FLAG on selected device
disk_toggle [FLAG] toggle the state of FLAG on selected device
set NUMBER FLAG STATE change the FLAG on partition NUMBER
toggle [NUMBER [FLAG]] toggle the state of FLAG on partition NUMBER
unit UNIT set the default unit to UNIT
version 显示版本
例如
parted /dev/sdb
会进入命令模式,且这个操作是实时的,小心!
partx
partx - tell the Linux kernel about the presence and numbering of on-disk partitions
一般是centos6用于通知内核重新读取硬盘分区表,也就是同步分区信息。
centos5和7上同样可用
partx [-a|-d|-s|-u] [--nr <n:m> | <partition>] <disk>
-a, --add 添加指定的分区
-d, --delete 删除指定分区
-s, --show 列出分区
-u, --update 更新指定分区
-b, --bytes 使用bytes的格式来显示大小尺寸
-g, --noheadings 不显示表头信息
-n, --nr <n:m> 指定分区范围(e.g. --nr 2:4)
-o, --output <type> 定义使用那列来输出
-P, --pairs 使用key="value"的格式输出
-r, --raw 使用原始格式输出
-t, --type <type> 指定分区类型 (dos, bsd, solaris, etc.)
-v, --verbose 显示详细信息
-l,--list 列出分区
可用的列(for --show, --raw or --pairs):
NR partition number
START start of the partition in sectors
END end of the partition in sectors
SECTORS number of sectors
SIZE human readable size
NAME partition name
UUID partition UUID
TYPE partition type hex or uuid
FLAGS partition flags
SCHEME partition table type (dos, gpt, ...)
例子:
实际上专用于centos6
新增分区,同步:
partx -a /dev/DEVICE
删除分区,同步:
partx -d --nr M-N /dev/DEVICE
partprobe
partprobe - inform the OS of partition table changes
在centos5和7上重新设置内存中的内核分区表,也就是同步分区信息。
centos6上不好用。
partprobe [-d] [-s] [devices...]
-d 不更新内核
-s 显示设备和分区的概述
例子:
在centos5和7上直接使用,就可直接同步分区
partprobe [/dev/DEVICE]
mkswap
mkswap - set up a Linux swap area,建立Linux swap分区
mkswap [options] device [size]
-c, --check 在创建swap分区前,检查坏的块设备
-f, --force 允许swap分区大小比设备本身大小大
-p, --pagesize SIZE 采用bytes指定页的尺寸
-L, --label LABEL 指定标签
-v, --swapversion NUM 指定swap-space版本号
-U, --uuid UUID 指定使用的uuid
分区与文件系统
当你创建了分区后,分区是有了,你可以通过lsblk查看分区。
但是现在的分区仍然不能用,要想使用必须得给对应的分区创建文件系统。
文件系统是操作系统用于明确存储设备或分区上的文件的方法和数据结构,即在存储设备上组织文件的方法。
操作系统中负责管理和存储文件信息的软件结构称为文件管理系统,简称文件系统
从系统角度来看,文件系统是对文件存储设备的空间进行组织和分配,负责文件存储并对存入的文件进行保护和检索的系统。
具体地说,它负责为用户建立文件,存入、读出、修改、转储文件,控制文件的存取,安全控制,日志,压缩,加密等 。
所以说要想使用分区得给分区建立文件系统,文件系统的创建另外在说
注:图片显示可能存在文件,可以直接复制图片地址,在新的页面打开显示。