Linux磁盘和文件系统管理

  1. 磁盘相关概念

    1. 设备类型:

      1. 块设备(block):存取单位为块,典型设备磁盘

      2. 字符设备(char):存取单位为字符,典型设备为键盘

    2. 设备文件:

      1. 关联至一个设备驱动程序,进而能够跟与之对应硬件设备进行通信。

      2. 如果存在两个相同型号设备,使用两个设备文件,但可能还会关联到同一个驱动程序

      3. 设备文件只有元数据即属性,没有数据内容,属于特殊文件类型

      4. 设备号码:

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

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

    3. 硬盘

            1. 组成部分

               track:磁道

               cylinder: 柱面

               secotr: 扇区(512bytes)

               如何分区:按柱面

            2. MBR: Master Boot Record,即硬盘的主引导记录(无法识别2T以后的分区)0磁道0扇区:512bytes。

               446bytes: boot loader引导加载器,是一个程序

               64bytes:分区表

               16bytes: 标识一个分区

               2bytes: 55AA(分区有效标识)

               4个主分区;

               3主分区+1扩展(分区表的展指向)(N个逻辑分区,在Linux从5开始编号)

            3. 硬盘接口类型:

                并行:

                    IDE:“Integrated Drive Electronics”电子集成驱动器,把“硬盘控制器”与“盘体”集成在一起的硬盘驱动器,133MB/s

                    SCIS:“Small Computer System Interface”(小型计算机系统接口),640MB/s

                串口:

                    SATA:(Serial ATA)叫串口硬盘,6Gbps

                    SAS:(Serial Attached SCSI)即串行连接SCSI,6Gbps

            4. 磁盘设备的命名标准:

                IDE: /dev/hd(centos5使用)

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

                                 不同设备:a-z

                                 /dev/sda, /dev/sdb, …

                                 同一设备上的不同分区:1,2, …

                                 /dev/sda1, /dev/sda5


  2. 磁盘分区管理

    1. fdisk命令介绍

      1. 概念:用于观察硬盘实体使用情况,也可对硬盘分区。它采用传统的问答式界面,而非类似DOS fdisk的cfdisk互动式操作界面,因此在使用上较为不便,但功能却丝毫不打折扣,对于一块硬盘来讲,最多只能管理15分区。

      2. 命令语法及主要选项

        1. fdisk [-OPTION] [device…]

                   -l:列出指定的外围设备的分区表状况;

                   -u:搭配"-l"参数列表,会用分区数目取代柱面数目,来表示每个分区的起始地址;

        fdisk的子命令的管理功能,如下图所示

                      blob.png

                            其中常用命令是:

                            p: print, 显示已有分区;

                            n: new, 创建

                            d: delete, 删除

                            w: write, 写入磁盘并退出

                            q: quit, 放弃更新并退出

                            m: 获取帮助

                            l: 列表所分区id

                            t: 调整分区id                

    1. fdisk的分区功能详解

      1. 创建主分区(最后使用w保存退出)如下图所示:

        blob.png

      2. 创建逻辑分区(最后使用w保存退出),如下图所示:

        blob.png

      3. 使得分区生效

        1. 使用命令:partx -a /dev/DEVICE或者kpartx -a /dev/DEVICE(note:CentOS 5: 使用partprobe),如下图所示: 

        blob.png

        1. 查看是否生效:

          使用命令cat /proc/partitions,如下图所示:

        blob.png]

  3. 文件系统相关概念

    1. Linux文件系统类型

      1. Minix:Minix是Linux支持的第1个文件系统,该文件系统对用户的限制很多,性能很低。其最大缺点是最大只支持64MB的硬盘分区,现在该文件系统类型已无人使用了。

      2. ext2:是Linux使用的,性能很好的文件系统,用于固定文件系统和可活动文件系统。它是作为ext文件系统的扩展而设计的。ext2在Linux所支持的文件系统中,提供最好的性能(在速度和CPU使用方面),简短的说,ext2是Linux的主要文件系统。

      3. ext3:是对ext2增加日志功能后的扩展。是RHEL5中默认使用的文件系统类型。它向前、向后兼容ext2,意为ext2不用丢失数据和格式化就可以转换为ext3,ext3也可以转换为ext2 而不用丢失数据(只要重新安装该分区就行了),强烈推荐使用这种文件系统。 

      4. ext4(centos6):为第4代扩展文件系统,是RHEL6中默认使用的文件系统类型,属于典型的日志型文件系统。其特点是保持有磁盘存取记录的日志数据,便于恢复,性能和稳定性更加出色。 

      5. btrfs(centos7):由Oracle于2007年宣布并进行中的COW(copy-on-write式)文件系统。目标是取代Linux目前的ext3文件系统,改善ext3的限制,特别是单一文件大小的限制,总文件系统大小限制以及加入文件校验和特性。加入目前ext3/4未支持的一些功能,例如可写的磁盘快照(snapshots),以及支持递归的快照(snapshots of snapshots),内建磁盘阵列(RAID)支持,支持子卷(Subvolumes)的概念,允许在线调整文件系统大小。

      6. reiserfs:仍然在完善的带日志文件系统,特别适合小文件的文件系统 

      7. jfs:仍然在完善的带日志文件系统,特别适合小文件的文件系统 

      8. swap:swap文件系统用于Linux的交换分区。在Linux中,使用整个交换分区来提供虚拟内存,其分区大小一般应是系统物理内存的2倍,在安装Linux操作系统时,就应创建交换分区, 它是Linux正常运行所必需的,其类型必须是swap,交换分区由操作系统自行管理。 

      9. 光盘:iso9660:这是一种针对ISO9660标准的CD-ROM文件系统,允许用户在PC、Mac和其他主要计算机平台上读取CD-ROM文件。几乎所有带有CD-ROM的计算机都可以从ISO9660文件系统读取文件。

    2. 其他系统文件系统类型

      1. Windows:fat32, ntfs

      2. Unix: FFS, UFS, JFS2

      3. 网络文件系统:NFS, CIFS

      4. 集群文件系统:GFS2, OCFS2

      5. 分布式文件系统:ceph,                                       

      6. moosefs, mogilefs, GlusterFS, Lustre

    3. 文件系统的组成部分

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

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

                Linux的虚拟文件系统:VFS

      note:根据其是否支持"journal"功能:                             

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

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


  4. 文件系统管理

    1. 使用mkfs命令创建文件系统(创建文件系统的过程既是格式化分区)

      1. mkfs.FS_TYPE /dev/DEVICE (文件系统类型有 ext4,xfs,btrfs,vfat),如下图所示:

        blob.png

      2. mkfs -t FS_TYPE /dev/DEVICE,如下图所示:

        blob.png

    2. 使用mke2fs创建文件系统(ext系列文件系统专用管理工具)

      1. 相关选项

        • -t {ext2|ext3|ext4}:选择文件系统类型

        • -b {1024|2048|4096}:指明块大小

        • -L 'LABEL':指定卷标

        • -j: 相当于 -t ext3

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

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

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

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

        •  -O ^FEATURE:关闭指定特性

      2. 使用事例

        blob.png

    3. 创建交换分区

      1. 调整目标分区的id

        blob.png

      2. 使用命令mkswap创建交换分区

        mkswap [options] device

               -L 'LABEL'

        blob.png

    4. 其他工具

      1. blkid:块设备属性信息查看

        blkid [OPTION]… [DEVICE]

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

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

        blob.png

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

        e2label DEVICE [LABEL] (可以查看和设定label)

        blob.png

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

        tune2fs [OPTION]… [DEVICE]

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

                 -L 'LABEL':修改卷标

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

                 -j: 将ext2升级为ext3

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

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

                 -U UUID: 修改UUID号;

        blob.png

      4. dumpe2fs:查看ext系列文件系统的全局信息

        dumpe2fs device

        -h:查看超级块信息

      5. fsck:文件系统检查命令(Note: FS_TYPE一定要与分区上已经文件类型相同)

        fsck.FS_TYPE /dev/DEVICE

        fsck -t FS_TYPE /dev/DEVICE

            -a: 自动修复错误(存在风险)

            -r: 交互式修复错误

        blob.png

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

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

(0)
上一篇 2016-06-09 20:23
下一篇 2016-06-09 22:15

相关推荐

  • 马哥教育网络20期—nginx

    Nginx 一. Nginx 特性 二. Nginx 基本架构 三. Nginx 基本功能 四. Nginx 安装 五. Nginx 配置文件 六. Nginx http服务功能测试 七. Nginx LNMP 一. Nginx 特性 模块化,目前只能将模块编译进Nginx,暂时不支持动态装卸载模块.(httpd优势) 可靠性,一个主进程(master)控制…

    Linux干货 2016-06-26
  • Linux文本处理三剑客之awk详解

    前言 awk是一款强大的报告生成器,不同于sed和grep,它的侧重点是如何把文本信息更好的展示出来,常用与统计和格式化输出。awk相当于微型的shell,有着自己一套语法结构,例如:循环结构,数组,条件判断,函数,内置变量等功能。处理对象一般纯文本文件或纯文本信息。 用法详解 基本语法 awk [options] 'progra…

    Linux干货 2015-04-29
  • 网络管理2

    六、配置网络     跨网络通信:路由     路由分类:         主机路由         网络路由 &nbs…

    Linux干货 2016-09-09
  • Linux下用户属性的更改

      Linux下更改用户的属性一般使用usermod命令   基本格式如下:            Usermod[options]  login      [options]中具体参数如下:    -u  U…

    Linux干货 2017-05-30
  • 如何使用openssl工具创建私有CA

    一、CA及证书 非对称加密是为了保证互联网中通讯信息安全使用的一种算法,密钥是成对出现(公钥和私钥),它的特点是发送方A使用接收方B的公钥加密数据,所有只有B拥有与之配对的私钥解密该数据,反之亦然。那么,A和B之间怎么交换得到对方的真实安全的公钥呢?此时就需要一个权威的机构来验证公钥的合法性,这个机构称之为CA(Certification Authority…

    2017-07-16
  • Linux Cluster之keepalived及keepalived + LVS DR的实现

      一、HA Cluster基础 系统可用性A=MTBF/(MTBF+MTTR) MTBF:平均无故障时间 MTTR:平均修复时间 降低MTTR的方式:冗余(redundent) 衡量标准:几个9 90%、99%、99.9%… 提升系统可用性的办法之一:降低MTTR 通过冗余(redundant)的方式能够避免单点故障(SPoF),从而…

    2016-11-02