Linux磁盘、文件系统管理

对Linux而言,其哲学思想之一就是一切皆文件,因此Linux之上所有设备的操作都是通过文件接口来实现的,也就是说在访问设备的时候就如同访问一个文件一样,因为他们使用的都是文件系统接口。

 设备也分种类,如:

    1、块设备:block 其存取单位是“块”,如硬盘

    2、字符设备:char 存取单位是“字符”,如键盘

每个设备都有一个文件作为他的访问入口,次文件我们称之为设备文件;该文件关联至一个设备驱动程序,进而能够跟与之对应的硬件设备进行通信

设备号码:用来表示设备,不同类别的设备有不同的设备号,同一类别的设备有不同的设备或多个设备,因此就有主设备和次设备号。

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

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

我们可以通过ls -l /dev 来查看设备文件的设备号码,如:

blob.png

其中c开头的是字符设备,也就是char的首字母。所以,同理,块设备就是b开头

blob.png

主设备号和次设备号通过逗号隔开,前面为主设备号,后面为此设备号


在这里有不同的打头字母,对应不同的文件类型。

b 块设备 如:硬盘

c 字符设备 如:键盘

d 目录文件

l 链接文件

s 套接字文件

blob.png

为了区别不同的应用程序进程和连接,许多计算机操作系统为应用程序与TCP/IP协议交互提供了称为套接字(Socket)的接口磁盘设备的设备文件命名


磁盘设备的设备文件命名

    IDE:/dev/hd

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

不同设备表示方法:在设备文件名后面追加一些字母a-z来表示

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

同一设备上的不同分区:采用数字递增的方式,如1,2…

    /dev/sda1, /dev/sda2,… /dev/sdb1, /dev/sdb2…..

机械式硬盘

    磁道:每个盘片上被划分成N个同心圆,称之为磁道

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

    柱面:每个磁盘上面相同位置都会有以个相同的编号,所有相同编号的磁道称之为柱面

扇区的划分

    将每一个磁道按512个字节为单位划分为等分,叫做扇区的划分     每个扇区512字节,而文件的最小单位是“块”  每个“块”由连续的8个扇区组成 大小也就是4KB

磁盘如何分区

    1)外磁道的读写速度比内侧磁道的读写速度快。

    2)磁盘的分区是根据柱面来划分的

    3)每个盘面上的一个柱面只能属于一个分区,而且由外向内多个柱面组合成一个分区来使用,因此越靠外的柱面其读写速率越高,所以通常我们将每个盘面最外侧的柱面划分成系统分区。

0磁道0扇区

    在磁盘之上有个叫做0磁道0扇区是被预留出来的,它不属于任何分区,这个扇区称之为MBR,严格意义上讲应该叫做用来存储MBR的一段空间。该扇区的大小为512bytes,专门用来存储mbr,即主引导记录,分为三部分:

    1)446bytes:存储boot loader,引导加载器;

    2)64bytes,存储分区表,有多少个分区,每个分区从哪里开始到哪里结束;其中每16bytes标识一个分区,因此,一块硬盘最多只能有4个主分区;

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

一块磁盘最多只能划分四个主分区,要么划分3个主分区+1个扩展分区(N个逻辑分区)


磁盘分区管理工具:fdisk parted sfdisk

    查看:fdisk -l [DEVICE] 例如:fdisk -l /dev/sda 查看sda硬盘,也可以不跟最后的选项,直接查看有几个硬盘及分区信息

创建分区:fdisk   是一个交互式界面,有许多子命令

p:显示磁盘分区表

n:新建分区

d:删除分区

t:修改分区的系统ID

l:列表出所有已建好的系统ID

w:保存并退出

q :不保存退出

查看内核是否已经识别新的分区:cat /proc/partitions

对于已经有分区处于使用状态的磁盘来讲,新建分区后需要让内核重读其分区表:

    Centos 5 之上:

        #partprobe [DEVICE]

    Centos 6和7:

        #partx -a [DEVICE]

        #kpartx -af [DEVICE]

创建文件系统

    1、mkfs命令

        mkfs -t FSTYPE=mkfs.FSTYPE

        mkfs -t ext4=mkfs.ext4

        mkfs -L                           设定卷标

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

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

        mke2fs -L LABEL                   打标

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

        mke2fs -N #                       直接指定可用的iNode数

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

        mke2fs -O                         指定分区特性

*对交换分区使用特定的工具mkswap来创建交换分区,但前提是要先调整设备分区类型为8e

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

        -L‘卷标名’:可以查看到卷标名所对应的磁盘分区

        -U‘UUID’ :可以查看到UUID所对应的磁盘分区

    4、tune2fs:重新设定ext系列文件系统可调整参数的值

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

        -L 修改卷标

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

        -O[^]FEATURE:启用指定特性,特性前加^,表示关闭此种特性

        -o[^]mount-options:开启或关闭指定的挂在选项

        -U UUID :修改UUID

    5文件系统的检测

        因进程意外终止或系统崩溃等情况导入写入操作费正常终止时,可能会导致文件损坏;此时。应该修复文件系统,注意:需要离线修复

        工具:fsck e2fsck     (file system check 文件系统检查的简写)

            fsck所支持的选项

                -t:fstype

                -a:自动修复错误

                -r:交互式修复错误

            e2fsck:专用于修改ext系列文件系统

                -y:对问题自动回答yes

                -f:强制进行检测


超级块

    作用:存储文件系统的大小、有多少是空的和已经提哦啊满的占多少,以及他们各自的总数和其他诸如此类的信息。 要使用一个分区来进行数据访问,那么第一个要访问的就是超级块。所以,如果超级块坏了,那磁盘也基本没救了。

    包括:文件系统的大小、空闲块数目、空闲块索引表、空闲i节点数目……等等

文件系统的挂载

    磁盘分区要想被使用必须先挂载,所谓挂载是指将额外的分区与分文件系统上的某目录建立关联关系的过程(默认只有管理员才有权限)。注意:如果该目录中有文件,则目录中的原有文件会被隐藏

    挂载工具:mount 的使用:mount DEVICE MOUNT_POINT

        DEVICE:所需要挂载的磁盘分区

        MOUNT_POINT:挂载点:另一个文件系统的访问入口                 固定挂载点:/mnt    /media

        挂载点需要具备以下俩点:

            1 事先存在

           2 使用空闲目录

常用的挂载选项:mount [option]…[-t fstype] [-o option]

    -t fstype  指定文件系统类型

    -r :只读挂载

    -w:读写挂载

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

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

    -B:绑定目录到另一个目录上

    -o option:

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

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

        dev/nodev:是否支持在此设备上使用设备

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

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

        remount:重新挂载,通常用于不卸载的情况下重新制定挂载选项

        ro:只读

        rw :只写           

        acl:在此设备是支持使用facl,默认不支持

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

    默认挂载选项:rw,suid,dev,auto,exec,nouser(不允许普通挂载此文件设备),async(异步I/O,数据写操作先与内存完成,而后再根据某种策略同步至持久设备中)


挂载交换分区

    启用:swapon

        swapon [option]…[device]

            -a:激活所有的交换分区

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

    关闭:swapoff

            -a:禁用所有

内存及交换分区的使用信息查看:free

    -m:以MB为单位

    -g:以GB为单位

    mem:物理内存的使用情况

    swap:交换分区的使用情况

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

    1 mount

    2 cat /proc/mounts

    3 cat /proc/mtab


_ueditor_page_break_tag_

设备自动挂载

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

blob.png

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

    1、挂载的设备:可以使一下几种方式

        设备文件

        LABEL

        UUID:centos 7目前使用的方式

    2、挂载点

    3、文件系统类型

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

    5、转储频率(备份频率):

        0:从不

        1:每天

        2:每隔一天

    6、自检次序

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

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

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

        3:依次在2之后

        …

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

原创文章,作者:cszdz123,如若转载,请注明出处:http://www.178linux.com/40054

(0)
cszdz123cszdz123
上一篇 2016-08-29
下一篇 2016-08-29

相关推荐

  • 马哥教育网络班21期+第14周课程练习

    iptables关键点 表:filter(过滤,防火墙);nat(网络地址转换);mangle(拆解报文,做出修改,封装报文);raw(关闭nat表启用的链接追踪机制);上述是根据功能来区分的,写规则要明白要实现的功能 链:PREROUTING,INPUT,FORWARD,OUTPUT,POSTROUTING 数据流向:流入PREROUTING–…

    Linux干货 2016-08-26
  • N22-第二周作业-对Linux的基础操作命令的理解及用法示例

    1、Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示。 Linux上文件管理类命令常用的有:pwd、ls、cd、cp、touch、mv、rm、rmdir   1)pwd:显示当前工作目录     2)ls:列出指定目录下的内容    常用的选项有:   -a:列出目录中的所有文…

    Linux干货 2016-08-22
  • 第七周博客作业

    1、创建一个10G分区,并格式为ext4文件系统; (1) 要求其block大小为2048, 预留空间百分比为2, 卷标为MYDATA, 默认挂载属性包含acl; [root@localhost tmp]# cat /proc/partitions major minor #blocks name 8 16 52428800 sdb 8 17 1049041…

    Linux干货 2017-03-06
  • rpm 程序包管理器的基本使用

    目录 安装程序包 卸载 升级 查询 校验 来源合法性和完整性验证 数据库重建 1     安装程序包 rpm -ivh /path/to/package_file -v     显示执行过程的参数。 -h   &nbsp…

    Linux干货 2016-06-22
  • mysql cluster安装部署

    一、安装要求 安装环境:CentOS-6.5-32bit 软件名称:mysql-cluster-gpl-7.2.25-linux2.6-i686.tar.gz 下载地址:http://mysql.mirror.kangaroot.net/Downloads/ 软件包:mysql-cluster-gpl-7.2.25-linux2.6-i686.tar.gz …

    Linux干货 2016-08-22
  • lvs-nat的实现

    nat的知识点

    2018-03-03

评论列表(1条)

  • 马哥教育
    马哥教育 2016-08-29 14:19

    文章对磁盘分区的要点,进行了完整的表述,对于硬盘基础知识可以结合图片来详细说明。同时对于命令的使用,没有很好的练习,对于学习linux,只有多练习,才能发现问题。时间实践真理的唯一标准哦。