Linux 第8天(自习) 磁盘管理


时间: 20180724


目录

Linux 磁盘管理

设备号码

硬盘接口类型

机械硬盘

机械硬盘基本运作描述

扇区的划分

硬盘分区

0磁道0扇区

硬盘分区工具

Linux 文件系统管理

Linux 文件系统分类

创建文件系统命令

文件系统的挂载

文件系统的卸载

开机自动挂载文件系统


Linux 磁盘管理


设备号码: 用来标识设备,不同类别的设备有不同的设备号,同一类别的设备同一台机器上可能

有多个,因此就有主设备号和次设备号之分


主设备号 major number 标识设备类型

次设备号 minor number 标识同一类型下的不同设备


硬盘接口类型

并口-数据传输由n根线并行传输数据

IDE: 133MB/s

SCSI: 640MB/s

串口-数据传输由一根线按照顺序传输

SATA: 6Gbps

SAS: 6Gbps

USB: 480MB/s


linux里磁盘设备的设备文件命名

IDE: /dev/hd

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


相同设备类型的多个设备表示方式,在设备文件名后加一些字母来表示

/dev/sda, /dev/sdb, /dev/sdc...


同一设备的不同分区表示方式,采用数字递增的方式如 1,2...

/dev/sda1, /dev/sda2...



机械硬盘

构造: 盘片,轴,旋转马达、 机械臂、 磁头


机械磁盘基本运作

盘片固定在旋转轴上,马达带动轴进行旋转,机械臂上装有磁头,磁头悬浮在盘面上,用来

读写盘片上的数据,机械臂可以来进行寻道。


每个盘片被划分成N个同心圆,称之为磁道,是真正用来存取数据的地方;至于磁道上能存储多少

数据,取决于现代技术工艺。  现在的磁盘都是双面读写的,所谓双面是一个盘片的上下两面均

可读写;每个盘面上相同的位置都会有一个相同的编号,所有相同编号的磁道称之为柱面。磁盘

上的每个磁道被等分为若干个弧段,这些弧段便是磁盘的扇区。


扇区的划分

将每个磁道按521个字节为单位划分为等分,叫做扇区的划分; 在一些硬盘的参数列表上

可以看到描述每个磁道的扇区数的参数,它通常用一个范围标识,例如373~746,这表示最

外圈的磁道有746个扇区,而最里面的磁道有373个扇区,因此可以算出来,磁道的容量

分别是从186.5KB到373KB(190976B--381952B)


磁盘分区

根据硬盘内部结构分析,所有的碰头都是一起同时运动的,在读写一个文件数据的时候,只

是在一个盘面上进行操作要比同时在其它所有盘面上操作所花费的时间要长,另外根据物理

运动原理,外侧磁道的读写速度要比内侧磁道的读写速度要快很多(单位时间内碰头在盘面

上滑过的距离)。因此磁盘的分区是根据柱面来划分的。


每个盘面上的相同磁道所组成的柱面只能属于一个分区,而且由外向内多个柱面组合成一个

分区来使用,因此越靠外的柱面其读写速度越快,这也正是越靠近外侧的分区其读写速度越

快的原因。通常我们将每个盘面最外侧的柱面划分成系统分区。


一块儿硬盘就是一个存储空间,分区只是逻辑上的划分行为,这个分区信息是没办法保存在

分区内部的某块空间上面的。 在硬盘之上有一个叫做0磁道0扇区是被预留出来的,它不属

于任何分区,这个扇区称之为MBR,严格意义上讲应该叫做用来存储MBR的一段空间。


0磁道0扇区

该扇区的大小为512bytes,专门用来存储MBR(Master Boot Record),主引导记录

MBR又分为三个部分

446bytes 存储boot loader,引导加载器

64bytes 存储分区表,有多少个分区,每个分区从哪里开始到哪里结束;其中每

16bytes标识一个分区,因此一块硬盘最多只能有4个主分区。

2bytes 前面信息的有效性标识(或者叫做结束标志),用四个16进制数来表示55AA

  表示前面的510bytes是有效的,4bit表示一个16进制数


如果一块硬盘需要划分超过4个分区,就需要将其中一个16byte当做扩展分区表,即

引导找到另外一个更大的存储空间来存储扩展分区表,而这个扩展分区又可以划分更

多的分区来使用,需要注意的是这个扩展分区是不能直接使用的,还需要对其划分成逻辑分区。


注意: 当硬盘容量超过2T的时候,现在的MBR机制是没办法识别2T以上的磁盘空间的

 此时就需要使用GPT机制来进行分区。


磁盘分区管理工具

fdisk, parted, sfdisk


Linux 文件系统管理


上一步只是将硬盘逻辑上分成几块硬盘供系统使用,

Linux 文件系统分类

常用的linux文件系统: ext2, ext3, ext4, xfs, btrfs, reiserfs, jfs, swap

交换文件系统 swap

网络文件系统 nfs, smbfs(cifs)

集群文件系统 GFS, OCFS

分布式文件系统 ceph, moosefs, mogilefs, GlusterFS

光盘文件系统 iso9660

根据其是否支持日志功能的还可分为

日志型文件系统 ext3, ext4, xfs

非日志型文件系统 ext2, vfat


创建文件系统命令

1. mkfs 创建linux文件系统

子命令mkfs.btrfs   mkfs.cramfs  mkfs.ext2    mkfs.ext3    

 mkfs.ext4    mkfs.minix   mkfs.xfs用来创建指定的文件系统

-t filesystem type 指定要将分区格式化为何种文件系统

-L 'LABEL' 设定卷标

2. 对于ext系统的文件系统有个专用的管理工具mke2fs

-t {ext2|ext3|ext4} 指定文件系统

-b {1024|2048|4096} 指定块大小

-L LABEL 做标签

-j 相当于-t ext3

-i # 每多少字节给创建一个inode,此字节数不应该小于块大小

-N # 直接指定可用的inode数

-m # 指定预留空间占整个分区空间的百分比,默认为5

-O 指定分区特性

对于交换分区使用特定的工具mkswap来创建交换分区,但前提是先调整设备分区

类型为8e

3. blkid 查看指定块设备的属性信息

-L 'LABLE' 可以查看到卷标名所对应的磁盘分区

-U UUID 可以查看到UUID所对应的磁盘分区信息

4. e2label 管理ext系列文件系统的卷标

e2label DEVICE [LABEL]

5. tune2fs 重新设定ext系列文件系统可调整参数的值

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

修改分区属性:块大小无法调整

-j ext2-->ext3

-L 修改卷标

-m # 修改预留空间百分比

-O [^]mount-options 开启或关闭指定的挂载选项

-U UUID 修改UUID

6. 文件系统检测

因进程意外中止或系统崩溃等情况导入写入操作非正常中止时,可能会导致文件系统

损坏,此时应该修复文件系统,注意需要离线修复

修复工具 fsck, e2fsck

fsck 修复文件系统

-t fstype

-a 自动修复错误

-r 交互式修复错误

e2fsck 专用于修复ext系统文件系统

-y 对问题自动回答为yes

-f 强制进行检测


文件系统的挂载

挂载是指将额外的分区与根文件系统上的某目录建立关联关系的过程,如果该目录中有文

件,则目录中原有文件会被隐藏。


挂载命令 mount DEVICE MOUNT_POINT


挂载点需要具备以下两点

1.事先存在

2.使用空闲目录


常用的挂载选项

-t fstype

-r readonly

-w read and write

-L LABEL 以卷标方式指定设备, mount -L LABEL 挂载点

-U UUID 以UUID方式指定挂载设备

-a 自动挂载所有(/etc/fstab文件中定义的)支持自动挂载的设备

-n 挂载时不更新/etc/mtab文件

-B,--bind 绑定目录到另一个目录上

-o option

async 异步I/O,数据写操作先写入内存,而后再根据某种策略同步至持久设备

sync 同步I/O,与异步相反

atime/noatime 文件和目录被访问时是否更新最近一次的访问时间戳

auto/noauto 设备是否支持mount的-a选项自动挂载

diratime/nodiratime 目录被访问时是否更新最近一次的访问时间戳

dev/nodev 是否支持在此设备上的目录中再进行挂载其它设备

exec/noexec 是否允许执行此设备上的二进制程序文件

suid/nosuid 是否支持在此设备上的文件使用suid

remount 重新挂载

ro readonly

rw read and write

user/nouser 是否允许普通用户挂载此文件设备

acl 在此设备上是支持facl,默认不支持


注意: 上述选项可多个同时使用,彼此之间用逗号分隔

 默认挂载选项: rw, suid, dev, exec, auto, nouser, async


挂载交换分区swap

swapon 启用swap分区

[OPTION]... [DEVICE]

-a 激活所有的交换分区

-p PRIORITY 指定优先级(用数字来表示)

swapoff 关闭swap分区

-a 禁用所有 


文件系统空间占用等信息查看df du

df disk free 查看磁盘设备的使用情况

-h human-readable

-i 显示inode的使用信息而非默认的磁盘空间使用信息

du 查看某目录空间占用情况

-s 查个目录大小(默认列出各个目录的大小)

-h human-readable


三种方式查看所有已经挂载的设备

mount

cat /proc/mounts

cat /etc/mtab



文件系统的卸载

挂载点没有被进程访问时方可以卸载


umount DEVICE 或者 umount MOUNT_POINT


在卸载前最好是要查看下哪些进程正在访问的设备

fuser -v 挂载点

如果有程序正在使用该设备,并且想中止正在此挂载点的进程,则可使用

fuser -km 挂载点


设备自动挂载

自动挂载的设备的配置文件/etc/fstab


文件的语法格式,每行定义一个要挂载的文件系统,有以下6个字段

1.挂载的设备,可以是以下几种方式

设备文件/dev/...

LABEL

UUID centos7目前使用此种方式

2.挂载点,即要挂载的目录位置

3.文件系统类型

4.挂载选项, mount命令中的选项,挂载选项可以有多个,彼此间使用逗号分隔

5.转储频率(备份频率)

0 从不转储

1 每天转储

2 每隔一天

6.自检次序

0 不自检,额外创建的文件系统都无须自动自检

1 首先自检,通常只有根文件系统需要首先自检

2 次极自检,不同的设备可以使用同一个自检次序

3... 依次2之后


使用mount -a可以重要加载/etc/fstab文件中的所有挂载项