文件系统管理
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 |
不过就是主分区只有一个,第一个逻辑分区也只能从5开始编号
分区 | 位置 |
---|---|
主分区1 | /dev/sda1 |
扩展分区 | /dev/sda2 |
逻辑分区1 | /dev/sda5 |
逻辑分区2 | /dev/sda6 |
逻辑分区3 | /dev/sda7 |
其中sda6中的sd代表SATA硬盘接口,hd代表IDE硬盘接口,abcd代表第几块硬盘,1234代表主分区,5678代表逻辑分区
文件系统
- ext2:是ext文件系统的升级版本,Red Hat Linux7.2版本以前的系统默认都是ext2 文件系统。1993年发布,最大支持16TB的分区和最大2TB的文件(1TB=1024GB=1024*1024KB)
- ext3: ext3文件系统是ext2文件系统的升 级版本,最大的区别就是带日志功能,以在系统突然停止时提高文件系统的可靠性 。支持最大16TB的分区和最大2TB的文件
- ext4:它是ext3文件系统的升级版。ext4 在性能 、伸缩性和可靠性方面进行了大量改进。它的变化可以说是翻天覆地的,比如向下兼容 EXT3、最大1EB文件系统和16TB文件、无限数 量子目录、Extents连续数据块概念、多块分配 、延迟分配、持久预分配、快速FSCK、日志校 验、无日志模式、在线碎片整理、inode增强、 默认启用barrier等。是CentOS 6.3的默认文件系统
(1EB=1024PB=1024*1024TB)
2. 文件系统常用命令
df命令、du命令、fsck命令和dump2fs命令
-
文件系统查看命令df
- df [选项] [挂载点]
- -a 显示所有的文件系统信息,包括特殊文件系统,如 /proc、/sysfs
- -h 使用习惯单位显示容量,如KB,MB或GB等
- -T 显示文件系统类型
- -m 以MB为单位显示容量
- -k 以KB为单位显示容量。默认就是以KB为单位
- df [选项] [挂载点]
-
统计目录或文件大小
- du [选项] [目录或文件名]
- -a 显示每个子文件的磁盘占用量。默认只统计 子目录的磁盘占用量
- -h 使用习惯单位显示磁盘占用量,如KB,MB 或GB等
- -s 统计总占用量,而不列出子目录和子文件的 占用量
- du [选项] [目录或文件名]
-
du命令与df命令的区别
- df命令是从文件系统考虑的,不光要考虑 文件占用的空间,还要统计被命令或程序占用的空间(最常见的就是文件已经删除 ,但是程序并没有释放空间)
- du命令是面向文件的,只会计算文件或目录占用的空间
-
文件系统修复命令fsck
- fsck [选项] 分区设备文件名
- -a: 不用显示用户提示,自动修复文件系统
- -y:自动修复。和-a作用一致,不过有些文件系统只支持-y
注意:知道就行,不必操作,有可能弄崩溃系统
- fsck [选项] 分区设备文件名
-
查看文件分区数据块大小 ----命令dumpe2fs
- dumpe2fs 分区设备文件名
挂载命令
查询与自动挂载
- mount 查询系统中已经挂载的设备
- mount -l 查询系统中已经挂载的设备并会显示卷标名称
- mount –a 依据配置文件/etc/fstab的内容,自动挂载
挂载命令格式
mount [-t 文件系统] [-L 卷标名] [-o 特殊选项] 设备文件名 挂载点
- -t 文件系统:加入文件系统类型来指定挂载的类型,如果文件系统是硬盘,分区就写ext3、ext4 ,如果是光盘,就写iso9660
- -L 卷标名: 挂载指定卷标的分区,而不是安装设备文件名挂载
- -o 特殊选项:可以指定挂载的额外选项
参数 | 说明 |
---|---|
atime/noatime | 更新访问时间/不更新访问时间。访问分区文件时,是否更新文件 的访问时间,默认为更新 |
async/sync | 异步/同步,默认为异步 |
auto/noauto | 自动/手动,mount –a命令执行时,是否会自动安装/etc/fstab文件内容挂载,默认为自动 |
defaults | 定义默认值,相当于rw,suid,dev,exec,auto,nouser,async这七个选项 |
exec/noexec | 执行/不执行,设定是否允许在文件系统中执行可执行文件,默认 是exec允许 |
remount | 重新挂载已经挂载的文件系统,一般用于指定修改特殊权限 |
rw/ro | 读写/只读,文件系统挂载时,是否具有读写权限,默认是rw |
suid/nosuid | 具有/不具有SUID权限,设定文件系统是否具有SUID和SGID的权限,默认是具有 |
user/nouser | 允许/不允许普通用户挂载,设定文件系统是否允许普通用户挂载 默认是不允许,只有root可以挂载分区 |
usrquota | 写入代表文件系统支持用户磁盘配额,默认不支持 |
grpquota | 写入代表文件系统支持组磁盘配额,默认不支持 |
注意:针对的都是分区
挂载光盘与U盘
挂载光盘
例子:
mkdir /mnt/cdrom/ 建立挂载点
mount -t iso9660 /dev/cdrom /mnt/cdrom/
- 挂载光盘
mount /dev/sr0 /mnt/cdrom/ - 卸载命令
umount 设备文件名或挂载点
挂载U盘
- fdisk –l 查看U盘设备文件名
- mount -t vfat /dev/sdb1 /mnt/usb/
- 卸载命令
umount 设备文件名或挂载点
注意:
- Linux默认是不支持NTFS文件系统的(NTFS分区的移动硬盘)
- 格式化就是重新写入文件系统
- fat16分区识别为fat fat32分区识别为vfat
支持NTFS文件系统
- 下载NTFS-3G插件 tar
wget https://tuxera.com/opensource/ntfs-3g_ntfsprogs-2017.3.23.tgz - 解压
tar -zxvf ntfs-3g_ntfsprogs-2013.1.13.tgz
cd ntfs-3g_ntfsprogs-2013.1.13 进入解压目录 - 安装NTFS-3G
./configure 编译器准备。没有指定安装目录,安装到默认位置中
make 编译
make install 编译安装 - 使用
mount -t ntfs-3g 分区设备文件名 挂载点
3. fdisk分区
fdisk命令分区过程
- 通过虚拟机加入新硬盘
- 查看新硬盘
fdisk -l
- 查看新硬盘
- 使用fdisk命令分区
fdisk /dev/sdb 后面不能加数字 因为此时硬盘还没有分区
通过交互进行分区,交互指令如下:
命令 | 说明 |
---|---|
a | 设置可引导标记 |
b | 编辑bsd磁盘标签 |
c | 设置DOS操作系统兼容标记 |
d | 删除一个分区 |
l | 显示已知的文件系统类型。82为Linux swap分区,83为Linux分区 |
m | 显示帮助菜单 |
n | 新建分区 |
o | 建立空白DOS分区表 |
p | 显示分区列表 |
q | 不保存退出 |
s | 新建空白SUN磁盘标签 |
t | 改变一个分区的系统ID |
u | 改变显示记录单位 |
v | 验证分区表 |
w | 保存退出 |
x | 附加功能(仅专家) |
- 重新读取分区表信息
- partprobe
- 格式化分区
- mkfs -t ext4 /dev/sdb1
- 建立挂载点并挂载
- mkdir /disk1
- mkdir /disk5
- mount /dev/sdb1 /disk1/
- mount /dev/sdb5 /disk5/
分区自动挂载与fstab文件修复
挂载操作在重启之后便会消失,每次重启都得重新挂载,使用我们需要把它写入系统挂载命令文件中,每次开机都会自动扫描挂载,使用/etc/fstab文件,将挂载信息写入文件
- /etc/fstab文件
- 第一字段:分区设备文件名或UUID(硬盘通用唯一识别码)
- 第二字段:挂载点
- 第三字段:文件系统名称
- 第四字段:挂载参数
- 第五字段:指定分区是否被dump备份,0代表不备份,1 代表每天备份,2代表不定期备份
- 第六字段:指定分区是否被fsck检测,0代表不检测,其 他数字代表检测的优先级,那么当然1的优先级比2高
注意:在写入文件之后先不要着急重启,我们可以先用mount -a命令来实现系统自动重新挂载,如果出现错误会提示,不至于系统崩溃
/etc/fstab文件修复
如果一旦写错了,出现了报错,可以在开机显示之后出现一个让你输入root用户密码的界面,再输入密码之后,可以使用vim /etc/fstab进入fstab文件修改错误,如果出现文件只有只读权限,不能修改,强制保存也不行,退出文件输入命令:mount -o remount,rw / ,重新把根分区挂载读写权限,就可以保存了,而且只能在根分区没有错误,在本机登陆,不能使用服务器或者远程连接的情况下才能修复。
4. 新建swap分区
swap 分区通常被称为交换分区,这是一块特殊的硬盘空间,即当实际内存不够用的时候,操作系统会从内存中取出一部分暂时不用的数据,放在交换分区中,从而为当前运行的程序腾出足够的内存空间。也就是说,当内存不够用时,我们使用 swap 分区来临时顶替。这种“拆东墙,补西墙”的方式应用于几乎所有的操作系统中。
-
free命令
free 查看内存与swap分区使用状况- -m:按MB字节显示
cached(缓存):是指把读取出来的数据保存在内存当中,当再次读取时,不用读取硬盘而直接从内存当中读取,加速了数据的读取过程
buffer(缓冲):是指在写入数据时,先把分散的写入操作保存到内存当中,当达到一定程度再集中写入硬盘, 减少了磁盘碎片和硬盘的反复寻道,加速了数据的写入过程
新建swap分区
-
fdisk /dev/sdb
进行交互式操作 别忘记把分区ID改为82 ,记得保存,然后重启 格式化
-
分区完之后需要格式化
mkswap /dev/sdb1 这里不能使用mkfs进行格式化
-
加入swap分区
swapon /dev/sdb1 加入swap分区
-
如果不想用了使用以下命令取消:
swapoff /dev/sdb1 取消swap分区
-
swap分区开机自动挂载
vi /etc/fstab /dev/sdb1 swap swap defaults 0 0 注意:swap前面没有/,他不是根分区下的 修改之后使用mount -a 命令来检测错误