​Linux基础知识之磁盘及文件系统管理(一)

1.设备类型:

    块设备(block):随机访问,数据交换单位是"块"

    字符设备(character):线性访问,数据交换的单位是"字符"

2.设备文件:FHS

    /dev

    设备文件:关联至设备的驱动程序;设备的访问入口

    设备号:

        major:主设备号,区分设备类型;用于标明设备所需要的驱动程序

        minor:次设备号,区分同种类型下的不同设备;是特定设备的访问入口

        设备文件的文件名不是随便定义的是由ICANN(互联网名称分配机制)

    磁盘的并口和串口:

        并口:同一线缆可以接多块设备

            IDE:两块设备,主设备和从设备

            SCSI:宽带:16-1个设备 窄带:8-1个设备

        串口:同一设备上只可以接一个设备

            SATA,SAS

    磁盘命名:

        IDE:/dev/hd[a-z]

            一般就是四个 hda hdb hdc hdd 

        SCSI,SATA,USB,SAS:/dev/sd[a-z]

    引用设备的方式:

        设备文件名:

        卷标:

        UUID:

    分区:/dev/sda# (/dev/sda1,/dev/sda2,…)

    注意:CentOS6和CentOS7统一将硬盘的文件标识为/dev/sd[a-z]#

   磁盘分区:MBR和GPT

    MBR:Master Boot Record(主引导扇区) 512字节

        分为三部分:446bytes:bootloader,引导启动操作系统的程序

              64bytes:FAT,文件系统分区表,每16字节标识一个分区,一共只能有四个分区

              2bytes:说明当前MBR区域的有效性标记 55AA代表为有效

        若当前系统有剩余的空间未被文件系统的分区表所标识,这些剩余的空间将无法使用。

    GPT:GPT是一种新型磁盘模式,与我们常用的MBR磁盘相比更稳定,自纠错能力更强,

        一块磁盘上主分区数量不受(4个的)限制,支持大于2T的总容量及大于2T的分区

        (几乎没有上限,最大支持到128个分区,分区大小支持到256TB

        主分区和扩展分区的标识:1-4 逻辑分区:5+:无论主分区和扩展分区的数量是4个,但是逻辑分区的编号都是从5开始的。

3.mknod命令:

    make block or character special files:创建字符或块的特殊文件

    mknod [OPTION]… NAME TYPE [MAJOR MINOR]

    -m MODE:创建后的设备文件的访问权限

    mknod testv b 1 5 (创建一个名为testv的块设备,主设备号为1,次设备号为5)

4.fdisk命令:用于管理磁盘分区表

    (1)查看磁盘的分区列表

        fdisk -l:列出制定磁盘设备上的分区情况

        fdisk -l /dev/sd[a-z]:查看/dev/sd[a-z]的磁盘分区表

            CentOS6标识的是从哪个柱面开始到哪个柱面结束

            CentOS7标识的是从哪个扇区开始到哪个扇区结束

        Linux正常的分区Id用83来表示,扩展分区Id用5来表示,交换分区Id用82表示

    (2)管理分区

        ①lsblk:列出块设备;

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

        ③fdisk /dev/sd[a-z](device)  

        fdisk提供了一个交互式接口来管理分区,它有许多自命令,分别用于不同的管理功能;

        所有的操作均在内存中完成,没有直接同步到磁盘;只有当使用w保存时,才会同步到磁盘上;

            m:获取fdisk的帮助信息

            n:添加一个新的分区

            w:保存退出

            d:删除一个分区

            t:表示更改一个分区Id号

            l:列出系统上所有的分区类型(已知Id)

            q:不保存并退出

            p:列出系统上已有的分区列表

        ④parted命令:parted的操作都是实时生效的,请小心使用

        parted [options] [device [command [options…]…]]

        parted /dev/DEVICE mklabel gpt|msdos (将磁盘类型改变为GPT|MBR)

        parted /dev/DEVICE print (列出目前本机的分区表资料)

        parted /dev/DEVICE mkpart {primary|logical|extended} [ext3|ext4|xfs|..] 开始 结束

                parted /dev/DEVICE mkpart primary 1 200(默认M)(设置/dev/DEVICE为主分区且分区大小为200M)

                parted /dev/DEVICE mkpart logical ext4 19.2GB 19.7GB

        parted /dev/DEVICE rm 1 将刚才新建的1号磁盘分区删除

        parted -l 显示系统上面所有的磁盘分区

    (3)新建分区

        a.fdisk /dev/sda:管理/dev/sda分区,以/dev/sda为例

        b.使用p命令去查看当前系统上面已有的分区列表

        c.n新建一个分区,当系统上主系统分区和扩展系统分区的和等于4时,即三主一从时,使用n命令会自动创建分区为扩展分区;当主分区和扩展分区的数量小于4时,则需指定为创建主分区或扩展分区(当系统分区中只有小于等于三个主分区并且扩展分区不存在的时候,需要创建扩展分区),之后再去按照说明利用n去创建新的磁盘分区

        d.n键创建完之后会显示添加的逻辑分区(主分区)的分区号,然后回车

        e.显示默认的扇区号(CentOS7系列显示的是扇区号,CentOS6系列显示的是柱面号)

        f.使用+#{K,M,G}选择要添加的分区的大小(KMG)

        g.使用p命令去查看系统上的分区(现在对于磁盘来说还没有被修改,只有使用w退出之后,才能被修改)

        h.确定没有错误了 w保存退出,但是现在的磁盘并没有被内核Kernel所识别

        注意:在已经分区并且已经挂载其中某个分区的磁盘设备上创建的新分区,内核可能在创建完成后无法直接识别;

        使用cat /proc/partitions查看系统上面内核所识别到的磁盘分区,需要通知内核强制重读磁盘分区表paetx -a [device](CentOS6为例)

        使用cat /proc/partitions确保内核已经读取到了所有的新创建的磁盘分区才算成功

    (4)创建文件系统:(元数据和数据)

        格式化:低级格式化和高级格式化

            低级格式化:分区之前,是出厂时由硬件制造厂商开始的,主要为了划分磁道

            高级格式化:分区之后,对于分区进行格式化,创建文件系统

        文件系统分为 元数据区和数据区

            元数据区:

                文件元数据:inode (index node)

                    主要放文件属性信息,大小、权限、属主属组、时间戳、数据块指针等,但不包含文件名,文件名存放于目录

                符号链接文件:存储数据指针的空间当中存储的是真实文件的访问路径;

                设备文件:存储数据指针的空间存储的是设备号(major,minor)

            bitmap index:位图索引

                磁盘块位图索引:

                    在元数据区预留出一部分小空间,存储磁盘块的有无存储,1表示已使用,0表示空闲状态

                inode位图索引:

                    在元数据区预留出一部分小空间,元数据区inode的有无存储,1表示已使用,0表示空闲状态

            数据区:

                需要预留出一部分供管理员进行对于磁盘文件的操作(当磁盘已满或者磁盘出现什么问题)

            超级块:定义了系统上面有多少块组,每个块组从哪个磁盘块到哪个磁盘块的编号

5.cat /proc/partitions 查看系统上面内核识别到的磁盘分区

    通知内核强制重读磁盘分区表:

        CentOS5 7:

            partprobe [device]

        CentOS6:partx kpartx

            partx -a [device]:有时需要使用命令行#遍,才能确保读取磁盘成功。

            kpartx -af [device]

    分区创建工具:

        parted sfdisk

6.文件系统:

    VFS:Virtual File System

        Linux的文件系统:ext2,ext3(CentOS5),ext4(CentOS6),xfs,btrfs(CentOS7),reisefs(反删除内容强)

        光盘:iso9660

        网络文件系统:nfs,cifs

        集群文件系统:gfs2,.ocfs2

        内核级分布式文件系统:ceph

        windows的文件系统:vfat,ntfs

        伪文件系统:proc,sysfs,tmpfs,hugepagefs

        Unix文件系统:UFS,FFS,JFS

        交换文件系统:swap

        用户空间的分布式文件系统:mogilefs,moosefs,glusterfs

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

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

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

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

    文件系统的组成部分:

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

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

    注意:xfs是企业级64位存储工具,文件大小没有上限值

        CentOS5.x默认的是ext3文件系统,CentOS6.x默认使用的ext4文件系统,CentOS7.x默认使用的是xfs文件系统

        CentOS6.x上面默认是没有预装xfs文件系统,使用xfs系统时,需要使用yum源安装xfsprogs,之后才能使用xfs文件系统,

7.链接文件:访问同一个文件的不同路径;

    硬链接:指向同一个inode的多个文件路径

        特性:

        (1)目录不支持硬链接;为了避免循环连接;

        (2)硬链接不能跨文件系统;

        (3)创建硬链接会增加inode引用计数

    符号链接:指向一个文件路径的另一文件路径

        特性:

        (1)符号链接与文件是两个各自独立的文件,各自自己的inode;对原文件创建符号链接不会增加引用计数;

        (2)支持对目录创建符号链接,可以跨文件系统;

        (3)删除符号链接文件不会影响原文件,但是删除原文件,符号指定的路径不存在,此时会变成无效链接;

8.内核级文件系统的组成部分:

    文件系统驱动:由内核提供

    文件系统管理工具:由用户控件的应用程序提供

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

(0)
上一篇 2016-08-29 08:49
下一篇 2016-08-29 08:49

相关推荐

  • linux根下的文件

    /boot:系统启动时要加载引导的静态文件,内核和ramdisk及grub等 /bin:系统自身启动和运行时可能用到的核心二进制程序,不能关联至独立分区。 /sbin:管理类基本命令,不能关联至独立分区,系统启动便会用到的程序。 /lib:基本共享库文件,以及内核模块文件 /lib64:专用于x86_64系统上的辅助共享库文件存放位置 /etc:大多数应用程…

    Linux干货 2017-03-30
  • find详解(Blog 2)

    find与locate特性、find命令

    Linux干货 2017-11-08
  • 马哥Linux第四周作业

    1.复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其他用户均没有任何访问权限 ~]# cp -r /etc/skel/ /home/user1 ~]# chmod -R g0-rwx /home/user1/ 2.编辑/etc/group文件,添加组hadoop 编辑/etc/group 写入:hado…

    2018-01-07
  • Linux bash编程基础语法总结

    前言 在Linux学习过程中,我们无可避免的会碰到一个既让人喜欢,又令人头疼的神奇的东西——bash编程,即shell脚本。那么什么是shell脚本呢?shell是一个命令语言解释器,而shell脚本则是Linux命令的集合,按照预设的顺序依次解释执行,来完成特定的、较复杂的系统管理任务,类似于Windows中的批处理文件。本文带来的是bash编程的基础语法…

    Linux干货 2015-04-04
  • N22-Dexter-第二周博客作业

    1、Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示?    Linux上的文件管理类命令有cp,rm,mv    cp命令:copy    常用选项:       -i:交互式复制,即覆盖之前提醒用户确认;     &nbsp…

    Linux干货 2016-08-24
  • 程序包管理之rpm

    程序包管理器不同公司的发行版:                         debian:dpt管理器 &…

    Linux干货 2016-08-22