Linux磁盘和文件系统管理

Linux磁盘和文件系统管理

linux磁盘管理

一、Linux设备类型

    硬盘有机械硬盘(HDD)和固态硬盘(SSD)之分。机械硬盘即是传统普通硬盘,主要由:盘片,磁头,盘片转轴及控制电机,磁头控制器,数据转换器,接口,缓存等

    几个部分组成。

    

        机械式硬盘

            track:磁道,存储信息的位置

            cylinder:柱面

            sector:扇区

            MBR:全称为Master Boot Record,即硬盘的主引导记录。硬盘的0柱面、0磁头、1扇区称为主引导扇区(也叫主引导记录MBR),该扇区总共512字节;

                 它由主引导程序、硬盘分区表DPT(Disk Partition table)和分区有效标志。

                 boot loader(主引导程序):占446bytes

                 Partition table(用来存取分区表):占64bytes;硬盘中分区有多少以及每一分区的大小都记在其中,其中每16bytes标识一个分区;所以对于早期硬盘

                    (非UEFI)来讲在基于MBR方式管理时一块硬盘最多只能有4个分区;或者3主分区+1扩展(扩展可以使用N个逻辑分区)

                 magic number:占2个字节,对于大端模式处理器该值固定为0*55AA,存为55AA表示前面500个字节是有效的,否则是无效的

                        

                    注意:硬盘单盘容量大于2T,MBR机制无法识别2T及大于2T的硬盘 ,此时需使用GTP机制

                 

二、磁盘接口类型及命名

        1、并行:

            IDE    接口速率:133MB/s

            SCSI    接口速率:640MB/s

        2、串口:相对于并行设备类型速率更高

            SATA:   接口速率: 6Gbp/s

            SAS:     接口速率: 6Gbp/s 

            USB:    接口速率:480MB/s

        3、磁盘命名

            磁盘一般以/dev/DEV_FILE方式命名

            磁盘设备的设备文件命名:

                IDE接口设备:/dev/hd

                SCSI,SATA,SAS,USB等接口设备:/dev/sd

                                   不同设备:/dev/sd[a-z],如:/dev/sda,/dev/sdb….

                       同一设备上的不同分区:1,2,3,…如:/dev/sda1,/dev/sda2,…

                                

三、磁盘分区管理工具:

     1、Linux中的分区的主要管理工具有:fdisk、parted,sfdisk,本文中主要介绍使用fdisk工具。

          注意:使用fdisk工具分区时,对于一块硬盘来讲,最多只能管理15个分区。

     2、fdisk命令:

                   语法命令:fdisk [option] [DEVICE]

                   子命令:m:获取帮助,显示出所有子命令

                            fdisk命令子命令m.png

                           p:print,显示已有分区

                           n:new,创建

                           d:delete,删除

                           w:write,写入磁盘并退出

                           q:quit,放弃更新并退出

                        l:列表分区id

                        t:调整分区id

        查看内核是否已经识别新的分区:    

                        cat /proc/partations,如果内核没有识别,使用下列命令手动通知内核重新读取硬盘分区表

                        partx -a /dev/DEVICE(centos6、7)

                        partprobe[/dev/DEVIC](centos5)

    

Linux文件系统管理


一、Linux文件系统类型:

        

         1、Linux文件系统:ext2,ext3,ext4,xfs,btrfs,reiserfs,jfs,swap

                    swap:交换分区

                    光盘:iso9660

                    Unix:FFS,UFS,JFS2

                    网络文件系统:NFS,CIFS

                    系群文件系统:GFS2,OCFS2

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

              根据其是否支持“journal”功能分为:

                    日志型文件系统:ext3,ext4,xfs….

                    非日志型文件系统:ext2,vfat….

          2、文件系统的组成部分:

                    内核中的模块:ext4,xfs,vfat

                    用户空间的管理工具:mkfs.ext,mkfs.xfs,mkfs.vfat

              Linux的虚拟文件系统:VFS

          3、文件存储结构

                Linux分区.png

                  

                            分区的第一个部分是启动区(Boot block),它主要是为计算机开机服务的。Linux开机启动后,会首先载入MBR,随后MBR从某个硬盘的启动区加载程序。

                    程序负责进一步的操作系统的加载和启动。为了方便管理,即使某个分区中没有安装操作系统,Linux也会在该分区预留启动区。

                    启动区之后的是超级区(Super block)。它存储有文件系统的相关信息,包括文件系统的类型,inode的数目,数据块的数目。

              Inode:Index Node又称文件索引节点,是文件基本信息的存放地(如读写属性、owner等,但不包括文件名)和数据块指针(直接、间接及三级指针)存放地。

                                           节点位图inode bitmap:对应表是每个inode空闲与否的状态信息

                            数据块:文件的具体内容存放地。

                            当查看某个文件时,会先从inode table中查出文件属性及数据存放点,再从数据块中读取数据

                        inode.png

               其中文件的inode结构如下(inode里所包含的文件信息可以通过stat filename查看得到):

                

                            Inode结构.jpg

          4、链接文件:

                硬链接:是给文件一个副本,同时建立两者之间的连接关系。修改其中一个,与其连接的文件同时被修改。

                                                不能对目录进行

                                                不能跨分区进行

                                                指向同一个inode的过个不同路径,创建文件的硬链接即为inode创建新的引用路径,因此会增加其引用计数


                                软链接,也叫符号链接:是对源文件在新的位置建立一个“快捷”,所以,当源文件删除时,符号连接的文件将仅仅

                                                剩下个文件名了,当然删除这个连接,也不会影响到源文件,但对连接文件的使用、引用都是直接调用源文件的。

                                                可以对目录进行

                                                可以跨分区

                                                指向另一个文件的路径,其大小为指向的路径字符串的长度,不增加或减少目标文件inode的引用计数。

二、Linux文件系统相关命令:

           1、创建文件系统:mkfs

                用法:mkfs [-V] [-t fstype] [fs-options] filesys [blocks]

                

                             (1)mkfs.FS_TYPE /dev/DEVICE

                                                ext4

                             (2)mkfs -t FS_TYPE /dev/DEVICE

                      mke2fs:ext系列文件系统专用管理工具

                            -t{ext2|ext3|ext4}

                            -b:{1024|2048|4096}

                            -L:‘LABEL

                            -j:相当于 -t ext3

                            -i #:为数据空间中每多少个字节创建一个inode;此大小不应该小于block的大小

                            -N #:为数据空间创建个多少个inode

                            -m #:为管理员预留的空间占据的百分比

                            -O FEATURE[,…..]:启用指定特性

                                    -O ^FEATURE:关闭制定特性

                       mkswap:创建交换分区

                            mkswap [OPTION] device

                                    -L ‘LABEL’

                            前提:调整其分区的ID为82

                        blkid:块设备属性信息查看

                        blkid [OPTION]…[DEVIE]

                                -U UUID:根据指定的UUID来查找对应的设备

                                -L LABEL:根据指定的LABEL来查找对应的设备

                        e2label:管理ext系列文件系统的LABEL

                                e2label DEVICE [LABEL]

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

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

                                -L ‘LABEL’:修改卷标

                                -m #:修改预留给管理员的空间百分比

                                -j:将ext2升级为ext3

                                -O:文件系统属性启用或禁用

                                -o:调整文件系统的默认挂载选项

                                -U UUID:修改UUID号

                        dumpe2fs

                                -h:查看超级块信息

           2、文件系统检测:

                        fsck:file system check

                        fsck.FS_TYPE

                        fsck -t FS_TYPE

                             -a:自动修复

                             -r:交互式修复错误

                        NOTE:FS_TYPE一定要与分区上文件类型相同

                        e2fsck:ext系列文件专用的检测修复工具

                                -y:自动回答为yes

                                -f:强制修复

            3、文件系统的挂载

                    将额外文件系统与根文件系统某现存的目录建立起关联关系,进而使得此目录做为其它访问入口的行为称之为挂载

                解除此关联关系的过程称之为卸载

                把设备关联挂载点:Mount Point

                    blob.png

                 挂载命令mount:

                    mount DEVICE MOUNT_POINT

                    mount:通过查看/etc/mtab文件显示当前系统已挂载设备,查看内核追踪到的已挂载的所有设备:cat /proc/mounts

                    mount [-fnrsvw] [-t vfstype] [-o options] device dir

                    device:指明要挂载的设备

                        (1)设备文件:例如/dev/sda5

                        (2)卷标:-L ‘LABEL’:例如-L ‘MYDATA’

                        (3)UUID,-U ‘UUID’:例如-U ‘2029dba3-0402-4eb6-ae7c-dcc0c9e42c05

                        (4)伪文件系统名称:proc,sysfs,dectmpfs,configfs只需要名字,不需要设备

                     dir:挂载点

                        事先存在:建议使用空目录

                        进程正在使用中的设备无法被卸载

                     常用选项:

                        -t vsftype:指定要挂载的设备上的文件系统类型可省略

                        -r :readonly,只读挂载;

                        -w:read and write,读写挂载

                        -n:不更新/etc/mtab

                        -a:自动挂载所有支持自动挂载的设备(定义在了/etc/fstab文件中,且挂载选项中有“自动挂载功能”)

                        -L ‘LABEL’:以卷标指定挂载设备

                        -U ‘UUID’:以UUID指定挂载设备

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

                        -o options:(挂载文件系统的选项)

                            async:异步模式

                            sync:同步模式(数据可靠性高,性能差)

                            atime/noatime:包含目录和文件

                            diratime/nodiratime:目录的访问时间戳

                            auto/noauto:是否支持自动挂载

                            exec/noexec:是否支持将文件系统上应用程序运行为进程

                            dev/nodev:是否支持在此文件系统上使用设备文件

                            suid/nosuid:

                            remount:重新挂载

                            ro:

                            rw:

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

                            acl:启用此文件系统上的acl功能(centos6默认关闭,centos7默认启用)

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

                                默认挂载选项:defaults

                                    rw,suid,dev,exec,auto,nouser,and async

                 挂载交换分区

                    启用:swapon

                        swapon [OPTION]….[DEVICE]

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

                                -p:PRIORITY:指定优先级

                     禁用:swapoff  [OPTION]….[DEVICE]

            4、文件系统的卸载

                 卸载命令:umount DEVICE

                           umount MOUNT_POINT

                 查看正在访问指定文件系统的进程

                        fuser -v MOUNT_POINT

                 终止所有正在访问指定的文件系统的进程

                        fuser -km MOUNT_POINT

            5、文件系统相关的查看命令

                内存空间使用状态

                    free [OPTIONG]

                        -m:以MB为单位

                        -g:以GB为单位

                文件系统空间占用等信息的查看工具

                        df:

                            -h:human-readable

                            -i:inodes instead of blocks

                            -P:以POSIX兼容的格式输出

                查看某目录总体空间占用状态

                        du:

                        du[OPTION]…DIR

                            -h:human-readable

                            -s:summary

            6、文件挂载的配置文件

               文件挂载的配置文件/etc/fstab

                        文件系统配置文件.png

                    每行定义一个要挂载的文件系统:

                    要挂载的设备或伪文件系统    挂载点    文件系统类型    挂载选项    转储频率    自检次序

                       要挂载的设备或伪文件系统:

                            设备文件、LABEL(LABEL=" ") 、UUID(UUID=" ")、伪文件系统名称(proc、sys)

                       挂载选项:

                            defaults

                        转储频率:

                            0:不做备份

                            1:每天转储

                            2:每隔一天转储

                        自检次序:

                            0:不自检

                            1:首先自检;一般只有rootfs才用1





                



原创文章,作者:Net18-天津-康康,如若转载,请注明出处:http://www.178linux.com/14592

评论列表(2条)

  • stanley
    stanley 2016-04-11 17:06

    写的很认真,如果辅以样式优化一定能头条,样式建议使用markdown

    • Net18-天津-康康
      Net18-天津-康康 2016-04-11 17:15

      @stanley还在学习中,对markdown还不太熟悉