常见的文件系统
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
实验环境CentOS7.2
Linux根据其是否支持"journal"功能:
日志型文件系统: ext3, ext4, xfs, ...
非日志型文件系统: ext2, vfat
Linux的文件系统的组成部分:
内核中的模块:ext4, xfs, vfat
用户空间的管理工具:mkfs.ext4, mkfs.xfs, mkfs.vfat
在正式介绍文件系统的前先说一下创建文件系统之前的格式化问题。
格式化
低级格式化:硬件制造商、分区之前划分磁道,形成簇 磁盘出厂前由厂家完成
高级格式化:分区之后对分区进行,创建文件系统
每种操作系统所设置的文件属性/权限不相同,为了存放这些所需的数据
我们常说的重装系统及格式化都是属于高级格式化层面的。本文所说的文件系统均为高级格式化后的产物。
Linux文件系统管理工具
blkid:块设备属性信息查看
命令使用格式:blkid [OPTION]... [DEVICE]-U UUID: 根据指定的UUID来查找对应的设备
-L LABEL:根据指定的LABEL来查找对应的设备
命令演示:
1
2
3
4
[root@localhost~]#blkid/dev/sda1/dev/sda1:UUID="6efb8a23-bae1-427c-ab10-3caca95250b1"TYPE="xfs"
[root@localhost~]#blkid-U6efb8a23-bae1-427c-ab10-3caca95250b1/dev/sda1
…………………………………………………………………………………………………………
mkfs:文件系统创建工具:
mkfs - build a Linux filesystem
命令使用格式:
1、 mkfs [options] [-t type] device [size][ -t type] :指定要创建的文件系统类型ext4|xfs|btrfs|vfat|...|]
[options]:-L 'LABEL': 设定卷标 在创建文件系统同时指定卷标。
-f 若文件系统已存在,强制覆盖
命令演示:
[root@localhost~]#mkfs-L'new1'-text4/dev/sdb51
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
mke2fs1.42.9(28-Dec-2013)
文件系统标签=new1
OStype:Linux
块大小=1024(log=0)
分块大小=1024(log=0)
Stride=0blocks,Stripewidth=0blocks
25688inodes,102400blocks
5120blocks(5.00%)reservedforthesuperuser
第一个数据块=1
Maximumfilesystemblocks=33685504
13blockgroups
8192blockspergroup,8192fragmentspergroup
1976inodespergroup
Superblockbackupsstoredonblocks:
8193,24577,40961,57345,73729
Allocatinggrouptables:完成
正在写入inode表:完成
Creatingjournal(4096blocks):完成
Writingsuperblocksandfilesystemaccountinginformation:完成
[root@localhost~]#blkid/dev/sdb5/dev/sdb5:LABEL="new1"UUID="10880486-7ad9-43de-9607-f9bc1fda1edf"TYPE="ext4"
…………………………………………………………………………………………………………
2、mkfs.FS_TYPE /dev/DEVICE
FS_TPYE:ext4、xfs、btrfs、vfat...
命令演示:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
[root@localhost~]#mkfs.xfs-L'new2'/dev/sdb6mkfs.xfs:/dev/sdb6appearstocontainanexistingfilesystem(ext3).
mkfs.xfs:Usethe-foptiontoforceoverwrite.
[root@localhost~]#mkfs.xfs-f-L'new2'/dev/sdb6meta-data=/dev/sdb6 isize=256 agcount=4,agsize=6400blks
= sectsz=512 attr=2,projid32bit=1
= crc=0 finobt=0
data = bsize=4096 blocks=25600,imaxpct=25
= sunit=0 swidth=0blks
naming =version2 bsize=4096 ascii-ci=0ftype=0
log =internallog bsize=4096 blocks=853,version=2
= sectsz=512 sunit=0blks,lazy-count=1
realtime=none extsz=4096 blocks=0,rtextents=0
[root@localhost~]#blkid/dev/sdb6/dev/sdb6:LABEL="new2"UUID="ed636bf6-1cee-43d1-96e2-8baa8dc29087"TYPE="xfs"
若/dev/sdb# 指定的磁盘块已经存在文件系统,执行命令mkfs会失败,若加-f,则强制将原文件系统覆盖。慎用-f。
…………………………………………………………………………………………………………
mke2fs:ext系列文件系统专用管理工具
mke2fs - create an ext2/ext3/ext4 filesystem
-t {ext2|ext3|ext4}指明要创建的文件系统类型
-b {1024|2048|4096}指明文件系统的块大小
-L 'LABEL'指明卷标
-j: 创建有日志功能的文件系统ext3
mkfs.ext3 = mkfs -t ext3 = mke2fs -j = mke2fs -t ext3
-i #: 为数据空间中每多少个字节创建一个inode;此大小不应该小于block的大小;
-N #:为数据空间创建个多少个inode;
-m #: 为管理人员预留的空间占据的百分比;
-O [^]FEATHER:开启或关闭某种特性;命令演示:mk2fs创建ext2格式的文件系统
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
[root@localhost~]#mke2fs-text2/dev/sdsda sda1 sda2 sdb sdb1 sdb2 sdb5 sdb6 sdb7
[root@localhost~]#mke2fs-text2/dev/sdb7mke2fs1.42.9(28-Dec-2013)
文件系统标签=
OStype:Linux
块大小=1024(log=0)
分块大小=1024(log=0)
Stride=0blocks,Stripewidth=0blocks
25688inodes,102400blocks
5120blocks(5.00%)reservedforthesuperuser
第一个数据块=1
Maximumfilesystemblocks=67371008
13blockgroups
8192blockspergroup,8192fragmentspergroup
1976inodespergroup
Superblockbackupsstoredonblocks:
8193,24577,40961,57345,73729
Allocatinggrouptables:完成
正在写入inode表:完成
Writingsuperblocksandfilesystemaccountinginformation:完成
[root@localhost~]#blkid/dev/sdb7/dev/sdb7:UUID="4b9767fc-a8bf-4dda-9ce1-50eb5418da04"TYPE="ext2"
指定inode数及为管理人员预留空间的百分比
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
[root@localhost~]#mke2fs-N1024-m3/dev/sdb7mke2fs1.42.9(28-Dec-2013)
文件系统标签=
OStype:Linux
块大小=1024(log=0)
分块大小=1024(log=0)
Stride=0blocks,Stripewidth=0blocks
1040inodes,102400blocks
3072blocks(3.00%)reservedforthesuperuser
第一个数据块=1
Maximumfilesystemblocks=67371008
13blockgroups
8192blockspergroup,8192fragmentspergroup
80inodespergroup
Superblockbackupsstoredonblocks:
8193,24577,40961,57345,73729
Allocatinggrouptables:完成
正在写入inode表:完成
Writingsuperblocksandfilesystemaccountinginformation:完成
…………………………………………………………………………………………………………
e2label:管理ext系列文件系统的LABEL
查看:e2label device
设定:e2label device LABEL
命令演示:设定指定块设备的卷标
1
2
3
[root@localhost~]#e2label/dev/sdb7new3[root@localhost~]#e2label/dev/sdb7
new3
…………………………………………………………………………………………………………
tune2fs:重新设定ext系列文件系统可调整参数的值(不进行格式化)
-l:查看指定文件系统超级块信息;super block
-L 'LABEL':修改卷标
-m #:修预留给管理员的空间百分比
-j: 将ext2升级为ext3
-O: 文件系统属性启用或禁用
-o: 调整文件系统的默认挂载选项
-U UUID: 修改UUID号;
命令演示:修改卷标
1
2
3
4
[root@localhost~]#tune2fs-L'anotherlabel'/dev/sdb7tune2fs1.42.9(28-Dec-2013)
[root@localhost~]#blkid/dev/sdb7/dev/sdb7:LABEL="anotherlabel"UUID="a57b2116-d72b-48d2-a648-bb6d2d5487ac"TYPE="ext2"
升级ext2到ext3
1
2
3
4
5
[root@localhost~]#tune2fs-j/dev/sdb7tune2fs1.42.9(28-Dec-2013)
Creatingjournalinode:完成
[root@localhost~]#blkid/dev/sdb7/dev/sdb7:LABEL="anotherlabel"UUID="a57b2116-d72b-48d2-a648-bb6d2d5487ac"SEC_TYPE="ext2"TYPE="ext3"
…………………………………………………………………………………………………………
dumpe2fs:
-h:查看超级块信息等同于tune2fs -l
命令演示:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
[root@localhost~]#dumpe2fs-h/dev/sdb7dumpe2fs1.42.9(28-Dec-2013)
Filesystemvolumename: anotherlabel
Lastmountedon: <notavailable>
FilesystemUUID: a57b2116-d72b-48d2-a648-bb6d2d5487ac
Filesystemmagicnumber: 0xEF53
Filesystemrevision#: 1(dynamic)
Filesystemfeatures: has_journalext_attrresize_inodedir_indexfiletypesparse_super
Filesystemflags: signed_directory_hash
Defaultmountoptions: user_xattr
Filesystemstate: clean
Errorsbehavior: Continue
FilesystemOStype: Linux
Inodecount: 1040
Blockcount: 102400
Reservedblockcount: 3072
Freeblocks: 96568
Freeinodes: 1029
Firstblock: 1
Blocksize: 1024
Fragmentsize: 1024
ReservedGDTblocks: 256
Blockspergroup: 8192
Fragmentspergroup: 8192
Inodespergroup: 80
Inodeblockspergroup: 10
Filesystemcreated: SunAug2120:11:132016
Lastmounttime: n/a
Lastwritetime: SunAug2120:52:012016
Mountcount: 0
Maximummountcount: -1
Lastchecked: SunAug2120:11:132016
Checkinterval: 0(<none>)
Reservedblocksuid: 0(userroot)
Reservedblocksgid: 0(grouproot)
Firstinode: 11
Inodesize: 128
Journalinode: 8
Defaultdirectoryhash: half_md4
DirectoryHashSeed: 3e1f3581-59c7-41b3-bd4f-d262e3ce026e
Journalbackup: inodeblocks
Journalfeatures: (none)
日志大小: 4113k
Journallength: 4096
Journalsequence: 0x00000001
Journalstart: 0
…………………………………………………………