Linux学习之文件系统管理

一、Linux文件系统管理:

    mkfs,

    mkfs -t type=mkfs.type : 即表示这两种用法的效果一致

   

    1、ext的专属文件系统格式化工具

    mke2fs

       create an ext2/ext3/ext4 filesystem//创建ext系列的文件系统

    用法:

     mke2fs [option]....DEVICE

      [option]:参数

       -t {ext2|ext3|ext4} :指定是那种形式的ext文件系统

       -b {1024|2048|4096} :指定块大小,如果存储的文件是大文件,则块大小应该选着4096 ,块大小应该根据存放文件来决定,或者根据经验来选择;

       -L ‘lebel’ :指定卷标

       -j :has_journal日志功能,等于mke2fs -t ext3,可以使用此命令将ext2文件系统升级至ext3文件系统,且对数据无影响;

       -i #:Specify the  size  of  each  inode  in  bytes.以字节的方式指定每个inode的大小

       -N #:inode的数量

       -m #: 预留磁盘空间占据多大百分比的空间,为后续的管理使用,后默认跟%

       -o FEATURE[....] :指定开启文件系统的特性;

        -o ^FEAYURE[....]:关闭此特性

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

       a、 e2label

             Change the label on an ext2/ext3/ext4 filesystem//更改ext系列文件系统的卷标

            用法:

           e2label device [ new-label ]


       b、tune2fs:显示ext系列文件系统的属性,或调整期属性的;

            -l:显示超级块中的信息,显示整个文件的属性及布局等相关信息

            -L ‘LABEL’:修改卷标

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

            -j:开启其日志功能,能ext2文件系统升级为ext3文件系统

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

            -o:文件系统默认挂载选项的启用或关闭

        例子:

wKioL1X0IBuxdzACAATTaCNy4b0704.jpg

       c、dumpe2fs:

            -h:仅显示超级块信息

  wKioL1X0IJyib7BPAAVDYfwtB6s626.jpg


    3、文件系统检测修复:

        fsck:filesystem check

        fsck -t type

         fsck.type

           -a:自动修复错误

           -r:交互式修复错误

           -f:强制检测

wKioL1X0ITLSQYbaAAD2q32HReA492.jpg

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

           -y:自动回答为‘yes’

           -f:force

wKiom1X0Hy-iBhOQAADRUG2dUA0347.jpg



     4、文件系统的挂载和使用

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

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

       设备挂载的目录称之为挂载点

注意:挂载点在挂载之后,其内部原有的文件将被隐藏,待卸载之后才能恢复;所以建议使用空白目录做挂载点

 

     挂载方法:

      mount:通过读取/etc/mtab文件来显示当前系统所有已挂载的设备;

 wKiom1X0H2Lw0fZOAAJjdgpJ4tg251.jpg


      mount -a :挂载/etc/fstab文件中德所有支持自动挂载的文件系统

wKioL1X0Ic7DhNN_AAVjcYX68Dg325.jpg

      mount [option] [-o option] DEVICE MOUNT_POINT

         [option]:命令选项

         [-o option]:挂载选项


       DEVICE:要挂载的设备

          1)、设备文件如/dev/sda

          2)、卷标:-L ‘LABEL’

          3)、UUID

          4)、伪文件系统名称

        MOUNT_POINT:挂载点

     

        [option]:命令选项

           -t type:文件系统类型

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

           -w:以读写方式挂载此文件系统

           -n:每个文件系统在挂载是都会自动更新/etc/mtab文件,-n用于禁止次功能;此时如果想查看挂载的所有文件系统,可以是用cat /proc/mounts

           -a:自动挂载所有支持自动挂载的设备

           -B:绑定目录至另外一个目录上


          [-o option]挂载选项

             -async:异步模式

             -sync:同步模式

             atime/noatime:是否更新访问时间戳

             diratime/nodiratime:是否更新目录的访问时间戳

             auto/noauto:是否允许次设备被自动挂载

             exec/noexec:是否允许执行此文件系统上的应用程序

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

              suid/nosuid:是否支持在此设备上使用特殊权限

              remount:重新挂载

              ro:只读

              rw:读写

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

              acl:是否支持在此设备上使用facl

              defaults:rw、suid、dev、exec、auto、nouser、and async

wKiom1X0IEij8LknAAWBCi61ms0217.jpg


        umount:卸载命令

          umount DEVICE

          umount MOUNT_POINT

wKiom1X0IM_AsHXwAAKWcgSezSU301.jpg

         查看正在访问指定挂载点的进程;

            fuser -v MOUNT_POINT

wKioL1X0IsODOsArAACao2VFRiI771.jpg

         终止所有正在访问指定的挂载点的进程

            fuser -km MOUNT_POINT


   5、交换分区

      free命令:

        查看memory和swap的使用状态

            -m:以MB为单位

            -g:以GB为单位

wKiom1X0ITnSzUmpAAJiFmXEBLY710.jpg

      mkswap:创建交换分区

         mkswap [option] DEVICE

              -L 'LABEL'

wKiom1X0Im2Q-Fs4AAGbUvNlVqo128.jpg

      swapon:启用交换分区

         swapon [option] [DEVICE]

             -a:激活所有交换分区

             -p PRIORITY:设定其优先级

wKiom1X0IzOgjPbEAADv3xeXBlg194.jpg

      swapoff:禁用交换分区

         swapoff [option] [DEVICE]

wKioL1X0JXTBL9szAAD_X9FTxyA443.jpg


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

     df du

        df :disk free   

          -h:以人类易懂的方式显示

          -i:inode的数量

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

wKiom1X0I_ihp6l7AATsvT5-tEU553.jpg

         du:disk usage

           -h:以人类易懂的方式显示

           -s:和

wKiom1X0JAPQ3ofxAACAQLbPuCM168.jpg

    7、文件系统相关挂载配置文件/etc/fstab

        每行定义一个文件系统

       其格式如下:

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


   要挂载的设备

      设备文件 、卷标 、uuid、伪文件系统名称


    挂载选项

      defaults

  

    转储频率

      0:不转储

      1:每天转储

      2:每隔一天转储


     自检次序:

       0:不自检

       1:首先自检,一般是跟目录使用

       2:

wKioL1X0Jm2TMNMgAAOmy4l7vJw315.jpg


    8、文件系统上的链接文件

       链接文件分两类:

         硬链接:

           两个路径指向同一个inode

             不能对目录进行

             不能跨分区进行

             指向同一个inode的多个不同路径,创建文件的硬链接会增加inode的计数,删除硬链接仅是删除其一个访问路径,直到最后一个路径被删除;

          符号链接

            链接文件的数据指向另一个文件路径


            可对目录进行

            可以跨分区

            指向的是另一个文件路径,而非inode


     ln [-s] SRC DEST

       -s:symbolic link

       -v:verbose


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

[root@pizi ~]# fdisk /dev/sdb  
Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
Building a new DOS disklabel with disk identifier 0x12b83f86.
Changes will remain in memory only, until you decide to write them.
After that, of course, the previous content won't be recoverable.

Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)

WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
         switch off the mode (command 'c') and change display units to
         sectors (command 'u').

Command (m for help): m
Command action
   a   toggle a bootable flag
   b   edit bsd disklabel
   c   toggle the dos compatibility flag
   d   delete a partition
   l   list known partition types
   m   print this menu
   n   add a new partition
   o   create a new empty DOS partition table
   p   print the partition table
   q   quit without saving changes
   s   create a new empty Sun disklabel
   t   change a partition's system id
   u   change display/entry units
   v   verify the partition table
   w   write table to disk and exit
   x   extra functionality (experts only)

Command (m for help): n  //新建分区
Command action
   e   extended
   p   primary partition (1-4)
p    //选择主分区
Partition number (1-4): 1   //第一个
First cylinder (1-1305, default 1):
Using default value 1
Last cylinder, +cylinders or +size{K,M,G} (1-1305, default 1305): +10G  //划分10G的大小
Value out of range.
Last cylinder, +cylinders or +size{K,M,G} (1-1305, default 1305):
Using default value 1305

Command (m for help): w    //保存分区配置
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.
[root@pizi ~]# 


[root@pizi ~]# mkfs -t ext4 /dev/sdb1   //格式化文件系统
mke2fs 1.41.12 (17-May-2010)
文件系统标签=
操作系统:Linux
块大小=4096 (log=2)
分块大小=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
655360 inodes, 2620595 blocks
131029 blocks (5.00%) reserved for the super user
第一个数据块=0
Maximum filesystem blocks=2684354560
80 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
        32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632

正在写入inode表: 完成
Creating journal (32768 blocks): 完成
Writing superblocks and filesystem accounting information: 完成

This filesystem will be automatically checked every 29 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.
[root@pizi ~]#

wKioL1XwS8XSERK2AAOGqYLMqrs004.jpg

[root@pizi ~]# mount -a //自动挂载支持挂载的设备
[root@pizi ~]# mount   //查看现在的挂载情况
/dev/mapper/vg_pizi-LogVol03 on / type ext4 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
tmpfs on /dev/shm type tmpfs (rw,rootcontext="system_u:object_r:tmpfs_t:s0")
/dev/sda1 on /boot type ext4 (rw)
/dev/mapper/vg_pizi-LogVol01 on /usr type ext4 (rw)
/dev/mapper/vg_pizi-LogVol02 on /var type ext4 (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
/dev/sdb1 on /mydata type ext4 (rw)
[root@pizi ~]#