Linux磁盘知识,分区与文件系统

硬件设备在Linux系统中的表现

    设备文件

     I/O Ports: I/O设备地址

     一切皆文件:

        open(), read(), write(), close()

     设备类型:

        块设备: block,存取单位“块”,磁盘

        字符设备: char,存取单位“字符”,键盘

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

     设备号码:

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

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

   

硬盘接口类型

并行:

    IDE: 133MB/s

    SCSI: 640MB/s

串口:

        SATA: 6Gbps

        SAS: 6Gbps

        USB: 480MB/s

    rpm: rotations per minute(转速)


设备文件

磁盘设备的设备文件命名: /dev/DEV_FILE

IDE: /dev/hd

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

    不同设备: a-z

    /dev/sda, /dev/sdb, …

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

    /dev/sda1, /dev/sda5


硬盘物理结构


    硬盘存储术语

     head:磁头

     track:磁道

     cylinder: 柱面

     secotr: 扇区, 512bytes

   

        使用分区空间

         设备识别

         设备分区

         创建文件系统

         标记文件系统

         在/etc/fstab文件中创建条目

         挂载新的文件系统


    磁盘分区

为什么是分区?

优化I/O性能

实现磁盘空间配额限制

提高修复速度

隔离系统和程序

安装多个OS

硬盘分区

       为什么是分区?

        优化I/O性能

        实现磁盘空间配额限制

        提高修复速度

        隔离系统和程序

        安装多个OS


    分区

     两种分区方式: MBR, GPT

     MBR: Master Boot Record, 1982年, 使用32位表示扇区数,分区不超过2T

     如何分区:按柱面

     0磁道0扇区: 512bytes

        446bytes: boot loader

        64bytes:分区表

        16bytes: 标识一个分区

        2bytes: 55AA

      4个主分区; 3主分区+1扩展(N个逻辑分区)


    MBR分区结构


    GPT分区

         GPT:GUID patition table 支持128个分区,使用64位,支

        持8Z(512Byte/block ) 64Z (4096Byte/block)

         使用128位UUID 表示磁盘和分区 GPT分区表自动备份在头

        和尾两份,并有CRC校验位

         UEFI (统一扩展固件接口)硬件支持GPT


        GPT分区结构

        EFI部分又可以分为4个区域: EFI信息区(GPT头)、分区表、 GPT分区、备份区域

    管理分区

         列出块设备

        blkid

         创建分区使用:

            fdisk 创建MBR分区,也支持GPT,对于一块硬盘,最多只能管理15分区

            gdisk 创建GPT分区

            GNU parted 高级分区操作(创建、复制、调整大小等等)

         partprobe-重新设置内存中的内核分区表版本

         fdisk /dev/sdb

         gfisk /dev/sdb

         # fdisk -l [-u] [device…]

         子命令:

         p 分区列表

         t 更改分区类型

         n 创建新分区

         d 删除分区

         w 保存并退出

         q 不保存并退出

        分区工具fdisk和gdisk

    

    同步分区表

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

        # cat /proc/partations

           通知内核重新读取硬盘分区表

            新增分区用

        partx -a -n M:N /dev/DEVICE

        kpartx -a /dev/DEVICE -f: force

    删除分区用

        partx -d -n M:N /dev/DEVICE

        centos6: –nr N-M

         CentOS 5, 7: 使用partprobe

         partprobe [/dev/DEVICE]

    

    parted命令

         parted的操作都是实时生效的,小心使用

         用法: parted [选项]… [设备 [命令 [参数]…]…]

        parted /dev/sdb mklabel gpt|msdos

        parted /dev/sdb print

        parted /dev/sdb mkpart primary 1 200 (默认M)

        parted /dev/sdb rm 1

        parted -l

    

    文件系统

         文件系统是操作系统用于明确存储设备或分区上的文件的方

        法和数据结构;即在存储设备上组织文件的方法。操作系统

        中负责管理和存储文件信息的软件结构称为文件管理系统,

        简称文件系统。

         从系统角度来看,文件系统是对文件存储设备的空间进行组

        织和分配,负责文件存储并对存入的文件进行保护和检索的

        系统。具体地说,它负责为用户建立文件,存入、读出、修

        改、转储文件,控制文件的存取,安全控制,日志,压缩,

        加密等。

    

    文件系统类型

     Linux文件系统: ext2, ext3, ext4, xfs( SGI) , btrfs(

            Oracle) , reiserfs, jfs( AIX) , swap

            swap: 交换分区

        光盘: iso9660

     Windows: fat32, ntfs

     Unix: FFS( fast) , UFS( unix) , JFS2

     网络文件系统: NFS, CIFS

     集群文件系统: GFS2, OCFS2( oracle)

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

     RAW:未经处理或者未经格式化产生的文件系统

    

    文件系统分类

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

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

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

        文件系统的组成部分:

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

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

         Linux的虚拟文件系统: VFS

         查前支持的文件系统: cat /proc/filesystems  

    

    创建文件系统

             mkfs命令:

            (1) # mkfs.FS_TYPE /dev/DEVICE

            ext4

            xfs

            btrfs

            vfat

            (2) # mkfs -t FS_TYPE /dev/DEVICE

            -L 'LABEL': 设定卷标

    

    创建ext文件系统

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

        -t {ext2|ext3|ext4}

        -b {1024|2048|4096}

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

(0)
317376161317376161
上一篇 2016-08-29 09:02
下一篇 2016-08-29 11:46

相关推荐

  • 好好学习 天天向上 先试试

    Linux干货 2016-10-27
  • Linux-start

    学习计划:参见N24学习时间与线路图. 目标:完成作业,考试过关。 宣言:人但有追求,世界亦会让路。

    Linux干货 2016-10-24
  • HA Cluste 的配置:keepalived:vrrp协议 双主模型

    keepalived:vrrp协议 双主模型 第一步配置出始环境: 准备两节点: 主节点:172.18.57.7 long1 备节点:172.18.57.8 long2 (1) 各节点时间必须同步; 同步时间: ~]# yum -y install chrony ~]# vim /etc/chrony.conf ~]# systemctl start chr…

    Linux干货 2017-05-15
  • MHA安装包及其依赖包下载

    MySQL MHA是一款在业界广泛部署的MySQL高可用软件。但是在安装时,需要安装较多依赖包,并且有些依赖包在操作系统中默认的yum源是不存在的,因此需要到多个地方去寻找相应的包,费时费力。特别是在某些公司的网络政策,只允许少数机器连接外网,因此部署MHA更是苦不堪言。     为了方便大家也是方便以后我自己的使用,…

    Linux干货 2016-12-05
  • Linux文件系统:从inode理解软链接与硬链接

    什么是inode? 在Linux磁盘存储文件系统中,我们以块划分磁盘为两部分:超级块(superblock)和数据块(data block);同时划分单文件为用户数据(user data)和元数据(meta data)两个部分。 用户数据记录的是文件的真实内容。比如你的血液、骨骼和各器官等等。 元数据这是附加于文件的属性信息。比如身高、体重、血型和年龄等等。…

    Linux干货 2016-08-07
  • shell脚本基础

    程序是由指令加数据组成 编程风格分为过程式和对象时 过程式:以指令为中心,数据服务于指令,适合小型程序 对象式:以数据为中心,指令服务于数据,社和大型程序 高级语言的执行方式分为编译型和解释型 编译型:先将高级语言通过编译器编译成二进制代码再执行 解释型:程序编写完成后不转换成二进制代码,在使用时才通过解释器解释运行,不生成二进制程序 shell就是一种解释…

    Linux干货 2016-08-18