文件系统管理
一、回归分区和文件系统
1、分区类型
- 主分区:总共最多只能分区四个
- 扩展分区:只能有一个,也算作主分区的一种,也就是说主分区加扩展分区最多有四个。但是扩展分区不能存储数据和格式化,必须再划成逻辑分区才能使用。
- 逻辑分区:逻辑分区实在扩展分区中划分的,如果是IDE硬盘,Linux最多支持59个逻辑分区,如果是SCSI硬盘Linux最多支持11个逻辑分区。
分区的设备文件名 | |
---|---|
主分区1 | /dev/sda1 |
主分区2 | /dev/sda2 |
主分区3 | /dev/sda3 |
扩展分区 | /dev/sda4 |
逻辑分区1 | /dev/sda5 |
逻辑分区2 | /dev/sda6 |
逻辑分区3 | /dev/sda7 |
注意:1、2、3、4只能给主分区使用
2、文件系统
ext2: 是ext文件系统的升级版本,Red Hat Linux7.2版本以前的系统默认都是ext2文件系统. 1993年发布, 最大支持16TB 的分区和最大2TB的文件
1TB=1024GB=1024*1024KB
ext3: 最大的区别就是带日志功能
ext4: 最大1EB文件系统和16TB文件,是Centos6.3的默认版本 1EB=1024PB=1024*1024TB
xfs: xfs是一种非常优秀的日志文件系统,它是SGI公司设计的。xfs被称为业界最先进的、最具可升级性的文件系统技术,xfs是一个64位文件系统,最大支持8EB减1字节的单个文件系统,实际部署时取决于宿主操作系统的最大块限制。对于一个32位Linux系统,文件和文件系统的大小会被限制在16TB,xfs在很多方面确实做的比ext4好,ext4受限制于磁盘结构和兼容问题,可扩展性和scalability确实不如xfs centos7默认版本
二、文件系统的常用命令
1、df [选项] [挂载点]
选项:
-a 显示所有的文件系统信息,包括特殊文件系统,如/proc,/sysfs |
---|
-h 使用习惯单位显示容量,如KB,MB或GB等 |
-T 显示文件系统类型 |
-m 以MB为单位显示容量 |
-k 以KB为单位显示 |
2、统计目录或文件大小
语法: du [选项] [目录或文件名]
如果想要统计文件的大小 可以用 ll -h命令完成,但是想要统计目录的话 还是得用du -sh 来查看.因为ll -h 只能查看下一级目录的大小
选项:
- -h : 使用习惯单位显示容量,如KB,MB或GB等
- -s : 统计总占用量,而不列出子目录和子文件的占用量.
du 命令和df 命令的区别:
- df 命令是从文件系统考虑的,不光要考虑文件占用的空间,还要统计被命令或程序占用的空间
- du命令是面向文件的,只会计算文件或目录占用的空间
3、文件系统修复命令fsck
了解就好,系统会自动进行修复
**语法:**fsck [选项] 分区设备文件名
选项:
- -a: 不要显示用户提示,自动修复文件系统
- -y: 自动修复. 和-a作用一致,不过有些文件系统只支持-y
4、 显示磁盘命令
EXT 家族的 dumpe2fs 去观,而XFS 家族用 xfs_info 去观察
xfs_info****挂载点|装置文件名
- 第1 行里面的isize 指的是inode 的容量,每个有256bytes 这么大。至于agcount 则是前面谈到的储存区群组(allocation group) 的个数,共有4 个, agsize 则是指每个储存区群组具有65536 个block 。配合第4 行的block 设定为4K,因此整个档案系统的容量应该就是4655364K 这么大!
- 第2 行里面sectsz 指的是逻辑磁区(sector) 的容量设定为512bytes 这么大的意思。
- 第4 行里面的bsize 指的是block 的容量,每个block 为4K 的意思,共有262144 个block 在这个档案系统内。
- 第5 行里面的sunit 与swidth 与磁碟阵列的stripe 相关性较高。这部份我们底下格式化的时候会举一个例子来说明。
- 第7 行里面的internal 指的是这个登录区的位置在档案系统内,而不是外部设备的意思。且占用了4K * 2560 个block,总共约10M 的容量。
- 第9 行里面的realtime 区域,里面的extent 容量为4K。不过目前没有使用。
三、挂载命令
1、查询与自动挂载
mount [-l]
mount 会显示所有的挂载设备
mount -a 依据配置文件/etc/fstab的内容,自动挂载.
2、挂载命令的格式
mount -o exec/noexec 执行/不执行,设定是否允许在文件系统中执行可执行文件,默认是exex允许
[root@rac19c1 ~]# vi hello.sh
[root@rac19c1 ~]# ./hello.sh
-bash: ./hello.sh: Permission denied
[root@rac19c1 ~]# chmod 755 hello.sh
[root@rac19c1 ~]# ./hello.sh
hello world
mount -o remount, exec/noexec 会在指定的目录下不能执行脚本 exec 取消限制.
mount -o remount 重新挂载已挂载的文件系统,一般用于指定修改特殊权限.
三、挂载光盘和U盘
1、挂载光盘
mkdir /mnt/cdrom
mount 设备名 /mnt/cdrom
2、卸载命令
umount /mnt/cdrom
卸载时出错:
[root@rac19c1 /]# umount /mnt/cdrom
umount: /mnt/cdrom: target is busy.
(In some cases useful info about processes that use
the device is found by lsof(8) or fuser(1))
解决方法: 退出当前cdrom目录,进入跟目录即可.
3、挂载U盘
fdisk -l 查看u盘设备文件名
步骤:
mkdir /mnt/usb
mount -t vfat /dev/sdb1 /mnt/usb/
cd /mnt/usb
ls
四、支持NTFS(移动硬盘)文件系统
1、下载NTFS-3g
下载插件地址: https://www.tuxera.com/community/ntfs-3g-download
2、安装NTFS-3G
tar -zxvf ntfs-3g_ntfsprogs-2013.1.13.tgz 解压
cd ntfs-3g_ntfsprogs-2013.1.13 进入解压目录
./configure 安装到默认位置中
make 编译
make install 编译安装
3、 使用
mount -t ntfs-3g 分区设备文件名 挂载点
注意: 在挂载U盘和NTFS(移动硬盘)需要将鼠标放到虚拟机上进行识别,否则识别不了.
五、fdisk 分区
1、fdisk的分区过程
2、查看新硬盘 fdisk -l
3、使用fdisk命令分区 fdisk /dev/sdb
4、重新读取分区表信息 partprobe
5、格式化分区 mkfs -t ext4 /dev/sdb1 不能格式化扩展分区
6、建立挂载点并挂载
mkdir /disk1
mkdir /disk5
mount /dev/sdb1 /disk1/
mount /dev/sdb5 /disk5/
注意: 使用fdisk -l 只能知道分区是否正常分配 mount /df 可以看到分区是否被挂载。
六、 分区自动挂载与fstab文件修复
1、 /etc/fstab文件
UUID=6e89134e-a9b5-44f9-8aef-5819d01cbe1e /boot xfs defaults 0 0
第一字段: 分区设备文件名或UUID(硬盘通用唯一识别码)
查找UUID xfs文件系统 通过blkid 命令查找。
第二字段:挂载点
第三字段:文件系统名称
第四字段:挂载参数
第五字段:指定分区是否被dump备份,o代表不备份,1代表每天备份,2代表不定期备份。
第六字段:指定分区是否被fsck检测,0代表不检测,其他数字代表检测的优先级,那么当然1的优先级比2高。
2、/etc/fstab文件修复
mount -o remount ,rw/