Linux文件系统管理

Linux文件系统: ext2, ext3, ext4, xfs, btrfs, reiserfs, jfs, swap

swap: 交换分区(虚拟内存)

光盘: iso9660

      windows: fat32, NTFS

      Unix: FFS, UFS, JFS2

      网络文件系统: NFS, CIFS

      集群文件系统: GFS2, OCFS2

      分布式文件系统: ceph,

moosefs,  mogilefs, GlusterFS, Lustre

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

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

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

    文件系统的组成部分:

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

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

Linux的虚拟文件系统: VFS

查询当前系统所支持的文件系统类型

# cat /proc/filesystems

1470833014934373.jpg

以上是CentOS 6.4版本支持的文件系统,可以看到还没有支持xfs文件系统。

1470833417403622.jpg

以上是CentOS 7.1版本支持的文件系统。

对新增的空间进行分区

分区管理工具有: fdisk, parted, sfdisk

        fdisk: 对于一块硬盘来讲,最多只能管理15分区;

        fdisk 对多只能对2T的硬盘进行分区,超过2T的硬盘不能分区,不支持GPT分区,且如果要使用大分区则请使用 parted 命令。



fdisk命令详解

fdisk 命令有多个参数可选

fdisk [-uc] [-b sectorsize] [-C cyls] [-H heads] [-S sects] device

//设定指定分区的扇区数,柱面数,磁头数等。一般不特别指定,不常用此条命令。

fdisk -l [-u] [device…]

//只加 -l 参数 显示当前所有分区的信息。

[root@magedu ~]# fdisk -l
Disk /dev/sda: 21.5 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000cb368
   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1        1306    10485760   83  Linux
/dev/sda2            1306        1561     2048000   82  Linux swap / Solaris

//只加 -u 参数,显示帮助信息。

//加 -l -u 参数,与只加 -l 参数,显示的内容相同。

//加 -l -u 再加指定的分区,则显示单个分区的详细信息,包括容量大小,磁头数,扇区数,柱面数,每个扇区块大小等信息。

[root@magedu ~]# fdisk -l -u /dev/sda2
Disk /dev/sda2: 2097 MB, 2097152000 bytes
255 heads, 63 sectors/track, 254 cylinders, total 4096000 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 identifier: 0x00000000

//同样指定分区,但是加-u 与不加-u参数的微小区别,在第4、5行与第13、14行

[root@magedu ~]# fdisk -l /dev/sda1

Disk /dev/sda1: 10.7 GB, 10737418240 bytes
255 heads, 63 sectors/track, 1305 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

[root@magedu ~]# fdisk -l -u /dev/sda1

Disk /dev/sda1: 10.7 GB, 10737418240 bytes
255 heads, 63 sectors/track, 1305 cylinders, total 20971520 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 identifier: 0x00000000

fdisk -s partition…

//显示指定分区的块信息

[root@magedu ~]# fdisk -s /dev/sda1
10485760

fdisk -v

//打印当前fdisk版本信息

[root@magedu ~]# fdisk -v
fdisk (util-linux-ng 2.17.2)

fdisk -h

//打印fdisk帮助信息,与直接输入fdisk效果相同

[root@magedu ~]# fdisk -h
Usage:
 fdisk [options] <disk>    change partition table
 fdisk [options] -l <disk> list partition table(s)
 fdisk -s <partition>      give partition size(s) in blocks
Options:
 -b <size>                 sector size (512, 1024, 2048 or 4096)
 -c                        switch off DOS-compatible mode
 -h                        print help
 -u <size>                 give sizes in sectors instead of cylinders
 -v                        print version
 -C <number>               specify the number of cylinders
 -H <number>               specify the number of heads
 -S <number>               specify the number of sectors per track


[root@magedu ~]# fdisk /dev/sda
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):

//输入fdisk 和指定设备后,进入对话模式,此时可以先输入m进行命令列表。

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 //创建一个新的DOS分区表
   p   print the partition table //显示已有分区
   q   quit without saving changes //放弃更新并退出
   s   create a new empty Sun disklabel
   t   change a partition's system id //调整分区id
   u   change display/entry units
   v   verify the partition table //验证分区表
   w   write table to disk and exit //写入磁盘并退出
   x   extra functionality (experts only)

//显示所有已知分区类型,这里要注意分区类型的数字编号,在使用p命令进行查看时可以知道对应分区类型

Command (m for help): l
 0  Empty           24  NEC DOS         81  Minix / old Lin bf  Solaris        
 1  FAT12           39  Plan 9          82  Linux swap / So c1  DRDOS/sec (FAT-
 2  XENIX root      3c  PartitionMagic  83  Linux           c4  DRDOS/sec (FAT-
 3  XENIX usr       40  Venix 80286     84  OS/2 hidden C:  c6  DRDOS/sec (FAT-
 4  FAT16 <32M      41  PPC PReP Boot   85  Linux extended  c7  Syrinx         
 5  Extended        42  SFS             86  NTFS volume set da  Non-FS data    
 6  FAT16           4d  QNX4.x          87  NTFS volume set db  CP/M / CTOS / .
 7  HPFS/NTFS       4e  QNX4.x 2nd part 88  Linux plaintext de  Dell Utility   
 8  AIX             4f  QNX4.x 3rd part 8e  Linux LVM       df  BootIt         
 9  AIX bootable    50  OnTrack DM      93  Amoeba          e1  DOS access     
 a  OS/2 Boot Manag 51  OnTrack DM6 Aux 94  Amoeba BBT      e3  DOS R/O        
 b  W95 FAT32       52  CP/M            9f  BSD/OS          e4  SpeedStor      
 c  W95 FAT32 (LBA) 53  OnTrack DM6 Aux a0  IBM Thinkpad hi eb  BeOS fs        
 e  W95 FAT16 (LBA) 54  OnTrackDM6      a5  FreeBSD         ee  GPT            
 f  W95 Ext'd (LBA) 55  EZ-Drive        a6  OpenBSD         ef  EFI (FAT-12/16/
10  OPUS            56  Golden Bow      a7  NeXTSTEP        f0  Linux/PA-RISC b
11  Hidden FAT12    5c  Priam Edisk     a8  Darwin UFS      f1  SpeedStor      
12  Compaq diagnost 61  SpeedStor       a9  NetBSD          f4  SpeedStor      
14  Hidden FAT16 <3 63  GNU HURD or Sys ab  Darwin boot     f2  DOS secondary  
16  Hidden FAT16    64  Novell Netware  af  HFS / HFS+      fb  VMware VMFS    
17  Hidden HPFS/NTF 65  Novell Netware  b7  BSDI fs         fc  VMware VMKCORE 
18  AST SmartSleep  70  DiskSecure Mult b8  BSDI swap       fd  Linux raid auto
1b  Hidden W95 FAT3 75  PC/IX           bb  Boot Wizard hid fe  LANstep        
1c  Hidden W95 FAT3 80  Old Minix       be  Solaris boot    ff  BBT

//使用p命令查看现有分区列表信息后,可以看到该硬盘总共的柱面是2610,已经使用的柱面是1561,说明还有未分区空间可以使用。现在就对剩余空间可以进行分区添加。

Command (m for help): p
Disk /dev/sda: 21.5 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000cb368
   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1        1306    10485760   83  Linux
/dev/sda2            1306        1561     2048000   82  Linux swap / Solaris

1、添加一个主分区,输入n,出现对话模式询问是要穿件主分区还是创建扩展分区,同时提示主分区数量只能是1-4,因为已经有sda1和sda2 了,那么最多只能再添加2个主分区,也就是sda3和sda4,先创建一个主分区为sda3,那么需要先输入p。

Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)

输入p后,会要求确定添加的分区号码,输入3,

Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4):

如果输入的编号是已经有的分区号,则会提示分区已经存在,在添加分区前请先删除此分区

Partition number (1-4): 1
Partition 1 is already defined.  Delete it before re-adding it.

输入3后,会出现要求输入柱面开始的位置和结束的位置,根据提示进行区域的划分。因为后续还需要分逻辑分区,所以这里先从1561分到2000即可。

Partition number (1-4): 3
First cylinder (1561-2610, default 1561): 1561
Last cylinder, +cylinders or +size{K,M,G} (1561-2610, default 2610): 2000

添加完成后再用p命令进行查看刚刚创建出来的分区,注意新创建出来的分区类型id为83,也就是默认创建出来的分区类型是linux类型的。

Command (m for help): p
Disk /dev/sda: 21.5 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000cb368
   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1        1306    10485760   83  Linux
/dev/sda2            1306        1561     2048000   82  Linux swap / Solaris
/dev/sda3            1561        2000     3530216   83  Linux

2、创建逻辑分区

因为主分区只能是4个,如果要创建4个以上的分区,则需要先牺牲一个主分区的额度,将整个额度用做扩展分区,创建完扩展分区后,在扩展分区中再进行创建逻辑分区。这个分区模式类似于Windows的分区模式。

同样先输入n

Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)

输入e,要创建扩展分区,输入e后因为只有一个分区可以创建逻辑分区,所以默认为sda4了,不需要输入4,进去柱面位置输入。这里把剩余的空间全部划给扩展分区使用2001-2610。

Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
e
Selected partition 4
First cylinder (2001-2610, default 2001): 2001
Last cylinder, +cylinders or +size{K,M,G} (2001-2610, default 2610): 2610

完成后用p命令查看结果。注意sda4 的Id类型为5,同时系统属性显示为Extended,扩展分区。

Command (m for help): p
Disk /dev/sda: 21.5 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000cb368
   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1        1306    10485760   83  Linux
/dev/sda2            1306        1561     2048000   82  Linux swap / Solaris
/dev/sda3            1561        2000     3530216   83  Linux
/dev/sda4            2001        2610     4899825    5  Extended

3、创建逻辑分区

在创建完成扩展分区后,扩展分区并不能作为实际使用的分区,需要再创建逻辑分区。

再输入n,然后输入第一个逻辑分区的大小,逻辑分区从sda5开始编号,向后累加1。

这里先分第一个逻辑分区,设置逻辑分区的时候,设置完成起始柱面后,结束的柱面可以用K,M,G的容量形式表示。

Command (m for help): n
First cylinder (2001-2610, default 2001): 2001
Last cylinder, +cylinders or +size{K,M,G} (2001-2610, default 2610): 2100

创建完成后用p命令进行查看结果。

Command (m for help): p
Disk /dev/sda: 21.5 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000cb368
   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1        1306    10485760   83  Linux
/dev/sda2            1306        1561     2048000   82  Linux swap / Solaris
/dev/sda3            1561        2000     3530216   83  Linux
/dev/sda4            2001        2610     4899825    5  Extended
/dev/sda5            2001        2100      803218+  83  Linux

再重复创建1个逻辑分区,这次试用设置容量的方式创建。+100M,这个新创建的sda6的容量是100M。

Command (m for help): n
First cylinder (2101-2610, default 2101): 2101  
Last cylinder, +cylinders or +size{K,M,G} (2101-2610, default 2610): +100M

创建完成后用p命令进行查看结果。

Command (m for help): p
Disk /dev/sda: 21.5 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000cb368
   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1        1306    10485760   83  Linux
/dev/sda2            1306        1561     2048000   82  Linux swap / Solaris
/dev/sda3            1561        2000     3530216   83  Linux
/dev/sda4            2001        2610     4899825    5  Extended
/dev/sda5            2001        2100      803218+  83  Linux
/dev/sda6            2101        2114      112423+  83  Linux

4、保存并退出

当所有分区设置操作完成后,使用w命令,进行保存之前的所有设置,然后退出。如果没有输入w命令的退出之前的操作全部都不起作用。

Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
WARNING: Re-reading the partition table failed with error 16: 设备或资源忙.
The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)
Syncing disks.

保存退出后,系统会提示分区表需要内核在下次启动后进行加载,或者可以使用partprobe 或者 kpartx命令在不重新启动的情况下进行同步。



partx 命令简介

partx – telling the kernel about presence and numbering of on-disk partitions.

        //告诉内核在线的磁盘分区编号

格式

partx [-a|-d|-l] [–type TYPE] [–nr M-N] [partition] disk

       -a     add specified partitions or read disk and add all partitions //增加指定的分区或者读取整个磁盘增加全部分区
       -d     delete specified or all partitions                           //删除指定的或者全部分区(这里的删除是删除在内核中的挂载)
       -l     list partitions. Note that the all numbers are in 512-byte sectors.    //将分区列表显示出来
       --type TYPE
              Specify the partition type -- dos, bsd, solaris, unixware or gpt.      //指定分区类型,dos,bsd,solaris,unixware,gpt
       --nr M-N
              Specify the range of partitions (e.g --nr 2-4).                        //指定分区的范围

[root@magedu ~]# partx -l /dev/sda
# 1:      2048- 20973567 ( 20971520 sectors,  10737 MB)
# 2:  20973568- 25069567 (  4096000 sectors,   2097 MB)
# 3:  25069568- 32129999 (  7060432 sectors,   3614 MB)
# 4:  32130000- 41929649 (  9799650 sectors,   5017 MB)
# 5:  32130063- 33736499 (  1606437 sectors,    822 MB)
# 6:  33736563- 33961409 (   224847 sectors,    115 MB)

//加载sda盘上的所有分区,因为sda1,sda2已经加载过了,所以显示已经在线了,其他3-6已经全部增加好了。

[root@magedu ~]# partx -a /dev/sda
BLKPG: Device or resource busy
error adding partition 1
BLKPG: Device or resource busy
error adding partition 2

使用ls -l /dev/sda //看到以下sda1-6 全部都已经挂载好了

brw-rw----. 1 root disk      8,   0 3月   3 12:55 sda
brw-rw----. 1 root disk      8,   1 3月   3 12:02 sda1
brw-rw----. 1 root disk      8,   2 2月  29 00:08 sda2
brw-rw----. 1 root disk      8,   3 3月   3 15:50 sda3
brw-rw----. 1 root disk      8,   4 3月   3 15:54 sda4
brw-rw----. 1 root disk      8,   5 3月   3 15:54 sda5
brw-rw----. 1 root disk      8,   6 3月   3 15:54 sda6

//清除挂载的分区,使用-d参数 –nr参数为指定分区序号,执行完毕后使用ls查看结果。只有sda1,sda2在线

partx -d --nr 3-6 /dev/sda
brw-rw----. 1 root disk      8,   0 3月   3 12:55 sda
brw-rw----. 1 root disk      8,   1 3月   3 12:02 sda1
brw-rw----. 1 root disk      8,   2 2月  29 00:08 sda2

partprobe用法基本和partx用法相同,不做详细解说。



二、文件系统格式化

在划分好分区后,需要对分区进行文件系统格式化

# cat /proc/filesystems

查询当前系统所支持的文件系统类型

创建文件系统的命令主要有 mkfs 和 mke2fs

1、mkfs详解

   mkfs [-V] [-t fstype] [fs-options] filesys [blocks]

filesys : 主要是指/dev/hda. 和  /dev/sdb2

-V : 显示格式化程序的具体版本

[root@magedu ~]# mkfs -V

mkfs (util-linux-ng 2.17.2)

-t + fstype : 指定格式化分区的文件类型,默认为ext2格式。 

-c 在格式化分区钱先检查文件系统是否有坏道。

-l filename : 从filename中读取块的块的相关信息。

-v 产生详细的输出内容。

举例:

对/dev/sda5 使用ext4类型进行格式化

[root@magedu ~]# mkfs -t ext4 /dev/sda5 
mke2fs 1.41.12 (17-May-2010)
文件系统标签=
操作系统:Linux
块大小=4096 (log=2)
分块大小=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
50288 inodes, 200804 blocks
10040 blocks (5.00%) reserved for the super user
第一个数据块=0
Maximum filesystem blocks=209715200
7 block groups
32768 blocks per group, 32768 fragments per group
7184 inodes per group
Superblock backups stored on blocks: 
32768, 98304, 163840
正在写入inode表: 完成                            
Creating journal (4096 blocks): 完成
Writing superblocks and filesystem accounting information: 完成

如果需要在格式化时同时对分区惊醒标签设置则同时增加-L参数

[root@magedu ~]# mkfs -t ext4 -L "mydata" /dev/sda6 
mke2fs 1.41.12 (17-May-2010)
文件系统标签=mydata
操作系统:Linux
块大小=1024 (log=0)
分块大小=1024 (log=0)
Stride=0 blocks, Stripe width=0 blocks
28112 inodes, 112420 blocks
5621 blocks (5.00%) reserved for the super user
第一个数据块=1
Maximum filesystem blocks=67371008
14 block groups
8192 blocks per group, 8192 fragments per group
2008 inodes per group
Superblock backups stored on blocks: 
8193, 24577, 40961, 57345, 73729
正在写入inode表: 完成                            
Creating journal (4096 blocks): 完成
Writing superblocks and filesystem accounting information: 完成

使用mkfs 2次TAB键可以查看格式化文件系统的命令文件,可以直接使用这些命令进行分区格式化

[root@magedu ~]# mkfs
mkfs          mkfs.cramfs   mkfs.ext2     mkfs.ext3     mkfs.ext4     mkfs.ext4dev

举例:

[root@magedu ~]# mkfs.ext4 -L "MYFILE" /dev/sda3
mke2fs 1.41.12 (17-May-2010)
文件系统标签=MYFILE
操作系统:Linux
块大小=4096 (log=2)
分块大小=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
220752 inodes, 882554 blocks
44127 blocks (5.00%) reserved for the super user
第一个数据块=0
Maximum filesystem blocks=905969664
27 block groups
32768 blocks per group, 32768 fragments per group
8176 inodes per group
Superblock backups stored on blocks: 
32768, 98304, 163840, 229376, 294912, 819200
正在写入inode表: 完成                            
Creating journal (16384 blocks): 完成
Writing superblocks and filesystem accounting information: 完成

格式化完成后可使用blkid命令进行分区信息查看

[root@magedu ~]# blkid /dev/sda3
/dev/sda3: LABEL="MYFILE" UUID="cbf52738-71f8-46e7-8826-fc6d47470f3b" TYPE="ext4"

2、mke2fs

mke2fs是ext系列文件系统专用管理工具,可创建ext2/ext3/ext4文件系统

    -t {ext2|ext3|ext4}: 设置分区格式化类型

    -b {1024|2048|4096}: 设置块大小

    -L "LABEL": 设置分区名称

    -j: 相当于-t ext3

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

    -i #:为数据空间每多少个字节创建一个inode;此大小不应该小于block的大小;

    -N #: 为数据空间创建多少个inode

    -m #:为管理人员预留的空间占据的百分比;

    -O FEATURE[,…]: 启用指定特性

-O ^FEATURE: 关闭指定特性

    -F: 强制格式化分区,即时指定的设备不是一个特殊的设备分区,或者其他参数没有没有意义,也格式化此分区。即时分区是挂载的或者正在被使用的,也要强制进行格式化的情况(这样操作具有很大风险),需要强制使用参数两次。-F -F

    -q: 静默执行,常常在脚本中使用。

    -V: 显示版本信息

    -U: 设置分区一个特殊的UUID,(没有特殊要求不使用)



三、查看块设备属性及相关信息

blkid 

不加任何参数可查询当前挂在的所有块设备信息列表

[root@magedu ~]# blkid
/dev/sda1: UUID="555e9e4f-3ad2-4372-852f-629c3c3f822e" TYPE="ext4" 
/dev/sda2: UUID="d16462e2-eea8-4f55-a258-10f15dd7a956" TYPE="swap" 
/dev/sda6: LABEL="mydata" UUID="7e89adb1-4617-462e-9ff5-4fb6f26f27f0" TYPE="ext4" 
/dev/sda3: LABEL="MYFILE" UUID="cbf52738-71f8-46e7-8826-fc6d47470f3b" TYPE="ext4" 
/dev/sda5: UUID="9923a5a7-7dea-4328-9215-fdbf5b5b54ae" SEC_TYPE="ext2" TYPE="ext3"

查看指定设备文件系统类型

blkid [DEVICE]

[root@magedu ~]# blkid /dev/sda5
/dev/sda5: UUID="9923a5a7-7dea-4328-9215-fdbf5b5b54ae" SEC_TYPE="ext2" TYPE="ext3"

-U 根据指定的UUID进行查找对应的设备

-L 根据指定的LABEL进行查找对应的设备

查看系统中所有已经挂且有LABEL的设备

[root@magedu ~]# blkid -s LABEL
/dev/sda6: LABEL="mydata" 
/dev/sda3: LABEL="MYFILE"

查看系统中所有已经挂在的设备的UUID

[root@magedu ~]# blkid -s UUID
/dev/sda1: UUID="555e9e4f-3ad2-4372-852f-629c3c3f822e" 
/dev/sda2: UUID="d16462e2-eea8-4f55-a258-10f15dd7a956" 
/dev/sda6: UUID="7e89adb1-4617-462e-9ff5-4fb6f26f27f0" 
/dev/sda3: UUID="cbf52738-71f8-46e7-8826-fc6d47470f3b" 
/dev/sda5: UUID="9923a5a7-7dea-4328-9215-fdbf5b5b54ae"

查看指定UUID的设备

[root@magedu ~]# blkid -U "555e9e4f-3ad2-4372-852f-629c3c3f822e" 
/dev/sda1

查看指定LABEL的设备

[root@magedu ~]# blkid -L "mydata" 
/dev/sda6


四、修改ext文件系统的LABEL

e2label

e2label device [new label]

举例:

e2label device 不加[新标签] 显示指定块设备的LABEL

e2label /dev/sda6

[root@magedu ~]# e2label /dev/sda6
mydata

e2label /dev/sda6 mydata2

更换/dev/sda6 的标签为mydata2

再次使用 e2label /dev/sda6进行查看

[root@magedu ~]# e2label /dev/sda6

mydata2



五、对现有ext文件系统进行参数调整

1、tune2fs

    -l: 查看指定文件系统超级块信息:super block

    -L 'LABEL': 修改卷标

    -m #: 修改预留给管理员的空间百分比

    -j: 将ext2升级为ext3

    -O: 文件系统属性的启用或禁用

    -o: 调整文件系统的默认挂在选项

    -U UUID: 修改UUID号;

举例:

[root@magedu ~]# tune2fs -l /dev/sda6
tune2fs 1.41.12 (17-May-2010)
Filesystem volume name:   mydata2
Last mounted on:          <not available>
Filesystem UUID:          7e89adb1-4617-462e-9ff5-4fb6f26f27f0
Filesystem magic number:  0xEF53
Filesystem revision #:    1 (dynamic)
Filesystem features:      has_journal ext_attr resize_inode dir_index filetype extent flex_bg sparse_super huge_file uninit_bg dir_nlink extra_isize
Filesystem flags:         signed_directory_hash 
Default mount options:    (none)
Filesystem state:         clean
Errors behavior:          Continue
Filesystem OS type:       Linux
Inode count:              28112
Block count:              112420
Reserved block count:     5621
Free blocks:              103219
Free inodes:              28101
First block:              1
Block size:               1024
Fragment size:            1024
Reserved GDT blocks:      256
Blocks per group:         8192
Fragments per group:      8192
Inodes per group:         2008
Inode blocks per group:   251
Flex block group size:    16
Filesystem created:       Fri Mar  4 00:28:47 2016
Last mount time:          n/a
Last write time:          Fri Mar  4 03:49:16 2016
Mount count:              0
Maximum mount count:      39
Last checked:             Fri Mar  4 00:28:47 2016
Check interval:           15552000 (6 months)
Next check after:         Wed Aug 31 00:28:47 2016
Lifetime writes:          8017 kB
Reserved blocks uid:      0 (user root)
Reserved blocks gid:      0 (group root)
First inode:              11
Inode size:          128
Journal inode:            8
Default directory hash:   half_md4
Directory Hash Seed:      53787485-f7f3-4b39-9970-41f9a2feea62
Journal backup:           inode blocks

用tune2fs修改指定设备LABEL

[root@magedu ~]# tune2fs /dev/sda6 -L mydata4
tune2fs 1.41.12 (17-May-2010)
[root@magedu ~]# e2label /dev/sda6
mydata4

对ext2类型分区增加日志

[root@magedu ~]# blkid /dev/sda3
/dev/sda3: UUID="8809ed74-2399-471a-a2fc-1b338972b05c" TYPE="ext2"
[root@magedu ~]# tune2fs -j /dev/sda3
tune2fs 1.41.12 (17-May-2010)
Creating journal inode: 完成
[root@magedu ~]# blkid /dev/sda3
/dev/sda3: UUID="8809ed74-2399-471a-a2fc-1b338972b05c" SEC_TYPE="ext2" TYPE="ext3"


六、其他相关命令

1、dumpe2fs

查看指定设备上整个文件系统的布局信息

-h: 只查看超级块信息

举例:

dumpe2fs /dev/sda5 -h

[root@magedu ~]# dumpe2fs /dev/sda5 -h
dumpe2fs 1.41.12 (17-May-2010)
Filesystem volume name:   <none>
Last mounted on:          <not available>
Filesystem UUID:          9923a5a7-7dea-4328-9215-fdbf5b5b54ae
Filesystem magic number:  0xEF53
Filesystem revision #:    1 (dynamic)
Filesystem features:      has_journal ext_attr resize_inode dir_index filetype sparse_super large_file
Filesystem flags:         signed_directory_hash 
Default mount options:    (none)
Filesystem state:         clean
Errors behavior:          Continue
Filesystem OS type:       Linux
Inode count:              50288
Block count:              200804
Reserved block count:     10040
Free blocks:              193336
Free inodes:              50277
First block:              0
Block size:               4096
Fragment size:            4096
Reserved GDT blocks:      49
Blocks per group:         32768
Fragments per group:      32768
Inodes per group:         7184
Inode blocks per group:   449
Filesystem created:       Fri Mar  4 00:59:55 2016
Last mount time:          n/a
Last write time:          Fri Mar  4 00:59:55 2016
Mount count:              0
Maximum mount count:      37
Last checked:             Fri Mar  4 00:59:55 2016
Check interval:           15552000 (6 months)
Next check after:         Wed Aug 31 00:59:55 2016
Reserved blocks uid:      0 (user root)
Reserved blocks gid:      0 (group root)
First inode:              11
Inode size:          256
Required extra isize:     28
Desired extra isize:      28
Journal inode:            8
Default directory hash:   half_md4
Directory Hash Seed:      41aed820-4405-42e0-acfc-f8349085593e
Journal backup:           inode blocks
Journal features:         (none)
日志大小:             16M
Journal length:           4096
Journal sequence:         0x00000001
Journal start:            0

dumpe2fs /dev/sda5

列出所有区段的详细内容

[root@magedu ~]# dumpe2fs /dev/sda5
dumpe2fs 1.41.12 (17-May-2010)
Filesystem volume name:   <none>
Last mounted on:          <not available>
Filesystem UUID:          9923a5a7-7dea-4328-9215-fdbf5b5b54ae
Filesystem magic number:  0xEF53
Filesystem revision #:    1 (dynamic)
Filesystem features:      has_journal ext_attr resize_inode dir_index filetype sparse_super large_file
Filesystem flags:         signed_directory_hash 
Default mount options:    (none)
Filesystem state:         clean
Errors behavior:          Continue
Filesystem OS type:       Linux
Inode count:              50288
Block count:              200804
Reserved block count:     10040
Free blocks:              193336
Free inodes:              50277
First block:              0
Block size:               4096
Fragment size:            4096
Reserved GDT blocks:      49
Blocks per group:         32768
Fragments per group:      32768
Inodes per group:         7184
Inode blocks per group:   449
Filesystem created:       Fri Mar  4 00:59:55 2016
Last mount time:          n/a
Last write time:          Fri Mar  4 00:59:55 2016
Mount count:              0
Maximum mount count:      37
Last checked:             Fri Mar  4 00:59:55 2016
Check interval:           15552000 (6 months)
Next check after:         Wed Aug 31 00:59:55 2016
Reserved blocks uid:      0 (user root)
Reserved blocks gid:      0 (group root)
First inode:              11
Inode size:          256
Required extra isize:     28
Desired extra isize:      28
Journal inode:            8
Default directory hash:   half_md4
Directory Hash Seed:      41aed820-4405-42e0-acfc-f8349085593e
Journal backup:           inode blocks
Journal features:         (none)
日志大小:             16M
Journal length:           4096
Journal sequence:         0x00000001
Journal start:            0
Group 0: (Blocks 0-32767)
  主 superblock at 0, Group descriptors at 1-1
  保留的GDT块位于 2-50
  Block bitmap at 51 (+51), Inode bitmap at 52 (+52)
  Inode表位于 53-501 (+53)
  32260 free blocks, 7173 free inodes, 2 directories
  可用块数: 508-32767
  可用inode数: 12-7184
Group 1: (Blocks 32768-65535)
  备份 superblock at 32768, Group descriptors at 32769-32769
  保留的GDT块位于 32770-32818
  Block bitmap at 32819 (+51), Inode bitmap at 32820 (+52)
  Inode表位于 32821-33269 (+53)
  32266 free blocks, 7184 free inodes, 0 directories
  可用块数: 33270-65535
  可用inode数: 7185-14368
Group 2: (Blocks 65536-98303)
  Block bitmap at 65536 (+0), Inode bitmap at 65537 (+1)
  Inode表位于 65538-65986 (+2)
  28216 free blocks, 7184 free inodes, 0 directories
  可用块数: 70088-98303
  可用inode数: 14369-21552
Group 3: (Blocks 98304-131071)
  备份 superblock at 98304, Group descriptors at 98305-98305
  保留的GDT块位于 98306-98354
  Block bitmap at 98355 (+51), Inode bitmap at 98356 (+52)
  Inode表位于 98357-98805 (+53)
  32266 free blocks, 7184 free inodes, 0 directories
  可用块数: 98806-131071
  可用inode数: 21553-28736
Group 4: (Blocks 131072-163839)
  Block bitmap at 131072 (+0), Inode bitmap at 131073 (+1)
  Inode表位于 131074-131522 (+2)
  32317 free blocks, 7184 free inodes, 0 directories
  可用块数: 131523-163839
  可用inode数: 28737-35920
Group 5: (Blocks 163840-196607)
  备份 superblock at 163840, Group descriptors at 163841-163841
  保留的GDT块位于 163842-163890
  Block bitmap at 163891 (+51), Inode bitmap at 163892 (+52)
  Inode表位于 163893-164341 (+53)
  32266 free blocks, 7184 free inodes, 0 directories
  可用块数: 164342-196607
  可用inode数: 35921-43104
Group 6: (Blocks 196608-200803)
  Block bitmap at 196608 (+0), Inode bitmap at 196609 (+1)
  Inode表位于 196610-197058 (+2)
  3745 free blocks, 7184 free inodes, 0 directories
  可用块数: 197059-200803
  可用inode数: 43105-50288

2、mkswap 创建交换分区

    mkswap [OPTIONS] device

        -L ‘LABEL’

    要创建swap分区 在fdisk时先要调整分区id为82

先创建一个新的分区

[root@magedu ~]# fdisk /dev/sda
Command (m for help): p
Disk /dev/sda: 21.5 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000cb368
   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1        1306    10485760   83  Linux
/dev/sda2            1306        1561     2048000   82  Linux swap / Solaris
/dev/sda3            1561        2000     3530216   83  Linux
/dev/sda4            2001        2610     4899825    5  Extended
/dev/sda5            2001        2100      803218+  83  Linux
/dev/sda6            2101        2114      112423+  83  Linux
Command (m for help): n
First cylinder (2115-2610, default 2115): 2115
Last cylinder, +cylinders or +size{K,M,G} (2115-2610, default 2610): 2200
Command (m for help): p
Disk /dev/sda: 21.5 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000cb368
   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1        1306    10485760   83  Linux
/dev/sda2            1306        1561     2048000   82  Linux swap / Solaris
/dev/sda3            1561        2000     3530216   83  Linux
/dev/sda4            2001        2610     4899825    5  Extended
/dev/sda5            2001        2100      803218+  83  Linux
/dev/sda6            2101        2114      112423+  83  Linux
/dev/sda7            2115        2200      690763+  83  Linux

//改变分区id为82

Command (m for help): t
Partition number (1-7): 7
Hex code (type L to list codes): 82
Changed system type of partition 7 to 82 (Linux swap / Solaris)
Command (m for help): p
Disk /dev/sda: 21.5 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000cb368
   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1        1306    10485760   83  Linux
/dev/sda2            1306        1561     2048000   82  Linux swap / Solaris
/dev/sda3            1561        2000     3530216   83  Linux
/dev/sda4            2001        2610     4899825    5  Extended
/dev/sda5            2001        2100      803218+  83  Linux
/dev/sda6            2101        2114      112423+  83  Linux
/dev/sda7            2115        2200      690763+  82  Linux swap / Solaris

确认后w,保存退出,使用portx加载到内核

[root@magedu ~]# partx -l /dev/sda
# 1:      2048- 20973567 ( 20971520 sectors,  10737 MB)
# 2:  20973568- 25069567 (  4096000 sectors,   2097 MB)
# 3:  25069568- 32129999 (  7060432 sectors,   3614 MB)
# 4:  32130000- 41929649 (  9799650 sectors,   5017 MB)
# 5:  32130063- 33736499 (  1606437 sectors,    822 MB)
# 6:  33736563- 33961409 (   224847 sectors,    115 MB)
# 7:  33961473- 35342999 (  1381527 sectors,    707 MB)
[root@magedu ~]# partx -a /dev/sda
BLKPG: Device or resource busy
error adding partition 1
BLKPG: Device or resource busy
error adding partition 2
BLKPG: Device or resource busy
error adding partition 3
BLKPG: Device or resource busy
error adding partition 4
BLKPG: Device or resource busy
error adding partition 5
BLKPG: Device or resource busy
error adding partition 6

//格式化为swap

[root@magedu ~]# mkswap /dev/sda7
Setting up swapspace version 1, size = 690756 KiB
no label, UUID=edf99f0a-32ea-4030-ae5c-137a09bf0dc1
[root@magedu ~]# blkid
/dev/sda1: UUID="555e9e4f-3ad2-4372-852f-629c3c3f822e" TYPE="ext4" 
/dev/sda2: UUID="d16462e2-eea8-4f55-a258-10f15dd7a956" TYPE="swap" 
/dev/sda6: LABEL="mydata4" UUID="7e89adb1-4617-462e-9ff5-4fb6f26f27f0" TYPE="ext4" 
/dev/sda3: UUID="8809ed74-2399-471a-a2fc-1b338972b05c" SEC_TYPE="ext2" TYPE="ext3" 
/dev/sda5: UUID="9923a5a7-7dea-4328-9215-fdbf5b5b54ae" SEC_TYPE="ext2" TYPE="ext3" 
/dev/sda7: UUID="edf99f0a-32ea-4030-ae5c-137a09bf0dc1" TYPE="swap"


七、文件系统检测

1、fsck

    检查与修复Linux文件系统

    有两种格式:

    fsck.FS_TYPE

    fsck -t FS_TYPE

        -a:自动修复错误

        -r:交互式修复错误

    注意:此处的FS_TYPE一定要与分区上已有的文件类型相同

[root@magedu ~]# fsck -a /dev/sda3
fsck from util-linux-ng 2.17.2
/dev/sda3: clean, 11/220752 files, 31777/882554 blocks

2、e2fsck

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

    -y: 自动回答为yes;

    -f: 强制修复

举例:

 e2fsck -y /dev/sda5

[root@magedu ~]# e2fsck -y /dev/sda5
e2fsck 1.41.12 (17-May-2010)
/dev/sda5: clean, 11/50288 files, 7468/200804 blocks

e2fsck -f /dev/sda5

[root@magedu ~]# e2fsck -f /dev/sda5
e2fsck 1.41.12 (17-May-2010)
第一步: 检查inode,块,和大小
第二步: 检查目录结构
第3步: 检查目录连接性
Pass 4: Checking reference counts
第5步: 检查簇概要信息
/dev/sda5: 11/50288 files (0.0% non-contiguous), 7468/200804 blocks

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