磁盘管理和文件系统
磁盘结构
-
磁盘的物理结构
- 盘片:硬盘有多个盘片,每盘片2面
- 磁头:每面一个磁头
-
硬盘的数据结构
- 扇区:盘片被分为多个扇形区域,每个扇区存放512字节的数据,硬盘的最小存储单位
- 磁道:同一盘片不同半径的同心圆,是由磁头在盘片表面划出的圆形轨迹
- 柱面:不同盘片相同半径构成的圆柱面,由同一半径圆的多个磁道组成
- 硬盘存储容量=磁头数×磁道(柱面)数×每道扇区数×每扇区字节数(512字节)
- 可以用柱面/磁头/扇区来唯一定位磁盘上每一个区域
- 磁盘接口类型
IDE、SATA、SCSI、SAS、光纤通道
MBR与磁盘分区
MBR 主引导记录、主引导分区
- MBR位于硬盘第一个物理扇区处
- MBR中包含硬盘的主引导程序和硬盘分区表
- 分区表有4个分区记录区,每个分区记录区占16个字节
- Linux中将硬盘、分区等设备均表示为文件
解释
MBR是主引导记录,位于硬盘的第一个物理扇区处,MBR中包含硬盘的主引导程序和硬盘分区表,MBR总共512字节,前446字节是主引导程序,分区表保存在MBR扇区中的第447-510字节中。分区表有4个分区记录,每一个分区记录占16字节
MBR磁盘分区支持最大卷为2.2TB,每个磁盘最多有4个主分区,或者3个主分区、1个扩展分区和在扩展分区里面分为多个逻辑分区
磁盘文件的结构
/dev/hda5 | |||
---|---|---|---|
/dev | hd | a | 5 |
表示硬件设备文件所在的目录 | hd表示IDE设备 | 硬盘的顺序号 | 分区的顺序号 |
sd表示SCSI设备 | 主分区序号是1-4 逻辑分区的序号从5开始 |
硬盘分区结构
- 硬盘中的主分区数目只有4个
- 主分区和扩展分区的序号限制在1~4
- 扩展分区再分为逻辑分区
- 逻辑分区的序号将始终从5开始
添加完硬盘可以通过重启或者运行下面的代码刷新磁盘
echo "- - -" > /sys/class/scsi_host/host0/scan
echo "- - -" > /sys/class/scsi_host/host1/scan
echo "- - -" > /sys/class/scsi_host/host2/scan
文件系统类型
-
XFS文件系统(普通文件数据)
- 存放文件和目录数据的分区
- 高性能的日志型文件系统,特别擅长于处理大文件,可支持上百万TB的存储空间
- Centos7系统中默认使用的文件系统
-
SWAP,交换文件系统(硬盘空间虚拟内存空间)
- 为Linux系统建立交换分区
- 一般设置为物理内存的1.5~2倍
-
Linux支持的其它文件系统类型
- EXT4/3、FAT32、 NTFS、LVM
CentOS7系统中文件类型默认为:XFS
CentOS6系统中文件类型默认为:EXT4
检测和确认新硬盘
fdisk命令
fdisk -l #查看所有磁盘设备
lsblk #查看所有磁盘包括分区
fdisk 磁盘 #创建分区
在线刷新磁盘
echo "- - -" > /sys/class/scsi_host/host0/scan
echo "- - -" > /sys/class/scsi_host/host1/scan
echo "- - -" > /sys/class/scsi_host/host2/scan
解释 | |
---|---|
设备 | 分区的设备文件名称 |
Boot | 是否是引导分区。若是,则有==“*”==标识 |
Start | 该分区在硬盘中的起始位置(柱面数) |
End | 该分区在硬盘中的结束位置(柱面数) |
Blocks | 分区的大小,以Blocks(块)为单位,默认的块大小为1024字节 |
Id | 分区对应系统ID号,例如 8e标识LVM逻辑卷 |
System | 分区类型 |
创建磁盘分区
管理磁盘
fdisk #进入管理界面
m #获取命令
n #建立分区
p #查看分区情况
d #删除分区
t #变更分区类型
w #保存操作推出
q #不保存退出
创建普通分区
创建扩展分区
创建逻辑分区
逻辑分区是 在扩展分区上创建的,所以要先创建扩展分区
创建分区并修改类型为swap
分区类型
分区类型ID | |
---|---|
83 | 默认Linux文件系统 |
82 | swap |
8e | Linux LVM |
fd | Linux raid 自动 |
格式化,创建文件系统、挂载、卸载文件系统
格式化,创建文件系统
mkfs -t 文件系统类型 分区设备 #格式化磁盘分区
例如 : mkfs -t xfs /dev/sdc2
mkfs.ext4 分区设备 #格式化磁盘分区为 ext4 类型
blkid #查看已经格式化的分区的UUID和类型
swap 分区
mkswap 分区设备 #格式化 swap 分区类型
mount -t 存储设备 挂载点目录
df -h #人性化查看
df -hT #查看文件类型
-t 指定文件类型
-o loop #挂载光盘镜像文件
umount 挂载目录或者文件 #卸载挂载
-l #解除正在繁忙的文件
-f #强制解除
lsblk #查看分区和挂载情况
free -m 以兆节为单位查看
swapon #临时挂载 swap 分区
swapon -s #查看当前swap的使用的设备
swapoff #卸载设备
swapoff -a #关闭所有swap
永久挂载
mount #临时挂载
修改配置文件
vim /etc/fstab
第一字段 | 设备名或者设备卷标名 |
---|---|
第二字段 | 文件系统的挂载点目录的位置 |
第三字段 | 文件系统类型 |
第四字段 | 挂载参数 defaults(默认参数) rw(可读写) ro(只读) noexec(禁用执行程序) |
第五字段 | 表示该文件是否需要 dump 备份 1为需要 0为不需要 |
第六字段 | 决定系统启动时的进行磁盘检测的顺序 0为不检查 1为优先检查 2为其次检查 |
blkid #查看UUID号
vim /etc/profile
~/.bash_profile
vim /etc/rc.local #修改文件
chmod +x /etc/rc.d/rc.local #修改需要的文件权限,添加执行权限
修改 rc.local 文件实现自动挂载
检测磁盘是否栓坏
badblocks -sv 分区
在大于2.2T的磁盘上创建分区
大于2.2TB的卷或者磁盘
gdisk #fdisk的延申 划分容量大于2.2T的磁盘
partprobe 分区 #自动刷新磁盘
gdiak 与 fdisk 一样的用法
parted
命令格式
parted 选项 硬盘
- 查看系统分区信息
parted 硬盘 print
例如 parted /dev/sdb print
- 创建分区
parted 【硬盘】 mkpart 分区类型 文件系统类型 开始 结束
mkpart 分区类型:
- primary
- logical
- extendes
文件系统类型:
- fat16
- fat32
- ext2
- ext3
- linux-swap
parted /dev/sdb mkpart primary linux-swap 30G 31G
3. 修改分区格式
parted /dev/sdb mklabel gpt
4. 删除分区
parted /dev/sdc rm 3
5. 创建分区的另一种方式
创建分区
parted /dev/sdb
GNU Parted 3.1
使用 /dev/sdb
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) mklabel
新的磁盘标签类型? gpt
(parted) mkpart
分区名称? []? dp1
文件系统类型? [ext2]? ext4
起始点? 0
结束点? 5G
(parted) print
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdb: 85.9GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name 标志
1 17.4kB 5000MB 5000MB dp1
删除分区
parted /dev/sdb #使用 /dev/sdb 作为 parted 是使用硬盘
rm 1 #删除分区,用print 打印出来的 number
print #查看结果
格式化、挂载
# mkfs.ext4 /dev/hdd1
# mkdir /data
# mount /dev/hdd1 /data