1、查看分区:fdisk

 fdisk -l [-u] [device...]     列出指定设备上的分区

如:

[root@localhost ~]# fdisk -l /dev/sda 

Disk /dev/sda: 16.1 GB, 16106127360 bytes, 31457280 sectors

Units = sectors of 1 * 512 = 512 bytes

Sector size (logical/physical): 512 bytes / 512 bytes

I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk label type: dos

Disk identifier: 0x000d2b21

磁盘分区           开始扇区    结束扇区    所含块数    分区类型  分区系统

   Device Boot      Start         End      Blocks    Id    System

/dev/sda1   *        2048     2099199      1048576     83    Linux

/dev/sda2         2099200    31457279      14679040     8e    Linux LVM


2、管理分区:fdisk DEVICE

fdisk提供了一个交互式接口来管理分区,它有许多子命令,分别用于不同的管理功能,所有的操作均在内存中完成,,没有直接同步到磁盘,直到使用“w“命令保存到磁盘上,操作才会生效。

如:

[root@localhost ~]# fdisk /dev/sda 

Welcome to fdisk (util-linux 2.23.2).


Changes will remain in memory only, until you decide to write them.

Be careful before using the write command.



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 //删除分区

   g   create a new empty GPT partition table

   G   create an IRIX (SGI) partition table

   l   list known partition types  //查看所有分区ID

   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): p


Disk /dev/sda: 16.1 GB, 16106127360 bytes, 31457280 sectors

Units = sectors of 1 * 512 = 512 bytes

Sector size (logical/physical): 512 bytes / 512 bytes

I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk label type: dos

Disk identifier: 0x000d2b21


   Device Boot      Start         End      Blocks   Id  System

/dev/sda1   *        2048     2099199     1048576   83  Linux

/dev/sda2         2099200    31457279    14679040    0  Empty


Command (m for help): 

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

查看内核识别到的分区信息:#cat /proc/partitions


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

centos5:

#partprobe [device]

centos6/7:

#partx -a [device]

或#kpartx -af {device]



3、创建好分区并被内核识别后,创建分区文件系统:

-----------------------------------------------------------------------------------------

文件系统相关知识介绍:

创建文件系统就是格式化硬盘的过程。

格式化:

    低级格式化:分区之前进行的,一般用来划分磁道

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


文件系统介绍:

文件系统由元数据、数据组成。

文件元数据所包括的内容是文件索引节点号(inode:index node)

文件元数据主要存放文件属性的一些信息,如:文件大小、属组、属主、权限、时间戳等,除此之外,元数据区还存放数据块指针,数据块指针指向数据区的起始块位置和结束块位置。但是元数据区

不包括文件名。文件名是在数据区中的目录上存放的,不是在元数据中存放的。


特殊文件介绍:

    符号链接文件:存储数据指针的空间当中,存储的是真实文件的访问路径,自己不占据磁盘块空间。符号链接文件的大小就是指定的文件的”路径字符串“的大小。

    设备文件:存储数据指针的空间当中,存储的是设备号(major、minor);设备文件也不占据磁盘块空间。


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

    硬链接:指向同一个inode的多个路径,彼此间互不影响

    符号链接:元数据中的数据指针存放的不是指向磁盘块的数据,而是指向一个文件路径的另一个文件路径,它可以找到磁盘块数据


链接文件的特性:

硬链接特性:

    ①目录不支持硬链接

    ②硬链接不能跨文件系统

    ③创建硬链接文件会增加inode引用计算

创建硬链接文件:#ln 原文件 链接文件


符号链接文件特性:

    ①符号链接与文件是两个各自独立的文件,各有自己的inode

    ②支持对目录创建符号链接,可以跨文件系统

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

    ④对原文件创建符号链接文件不会增加引用计数。

创建符号链接:#ln -s 原文件 符号链接文件


    


bitmanp:位图索引

    由于元数据区和数据区中的文件较多,存放数据时怎么判断哪些inode未使用,哪些数据块未使用,用位图索引中的每一个bit对应一个inode或数据块,来标识其是否被使用。


文件查找过程:/var/log/message

查找message的过程是:从根入口找到“/”的inode,然后根据inode指针,查找数据块区域中“/”下的数据,一般是inode号、目录名,如inode为123,对应的文件名为var,然后在去元数据区查找123即var下文件,直到找到message文件。


vfs:虚拟文件系统

由于linux有众多文件系统,为了方便开发人员对文件系统的调用,在各种文件系统之上加了一层vfs,vfs提供统一的文件接口给开发人员。


vfs支持的种类:

   linux文件系统:ext2/3/4、xfs、btrfs、reiserfs ,除了ext2无日志功能,其他都有日志功能。

   光盘:ISO9660

   网络文件系统:nfs、cifs

   集群文件系统:gfs2、ocfs2

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

   wiondws文件系统:vfat、ntfs

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

   unix文件系统:ufs、ffs、jfs

   交换文件系统:swap

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


交换分区:

将硬盘伪装的虚拟内存与真实的内存数据进行交换,将真实内存中的不常用数据交换到虚拟内存中,需要时在交换回来。


文件系统的管理工具:

    创建文件系统工具:mkfs、mkfs.ext2、mkfs.ext3、mkfs.ext4、mkfs.xfs、mkfs.vfs、mkfs.btrfs

    检查及修复文件系统的工具:fsck、fsck.cramfs、fsck.ext3 、fsck.fat、fsck.minix、fsck.vfat、fsck.btrfs、fsck.ext2、fsck.ext4 、fsck.gfs2 、fsck.msdos 、fsck.xfs

    查看其属性的工具:dumpe2fs、tune2fs

    调整文件系统特性:tune2fs


文件系统分类:

    有日志型文件系统:浪费空间、占用I/O性能,性能会损失

    无日志型文件系统:


查看系统发行版本号:

    #cat /etc/issue

或  ]# cat /etc/centos-release

查看系统内核版本号:

    #uname -r


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

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

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

-----------------------------------------------------------------------------------------


创建文件系统工具: mkfs

  mkfs:通用分区文件系统创建命令,创建文件的统一接口,调用各种文件系统工具。

 格式:

     mkfs [options] [-t type] [fs-options] device [size]


3.1、ext系列的文件系统管理工具:

    mkfs.ext2  mkfs.ext3  mkfs.ext4  


mkfs创建格式:

    #mkfs.ext{2,3,4}  分区  //创建ext系列分区


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

 格式: 

    mke2fs [option] DEVICE

option:

    -t {ext2|ext3|ext4}:指明要创建的文件系统类型

    -b {1024|2048|4096}:指明文件系统块大小,分别是1k,2k,4k;

    -L LABEL :指明卷标LABEL

    -j :创建有日志功能的文件系统ext3,

        mke2fs -j=mke2fs -t ext3=mkfs -t ext3=mkfs.ext3

    -i # :每多少字节指定一个inode;

    -N # :直接指明要给此文件系统创建的inode的数量

    -O [^ ] :以指定的特性创建目录文件系统,[^ ]关闭指定的特性。

    -m # :指定数据块预留的空间,百分比


3.3、xfs文件系统创建格式:

    mkfs.xfs [options] DEVICE

3.4、vsfat文件系统创建格式:

windows无法识别linux文件系统,因此存储设备需要两种系统之间交叉使用时,应该使用windows和linux同时支持的文件系统:vsfat

  格式:mkfs.vfat  DEVICE


4、给分区文件系统创建卷标

4.1、ext系列分区文件系统创建卷标:e2label

 格式:

    e2label device [ new-label ]

如:

[root@localhost ~]# e2label /dev/sdb1 "mylove"

[root@localhost ~]# blkid  /dev/sdb1  //查看分区信息

/dev/sdb1: LABEL="mylove" UUID="6c60e1e5-d99c-4668-bed5-ccbd30e9bae3" TYPE="ext2" 


4.2、xfs分区文件系统创建卷标:xfs_admin

 xfs_admin [-L label] [-U uuid] device

   

5、通用查看创建的分区文件系统:(ext系列、xfs等)

    #blkid 分区

或   #blkid -L label 

或   #blkid -U uuid

xfs查看创建的分区文件系统

 xfs_admin -l device


6、查看或修改ext系统文件的某些属性:

6.1、tune2fs命令:查看、修改ext系列文件的属性,但是块大小创建后不可以修改

 tune2fs命令格式:

    tune2fs [options] DEVICE

options:

    -l:查看超级块的内容

    -j:修改ext2分区文件系统成ext3类型,不损坏数据

    -L:修改卷标,不损害数据

    -m #:调整预留空间的百分比,不损害数据

    -O [^ ]:调整某种属性;不损害数据,(大写O)

        如:tune2fs -O has_journal /dev/sda3   //打开/dev/sda3的日志特性

          tune2fs -O ^has_journal /dev/sda3   //关闭/dev/sda3的日志特性

    -o [^ ]:开启或关闭某种挂载选项;如:[^acl]:开启或关闭文件的acl特性。


6.2、dumpe2fs命令:显示ext系列分区文件系统的属性信息;类型tune2fs命令

    dumpe2fs DEVICE


7、文件系统的检测工具:fsck,此命令适用于所有文件系统(ext系列、xfs、vsfat等)

    因进程意外终止,或系统崩溃等原因,导致的写入操作非正常终止时,可能会造成文件损坏,此时,应该检测并修复文件系统;建议离线进行检测。

fsck格式:

    fsck [options] DEVICE

options:

    -t fstype:指明文件系统类型

        如:fsck -t ext4=fsck.ext4

    -a:无需和用户交互而自动修复所有错误,(修复就是将没有完成的文件删除,不建议使用此选项)

    -r:交互式修复。  


7.1、ext系列文件系统检测专用工具:

    e2fsck [option] DEVICE

option:

    -y:对所有问题自动回答为yes;    

     -f:即使文件系统处于clean状态(即没有问题状态);也要强制检测执行。


7.2、xfs文件系统检测专用工具:

    fsck.xfs DEVICE




8、挂载、卸载文件系统

硬盘分区完成后,格式化(即创建完文件系统),挂载就可以使用了。


除了根文件系统之外的其他文件系统要想能够被访问,都必须通过“关联至根文件系统上的某个目录”来实现,此关联操作即为“挂载”,此目录即为“挂载点”;挂载点(mount_point)用于作为另一个文件系统的访问入口;


挂载点特性:

    ①事先存在

    ②应该使用未被或不会被其他进程使用到的目录

    ③挂载点下原有的文件将会被隐藏。


mount命令:

 格式:mount [options]  DEVICE MOUNT_POINT  //mount  设备  挂载点

或:

 mount [-fnrsvw] [-t vfstype] [-o options] device dir

options:

    -r:制度挂载

    -w:读写挂载,默认是此选项

    -n:默认情况下,设备挂载或卸载的操作会同步到/etc/mtab文件中,-n用于禁止此特性;mtab文件显示额了当前系统所有的挂载点。

    -t:vfstype:指明要挂载的设备上文件系统的类型,可省略,此时mount会通过blkid来判断要挂载的设备的文件系统类型。

    -L LABEL:挂载时以卷标的方式来挂载

        如:mount -L LABEL MOUNT_POINT

    -U UUID:挂载时以UUID的方式指明挂载设备

        如:mount -U UUID MOUNT_POINT

[-o options]

    sync/async:同步/异步操作(写入)

    atime/moatime:文件或目录在被访问时是否更新其访问时间戳。

    dirtime/nodirtime:目录在被访问时,是否更新其访问时间戳

    remount:重新挂载

    acl:支持使用facl功能。

        mount -o remount acl /dev/sdb1 /mnt

        或tune2fs -o acl device

    ro:只读

    rw:读写

    dev/nodev:此设备上是否允许创建设备文件

    exec/noexec:是否允许运行此设备上的文件

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

    user/nouser:是否允许普通用户挂载此文件系统

    suid/nisuid:是否允许程序文件的suid和sgid特殊权限生效。

    

使用技巧:可以实现将一个目录绑定至另一个目录上,作为其临时访问入口:

    用法:mount --bind 源目录 目标目录


查看当前系统所有已挂载的设备:

    方法一:#mount

    方法二:#cat /etc/mtab

    方法三:#cat /proc/mount


挂载光盘:

    #mount -r /dev/cdrom MOUNT_POINT  //光盘的设备文件路径:/dev/cdrom或/dev/dvd


卸载命令:

    方法一:umount 设备名

    方法二:umount 挂载点

注意:正在被访问的挂载点不能被卸载,如果需要强制卸载按如下操作:

    #lsof /mnt  //查看/mnt挂载点正在被占用的信息

   或#fuser -v /mnt //查看被哪个或哪些进程占用

    使用如下命令强制卸载,终止所有正在访问某挂载点的进程。

    #fuser -km /mnt  //强制卸载/mnt挂载点信息。


挂载本地的回环设备:如iso、img文件等

    #mount -o loop /PATH/TO/SOME_LOOP_FILE MOUNT_POINT

        如:#mount -o loop /root/centos7.iso  /mnt







9、SWAP文件系统:缓存文件系统

linux上的交换分区必须使用独立的文件系统(即独立的磁盘分区),且文件系统的分区system ID必须为“82  Linux swap / So”

9.1、创建swap设备:mkswap命令  ;在分区的基础上创建swap分区文件系统,

  mkswap [option] DEVICE

option:

    -L LABEL :手动指明卷标

    -f:强制创建swap分区系统

9.2、挂载或卸载交换分区文件系统:

swapon、swapoff

 格式:

Enable/disable:

 swapon [-d] [-f] [-p priority] [-v] specialfile...

 swapoff [-v] specialfile...


Enable/disable all:

 swapon -a [-e] [-f] [-v]

 swapoff -a [-v]

9.3、查看内存及缓存(交换分区)命令:

    #free



10、开机自动挂载:

设定除根文件系统以外的其他文件系统能够开机被自动挂载:/etc/fstab


/etc/fstab文件格式:用空格分开,每行定义一个要挂载的文件系统及相关属性。

从左向右以空白分隔符分割的六个字段,分别是:

    ①要挂载的设备:可以有下列几种表示

        设备文件

        LABEL

        UUID

        伪文件系统:如:sysfs、proc、tmpfs等

    ②挂载点

        swap类型设备的挂载点为swap

    ③文件系统类型

    ④挂载选项:

        default:使用默认挂载选项

        如果要同时指明多个挂载选项,彼此间用逗号分开即可,如:default,acl,noatime

    ⑤转储频率:(备份频率)

        0:从不备份

        1:每天备份一次

        2:每隔一天备份一次

    ⑥自检次序:(0-9)次序可以是一样的

        0:不自检

        1:首先自检,通常只能是根文件系统可用

        2:次级自检 

   

11、df命令:diskfree,查看文件系统磁盘空间占用的情况

    用法:df [OPTION]... [FILE]...

OPTION:

    -L:只显示本地文件系统的使用情况

    -h:做单位换算

    -i:显示inode的使用情况,而不是blocks

如:

[root@localhost ~]# df /etc/

Filesystem          1K-blocks    Used Available Use% Mounted on

/dev/mapper/cl-root  13092864 6581148   6511716     51%   /

[root@localhost ~]# 

  

12、du命令:评估文件空间的占用大小,显示文件的大小

    du [OPTION]... [FILE]...

     du [OPTION]... --files0-from=F

OPTION:

    -s:汇总显示,如du -s /etc

    -h:做单位换算

如:

[root@localhost ~]# du /etc/passwd

4 /etc/passwd

[root@localhost ~]#