10. Linux磁盘管理

Date:

2018-09-02

设备的分类:
  • 块设备

  • 字符设备

10.1. 磁盘设备的文件命名

  • IDE /dev/hd

  • SCSI,SATA,SAS,USB /dev/sd

  • 云盘 /dev/vda

centos7及以后没有差异了。都是sd的啦。

10.2. 机械式硬盘

磁道

每个盘片上被分为N个同心圆,每个同心圆就是一个磁盘。

柱面

相同编号的磁道

扇区

每个磁道512个字节

磁道越靠外的分区器读写速度越快,通常外面的划分为系统分区,第0磁道0扇区是被预留出来的,不属于任意的分区,称为MBR

10.3. MBR

前446字节

存储boot loader,引导加载器

64字节

存储分区表的,4个部分,每个16字节,所以一般分区最多三个主分区和一个扩展分区。

2字节

结束标志55AA

10.4. 磁盘分区管理命令

fdisk [DEVICE]

1p           显示分区表
2n           创建分区
3d           删除分区
4t           修改分区id
5l           列出系统id
6w           保存退出
7q           不保存退出

10.5. Linux文件系统

常用文件系统

普通文件系统

ext2,ext3,ext4,xfs,btrfs,reiserfs,jfs,swap

网络文件系统

nfs,smbfs,cifs

集群文件系统

gfs,ocfs

分布式文件系统

ceph,moosefs,mogilefs,glusterfs

光盘文件系统

iso9660

10.5.1. 创建文件系统

mkfs

-t

指定文件系统

-L

指定卷标

mke2fs

-t

指定文件系统

-b

指定块大小

-L

指定卷标

-j

相当于-t ext3

-i

每多少字节创建一个inode

-N

直接指定inode个数

-m

设置预留的百分比,默认5

-O

指定分区特性

blkid

-L

查看指定的卷标

-U

查看指定的uid

e2label

修改卷标名字

tunefs

-l

查看指定文件系统的超级块信息

-j

ext2–>ext3

-L

修改卷标

-m

修改预留百分比

-O

启用指定特性

-o

开启或或者关闭指定挂载选项

-U

修改UUID

10.5.2. 文件系统监测

fsck

-t

指定类型

-a

自动修复错误

-r

交互式修复

e2fs

-y

对问题自动回答yes

-f

强制进行检查

10.5.3. 超级块

超级块的作用是存储文件系统的元数据信息

10.6. 文件系统的挂载

所谓的挂载文件系统就是将额外的分区和根文件系统上的某个目录建立关联的过程。

重要

  • 如果是没有用过的磁盘,需要先格式化分区才能挂载新的磁盘。如果云主机,挂载高效云盘,需要先格式化这个云盘才能挂载上。否则会挂在失败。

  • 一般需要把挂载的硬盘/云盘添加到 /etc/fstab 文件中,注入最后两列都是0,否则会导致启动失败。参考: fstab语法详解 。或者把对应的挂载命令追加到启动脚本 /etc/rc.local 中。

mount

-t

指定文件系统

-r

只读

-w

读写

-L

卷标

-U

uuid

-a

自动挂载

-n

不更新mtab

-B

绑定到目录

-o

指定挂载选项

挂载详细选项

 1async/sync              同步异步问题
 2atime/noatime           是否更新atime
 3auto/noauto             是否自动挂载
 4/diratime/nodiratime    目录被访问,是否更新时间戳
 5/dev/nodev              是否支持使用设备
 6exec/noexec             是否执行二进制程序
 7suid/nosuid             是否支持suid
 8remount                 重新挂载
 9ro                      读
10rw                      读写
11user/nouser             是否运行普通用户挂载
12acl                     是否支持acl

10.6.1. 挂载新硬盘举例

主要顺序:
  1. 新增硬盘格式化:mkfs -t ext4 /dev/vdb1

  2. 修改配置文件:/etc/fstab
    1. 新增一个挂载点儿。例如:mkdir /data

    2. 在/etc/fstab最后行新增一行:

      /dev/vdb1 /data ext4 defaults 0 0

  3. 先用 df -h 查看现在挂载的硬盘。然后运行 mount -a 检查第二步配置的fstab文件是否正确。如果配置正确,则此时正常挂载新增加的硬盘。

10.6.2. 挂载交互分区

swapon

-a

激活所有的交互分区

-p

指定优先级

10.6.3. 文件系统的卸载

umount即可完成卸载,有时候有访问的时候需要fuser -km配合使用

10.6.4. 设备自动开机挂载

/etc/fstab一共6个部分,空格后者tab分割即可
  1. 挂载的设备

  2. 挂载点

  3. 文件系统类型

  4. 挂载选项

  5. 转储频率

  6. 自检次序