Linux文件系统管理
Linux文件系统称为vfs(Virtual File System 虚拟文件系统)可支持的文件系统类型:
Linux:ext2, ext3, ext4, reiserfs, xfs,btrfs, swap
光盘:iso9660
Windows: fat32(vfat), ntfs
Unix: ffs, ufs, jfs, jfs2
网络文件系统:nfs, cifs
集群文件系统:ocfs2, gfs2
分布式文件系统:ceph,
moosefs, mogilefs,hdfs, gfs, glusterfs
(1) 日志型文件系统
非日志型文件系统:ext2
日志型文件系统:ext3
(2) swap:交换分区
分区工具:fdisk;lparted:sfdisk
Fdisk:
[root@localhost~]# fdisk
Usage:
fdisk [options]
fdisk [options] -l
fdisk -s
分区管理子命令:
p: 显示
n: 创建
d: 删除
t: 修改分区ID
l: 列出所有支持ID类型
w: 保存退出
q: 放弃修改并退出
m: 获取帮助
新建分区后需要查看系统是否识别新的分区
[root@localhostdev]# cat /proc/partitions
majorminor #blocks name
8 0 20971520 sda
8 1 204800 sda1
8 2 4194304 sda2
8 3 16571392 sda3
8 16 20971520 sdb
8 17 1 sdb
创建工具(mkfs)
mkfs -ttype DEVICE =mkfs.type DEVICE
使用blkid 查看分区信息
[root@localhost/]# mkfs -t ext4 /dev/sdb5
mke2fs1.41.12 (17-May-2010)
Filesystemlabel=
OS type:Linux
Blocksize=1024 (log=0)
Fragmentsize=1024 (log=0)
Stride=0blocks, Stripe width=0 blocks
56inodes, 448 blocks
22 blocks(4.91%) reserved for the super user
Firstdata block=1
Maximumfilesystem blocks=524288
1 blockgroup
8192blocks per group, 8192 fragments per group
56 inodesper group
Writinginode tables: done
Filesystemtoo small for a journal
Writingsuperblocks and filesystem accounting information: done
Thisfilesystem will be automatically checked every 22 mounts or
180 days,whichever comes first. Use tune2fs -c or-i to override.
[root@localhost/]# blkid /dev/sdb5
/dev/sdb5:UUID="9b25009f-5f8f-4d17-876e-03e9e8435805" TYPE="ext4"
EXT系列文件系统在新系统中仍然有较好的支持
EXT系列文件系统专用管理工具
mke2fs
创建文件系统:
mke2fs [OPTION]... DEVICE
-t {ext2|ext3|ext4}
-b {1024|2048|4096}
-L 'LABEL'
-j: mke2fs -t ext3
-i #:
-N #:
-m #: 预留磁盘空间占据多大百分比的空间为后期管理使用;
-O FEATURE[,...]
-O ^FEATURE:关闭此特性
has_journal
[root@localhost/]# mke2fs -t ext2 -L mytest /dev/sdb6
mke2fs1.41.12 (17-May-2010)
Filesystemlabel=mytest
OS type:Linux
Blocksize=4096 (log=2)
Fragmentsize=4096 (log=2)
Stride=0blocks, Stripe width=0 blocks
514080inodes, 2056184 blocks
102809blocks (5.00%) reserved for the super user
Firstdata block=0
Maximumfilesystem blocks=2105540608
63 blockgroups
32768blocks per group, 32768 fragments per group
8160inodes per group
Superblockbackups stored on blocks:
32768, 98304, 163840, 229376, 294912,819200, 884736, 1605632
Writinginode tables: done
Writingsuperblocks and filesystem accounting information: done
Thisfilesystem will be automatically checked every 39 mounts or
180 days,whichever comes first. Use tune2fs -c or-i to override.
root@localhost/]# blkid /dev/sdb6
/dev/sdb6:LABEL="mytest" UUID="5d90f188-8dd3-4c64-aa44-7ad93ce7c138"TYPE="ext2"
文件系统属性查看及调整工具:
e2label
e2lable DEVICE[LABEL]
[root@localhost/]# e2label /dev/sdb6
mytest
[root@localhost/]# e2label /dev/sdb6 mytest1
[root@localhost/]# e2label /dev/sdb6
mytest1
tune2fs
显示ext系列文件系统的属性,或调整其属性;
-l:显示超级块中的信息;显示整个文件的属性及布局等相关信息;
-L 'LABEL':修改卷标;
-m #: 调整预留给管理员的管理空间百分比;
-j: ext2 --> ext3
-O:文件系统属性的启动或关闭
-o:文件系统默认挂载选项的启用或关闭
[root@localhost/]# tune2fs -L mytest2 /dev/sdb6
tune2fs1.41.12 (17-May-2010)
[root@localhost/]# tune2fs -m 2 /dev/sdb6
tune2fs1.41.12 (17-May-2010)
Settingreserved blocks percentage to 2% (41123 blocks)
[root@localhost/]# tune2fs -j /dev/sdb6
tune2fs1.41.12 (17-May-2010)
Creatingjournal inode: done
Thisfilesystem will be automatically checked every 39 mounts or
180 days,whichever comes first. Use tune2fs -c or-i to override
[root@localhost/]# tune2fs -l /dev/sdb6
tune2fs1.41.12 (17-May-2010)
Filesystem volume name: mytest2
Lastmounted on:
FilesystemUUID: 5d90f188-8dd3-4c64-aa44-7ad93ce7c138
Filesystemmagic number: 0xEF53
Filesystemrevision #: 1 (dynamic)
Filesystemfeatures: has_journal ext_attrresize_inode dir_index filetype sparse_super large_file
Filesystemflags: signed_directory_hash
Defaultmount options: (none)
Filesystemstate: clean
Errorsbehavior: Continue
FilesystemOS type: Linux
Inodecount: 514080
Block count: 2056184
Reserved block count: 41123
Freeblocks: 1986594
Freeinodes: 514069
Firstblock: 0
Blocksize: 4096
Fragmentsize: 4096
ReservedGDT blocks: 501
Blocksper group: 32768
Fragmentsper group: 32768
Inodesper group: 8160
Inodeblocks per group: 510
Filesystemcreated: Sun Aug 30 15:25:58 2015
Lastmount time: n/a
Lastwrite time: Sun Aug 30 16:53:192015
Mountcount: 0
Maximummount count: 39
Lastchecked: Sun Aug 30 15:25:582015
Checkinterval: 15552000 (6 months)
Nextcheck after: Fri Feb 26 15:25:582016
Reservedblocks uid: 0 (user root)
Reservedblocks gid: 0 (group root)
Firstinode: 11
Inodesize: 256
Requiredextra isize: 28
Desiredextra isize: 28
Journalinode: 8
Defaultdirectory hash: half_md4
DirectoryHash Seed: 2e1f0a82-3f2e-490e-bc4f-3ee76c5a8061
Journalbackup: inode blocks
dumpe2fs:
-h: 仅显示超级块信息;
文件系统检测:
fsck: Filesystem check
fsck -t type
fsck.type
-a: 自动修复错误
-r: 交互式修复错误
-f: 强制检测
e2fsck:ext系列文件系统专用的检测修复工具;
-y: 自动回答为“yes”
-f:force
需要保持 type 与分区的文件系统一致否则可能损坏文件
文件系统的挂载和使用
mount:挂载
通过读取/etc/mtab文件来显示当前系统所有已经挂载的设备;
[root@localhost/]# mount
/dev/sda3on / 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/sda1on /boot type ext4 (rw)
none on/proc/sys/fs/binfmt_misc type binfmt_misc (rw)
gvfs-fuse-daemonon /root/.gvfs type fuse.gvfs-fuse-daemon (rw,nosuid,nodev)
/dev/sr0on /media/CentOS_6.7_Final type iso9660(ro,nosuid,nodev,uhelper=udisks,uid=0,gid=0,iocharset=utf8,mode=0400,dmode=0500)
mount -a:挂载/etc/fstab文件中的所有支持自动挂载的文件系统;
mount[options] [-o options] DEVICE MOUNT_POINT
[options]:命令选项
[-o options]:挂载选项
DEVICE: 要挂载的设备
(1) 设备文件:/dev/sda5
(2) 卷标:-L 'LABEL'
(3) UUID:-U 'UUID'
(4) 伪文件系统名称
MOUNT_POINT: 挂载点
常用选项:
-t type:文件系统类型
-r: 以“只读”方式挂载此文件系统
-w: 以“读写”方式挂载此文件系统
-n:每个文件系统在挂载时都会自动更新/etc/mtab文件,-n用于禁止此功能;
此时,如果想查看挂载的所有文件系统:cat /proc/mounts
-a: 自动挂载所有支持自动挂载的设备;
-B:绑定目录至另一个目录上;
-o 挂载选项:
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
umount:卸载命令
# umount DEVICE
# umount MOUNT_POINT
查看正在访问指定挂载点的进程:
# fuser -vMOUNT_POINT
终止所有正在访问指定的挂载点的进程:
# fuser -kmMOUNT_POINT
交换分区:
free
查看memory和swap的使用状态
-m: 以MB为单位
[root@localhost/]# free -m
total used free shared buffers cached
Mem: 1863 510 1352 2 41 164
-/+buffers/cache: 305 1557
Swap: 4095 0 4095
-g: 以GB为单位
[root@localhost/]# free -g
total used free shared buffers cached
Mem: 1 0 1 0 0 0
-/+buffers/cache: 0 1
Swap: 3 0 3
mkswap:创建交换分区
mkswap[option] DEVICE
-L 'LABEL'
swapon:启用交换分区
swapon [option][DEVICE]
-a: 激活所有交换分区
-pPRIORITY: 设定其优先级;
swapoff:禁用交换分区
swapoff [option][DEVICE]
文件系统等空间占用信息的查看工具
df: diskfree
-:human-readable
[root@localhost/]# df -h /dev/sdb6
Filesystem Size Used Avail Use% Mounted on
- 917M 244K 917M 1% /dev
-i: inode数量
-P: 以Posix兼容的格式输出
du: diskusage
-h:human-readable
[root@localhost/]# du -h /dev/sdb6
0 /dev/sdb6
-s:summary