Linux之文件系统管理

Linux之文件系统管理


   文件系统不仅包含着文件中的数据而且还有文件系统的结构,不同Linux发行版本之间的文件系统差别很少,主要表现在系统管理的特色工具以及软件包管理方式的不同,文件目录结构基本上都是一样的。

Linux的文件结构是单个的树状结构,根目录是“/”,其他目录都要位于根目录下。每个目录一般都存放


特定类型的文件,下表常见目录:

   /  根目录,只能包含目录,不能包含具体文件

   /bin  存放可执行文件。很多命令就对应/bin目录下的某个程序,例如 ls、cp、mkdir。/bin目录对

所有用户有效

   /dev  硬件驱动程序。例如声卡、磁盘驱动等,还有如 

/dev/null、/dev/console、/dev/zero、/dev/full 等文件

   /etc  主要包含系统配置文件和用户、用户组配置文件

   /lib  主要包含共享库文件,类似于Windows下的DLL;有时也会包含内核相关文件

   /boot  系统启动文件,例如Linux内核、引导程序等

   /home  用户工作目录(主目录),每个用户都会分配一个目录

   /mnt  临时挂载文件系统。这个目录一般是用于存放挂载储存设备的挂载目录的,例如挂载CD-ROM的cdrom目录

   /proc  操作系统运行时,进程(正在运行中的程序)信息及内核信息(比如cpu、硬盘分区、内存信息等)存放在这里。/proc目录伪装的文件系统proc的挂载目录,proc并不是真正的文件系统

   /tmp 临时文件目录,系统重启后不会被保存。

   /usr  /user目下的文件比较混杂,包含了管理命令、共享文件、库文件等,可以被很多用户使用

   /var 主要包含一些可变长度的文件,会经常对数据进行读写,例如日志文件和打印队列里的文件

   /sbin和 /bin 类似,主要包含可执行文件,不过一般是系统管理所需要的,不是所有用户都需要


   文件系统类型

       ext2:早期linux中常用的文件系统

       ext3:ext2的升级版,带日志功能

       ext4:ext4的升级版,增加很多新的功能

      RAMFS:内存文件系统,速度很快

    iso9660:光盘或光盘镜像

        NFS:网络文件系统,由SUN发明,主要用于远程文件共享

ocfs2, gfs2:集群文件系统

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

    

   创建文件系统工具

       mkfs命令:新建文件系统在指定的分区上

       语法 : mkfs [-V] [-t fstype] [fs-options] filesys [blocks] [-L Lable]

       常见参数选项

     device:检查的硬盘分区,例如:/dev/sdb1

         -V: 详细显示模式

         -t: 指定系统的类型,Linux 的预设值为 ext2

         -c: 检查分区是否有坏道

         -l bad_blocks_file : 将有坏道的block文件加到 bad_blocks_file 里面

      block: 指定block 的大小

         -L: 建立lable标签

        示例: 1、检查已经创建的/dev/sdb1

wKioL1Xn9OGB4jTEAAMIw_bkzsI057.jpg

            2、/dev/sdb1指定创建类型ext4

wKiom1Xn8tODQorWAALxR4EqB5Y420.jpg

wKioL1Xn9Pex4S7RAAP5hsmp3D4297.jpg

wKiom1Xn8tSR23diAADiiwOf_qM204.jpg


        mke2fs命令:用于创建磁盘分区上的“etx2/etx3”文件系统 

        语法 mke2fs(选项)(参数) 

        常见参数选项 

            -b:指定区块大小,单位为字节

            -c:检查是否有损坏的区块

            -f:指定不连续区段的大小,单位为字节 

            -F:不管指定的设备为何,强制执行mke2fs

            -i:指定字节/inode"的比例

            -N:指定要建立的inode数目 

            -L:设置文件系统的标签名称

            -m:指定给管理员保留区块的比例,预设为5% 

            -q:执行时不显示任何信息

            -r:指定要建立的ext2文件系统版本 

          示例:重新指定/dev/sdb1文件系统类型ext2,指定管理员保留区域比例7%

wKioL1Xn9RCDLgR0AAObDlMNqFM866.jpg

wKiom1Xn8u-SQ3QFAAWse6Zn8WQ061.jpg


    文件系统属性查看及调整工具

e2label:获取或设置ext2、ext3文件系统对应的分区的卷标

语法:e2label device [ new-label ]

        常见参数选项

           device:分区设备名称

        new-label:新设定的卷标名称,不能超过16字符

        示例:设定/dev/sdb1,新标签为mydata

wKioL1Xn9STBTwHxAACqEjpjs-w138.jpg

        tune2fs是调整和查看ext2/ext3文件系统的文件系统参数。文件系统自检,而且是可以通过tune2fs命令,自行定义自检周期及方式。

        语法:tune2fs [选项] device

        常用参数选项

            -l:查看文件系统信息

            -c:max-mount-counts 设置强制自检的挂载次数,如果开启,每挂载一次mount conut就会加1,超过次数就会强制自检

            -i:interval-between-checks[d|m|w] 设置强制自检的时间间隔[d天m月w周]

            -m:reserved-blocks-percentage 保留块的百分比

            -j:将ext2文件系统转换为ext3类型的文件系统

            -L:volume-label 类似e2label的功能,可以修改文件系统的标签

            -r:reserved-blocks-count 调整系统保留空间

            -o:设置或清除默认挂载的文件系统选项

            -O:文件系统属性的启动或关闭

        示例:转换/dev/sdb1文件系统为ext3,更新标签为mydata1

wKioL1Xn9UXTLfB_AAGzl1Pzpc0890.jpg         

        dumpe2fs:显示“ext2/ext3”文件系统的超级块和块组信息

        语法:dumpe2fs [-bh] 设备名称

        常见参数选项

            -h :显示超级块信息

        示例:显示/dev/sdb1超级块组信息

wKiom1Xn8zHTgNs6AAPiaUZDzoU141.jpg

   文件系统检测工具

       fsck命令:用于检查并且试图修复文件系统中的错误

       语法:fsck(选项)(参数) 

       常见参数选项

           -a:自动修复文件系统 

           -A:依照/etc/fstab配置文件的内容,检查文件内所列的全部文件系统

           -N:不执行指令,仅列出实际执行会进行的动作 

           -P:当搭配"-A"参数使用时,则会同时检查所有的文件系统

           -r:采用互动模式,在执行修复时询问问题,让用户得以确认并决定处理方式 

           -R:当搭配"-A"参数使用时,则会略过/目录的文件系统不予检查 

           -s:依序执行检查作业,而非同时执行 

           -t<文件系统类型>:指定要检查的文件系统类型 

           -V:显示指令执行过程。 

           示例:如不清楚哪个文件出了问题,可以直接: fsck ---->输入:y


        e2fsck命令:用于检查第二扩展文件系统的完整性,通过适当的选项可以尝试修复出现的错误,


一般用于ext系列。

        e2fsck执行后的传回值及代表意义如下: 

        0 没有任何错误发生

        1 文件系统发生错误,并且已经修正

        2 文件系统发生错误,并且已经修正

        4 文件系统发生错误,但没有修正

        8 运作时发生错误

       16 使用的语法发生错误

      128 共享的函数库发生错误

        语法:[选项] FLIE 

        常见参数选项

        -a:自动修复文件系统不提示; 

        -d:显示排错信息; 

        -f:即使文件系统没有错误迹象,仍强制地检查正确性; 

        -F:执行前先清除设备的缓冲区; 

        -t:显示时间信息; 

        -v:执行时显示详细的信息;

        -y:采取非互动方式执行,所有的问题均设置以"yes"回答。

      示例:检查/dev/sdb1是否有问题,如发现问题便自动修复: 

            e2fsck -a -y /dev/sdb1


    文件系统的挂载

        挂载文件系统,目前有两种方法: 用mount来挂载;通过/etc/fstab文件来开机自动挂载

        语法:mount [options] [-o mount_options] device directory

        [options]常见参数选项

        -a:挂载/etc/fstab配置文件中指定的文件系统

        -r:以只读方式挂载文件系统

        -w:以可读/写模式挂载文件系统

        -t fstype:指定被挂载的文件系统类型为fstype

        -o mount_options:在命令行中指定挂载选项


        [-o mount_options]常见参数选项

        dev:允许读取文件系统上的字符设备或块设备

        exec:运行执行挂载分区上的程序

        noexec:禁止执行该文件系统上的程序

        nouser:禁止非root用户挂载或卸载该文件系统

        user:允许某个普通用户挂载该文件系统,但禁止其他普通用户卸载该文件系统

        users:允许任何用户可以挂载或卸载该文件系统

        fuser查看或终止正在访问指定挂载点:

  # fuser -v MOUNT_POINT  //查看正在访问挂载点

           # fuser -km MOUNT_POINT  //终止所有正在访问指定的挂载点的进程

       相关挂载配置文件:/etc/fstab,理解配置文件中个字段信息:

         要挂载的设备或伪文件系统  :设备文件、LABEL=、UUID=、伪文件系统名称

         挂载点   :挂载文件名称

         文件系统类型           :ext2、ext3、ext4、sawp

         挂载选项           :defaults 

         转储频率             :0: 不转储   1: 每天转储   2: 每隔一天转储

         自检次序                  :0:不自检     1:首先自检,通常只有/才为1

         

        示例:

[root@localhost ~]# cat /etc/fstab 


#

# /etc/fstab

# Created by anaconda on Tue Aug 25 13:54:49 2015

#

# Accessible filesystems, by reference, are maintained under '/dev/disk'

# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info

#

/dev/mapper/MyVG01-root /                       xfs     defaults        0 0

UUID=af94db7d-e070-4d85-9e0c-ef44c8404033 /boot                   xfs     defaults        0 


0

/dev/mapper/MyVG01-usr  /usr                    xfs     defaults        0 0

/dev/mapper/MyVG01-swap swap                    swap    defaults        0 0


        示例:/dev/sdb1挂载在/tmp/Mydata1上,并且开机自动挂载,查看当前挂载点

wKiom1Xn81WDJ4CDAAhPBoQwIkE797.jpg

wKioL1Xn9XiiHu2DAAJzyYw4tug914.jpg

        umount命令:用来卸载某个目录下已经挂载的文件系统

        语法:umount [options] directory

        options:

        -a:卸载/etc/mtab文件中记录的所有文件系统

        -t fstype:只卸载fstype类型的文件系统

        示例:取消/tmp/Mydata1挂载

wKiom1Xn82iT_zwCAAnT8jV_MLk467.jpg

     交换分区简述:当系统的物理内存不够用的时,就需要将物理内存中的一部分空间释放出来,以供


当前运行的程序使用。那些被释放的空间可能来自一些很长时间没有什么操作的程序,这些被释放的空间


被临时保存到Swap空间中,等到那些程序要运行时,再从Swap中恢复保存的数据到内存中。因此系统总是


在物理内存不够时,才进行Swap交换

     一般设置swap大小:

     4G以内的物理内存,SWAP 设置为内存的2倍

     4-8G的物理内存,SWAP 等于内存大小

     8-64G 的物理内存,SWAP 设置为8G

     64-256G物理内存,SWAP 设置为16G

    注:交换分区的大小并不取决于物理内存的量,而是取决于系统中内存的负荷

      查看当前swap状态用free命令

wKioL1Xn9Z-AebJZAADMYdpliQk656.jpg

      启用交换分区:swapon 

      关闭交换分区:swapoff

     示例:磁盘添加swap,SWAP标签swap-files,大小2G,并设置开机自动挂载,挂载点为/tmp/swap(注

:fdisk ID的编号示83,它代表这个分区是ext的分区,82才是Linux swap文件系统)

wKiom1Xn89aRvSlXAAEDKb3kpGs046.jpg

wKiom1Xn8-fxIO4WAAIoQdolzyY227.jpgwKioL1Xn9h7izKDtAAPI4DV9qJQ269.jpgwKiom1Xn9AaRHe_xAATMwpyz7Ok866.jpgwKioL1Xn9jbD1nXYAAJM3dIrc_8194.jpgwKiom1Xn9B6T8luzAADYQHIf-MU425.jpgwKioL1Xn9kyiFBB9AAQNT0tWLJI275.jpgwKiom1Xn9Dfg8LBLAAGgaHkruoI111.jpg

     文件系统占用情况查看工具命令:free、df、du

     free命令:空闲的、已用的物理内存及swap内存,及被内核使用的buffer

     语法:free [选项]

     常见参数选项:

         -b:以Byte为单位显示内存使用情况

         -k:以KB为单位显示内存使用情况 

         -m:以MB为单位显示内存使用情况

         -g:以GB为单位显示内存使用情况

     命令比较简单,前面已经有示例做了演示,这里不在做演示

     

     df命令:查看文件系统的磁盘空间情况

     语法:df [选项] [文件]

     常见参数选项

         -h:方便阅读方式显示

         -i:显示inode信息



     du命令:查看使用空间的

      语法:du [选项][文件]

      常见参数选项

          -a:显示目录中个别文件的大小。   

          -m:以MB为单位输出。   

          -h:以K,M,G为单位,提高信息的可读性。

        -L<符号链接>:显示选项中所指定符号链接的源文件大小。     

          -l:重复计算硬件链接的文件。  

      示例:查看当前系统磁盘、/tmp/log目录使用情况

wKioL1Xn9n6h6Jf1AAJgEtb3e3w355.jpg

      linux链接文件:硬链接(Hard Link)、符号链接(Symbolic Link)/也称软链接。ln命令默认产生硬链接。

      硬连接:指通过索引节点来进行连接。在Linux的文件系统中,保存在磁盘分区中的文件不管是什么类型都给它分配一个编号,称为索引节点号(Inode Index)。在Linux中,多个文件名指向同一索引节点是存在的。一般这种连接就是硬连接。硬连接的作用是允许一个文件拥有多个有效路径名,这样用户就可以建立硬连接到重要文件,以防止“误删”的功能。其原因如上所述,因为对应该目录的索引节点有一个以上的连接。只删除一个连接并不影响索引节点本身

和其它的连接,只有当最后一个连接被删除后,文件的数据块及目录的连接才会被释放。也就是说,文件真正删除的条件是与之相关的所有硬连接文件均被删除。


     符号连接(Symbolic Link),也叫软连接。类似于Windows的快捷方式。它实际上是一个特殊的文件。在符号连接中,文件实际上是一个文本文件,其中包含的有另一文件的位置信息。

     练习:新建aa、bb、cc文件,aa硬链接bb,aa软链接cc,aa插入 mytest,删除aa文件,查看bb,cc文件

wKioL1Xn9tHxKs3rAAVFYAiSlV4891.jpgwKiom1Xn9LeRiKyuAAF7ORv0l9g010.jpg

     通过练习得知:

     1、删除符号连接cc,对aa,bb无影响

     2、删除硬连接bb,对aa,cc也无影响

     3、删除原文件aa,对硬连接bb没有影响,导致符号连接cc失效

     4、同时删除原文件aa,硬连接bb,整个文件会真正的被删除


练习:创建一个10G文件系统,类型为ext4,要求开机可自动挂载至/mydata目录;

wKioL1Xn9vGgQ3i2AAETumHEkMw185.jpgwKiom1Xn9Nny8LsMAAR17SIHgGk708.jpgwKioL1Xn9wbD5GjnAATQ9V8xxbk942.jpgwKiom1Xn9PCixumNAAGuixtXN9s671.jpg


你可能感兴趣的:(swap,fsck,mkfs,mke2fs,e2fsck,partx)