Linux文件系统管理
说明:硬盘格式化过程,即写入文件系统操作。
1、为何将一个硬盘划分多个分区
1.1方便管理和控制
首先,可以将系统中的数据(也包括程序)按不同的应用分成几类,再将这些不同类型的数据分别存放在不同的磁盘分区中,使数据维护和管理简单化。
1.2提高系统的读写效率
硬盘分区,可以直接缩短系统读写磁盘时磁头移动的距离,提高硬盘的读写效率。
1.3开启磁盘配额功能
开启限制用户使用磁盘配额的功能,避免用户浪费磁盘资源。
1.4便于备份和恢复
硬盘分区后,针对分区进行备份和恢复操作,使备份和恢复的数据量下降,备份效率提高。
2、文件系统相关命令
2.1df命令(显示硬盘使用情况)
命令基本格式:
[root@localhost ~]#df [选项] [目录或文件名]
df命令常用选项及作用
选项 | 作用 |
-a | 显示所有文件系统信息,包括系统特有的 /proc、/sysfs 等文件系统; |
-m | 以 MB 为单位显示容量; |
-k | 以 KB 为单位显示容量,默认以 KB 为单位; |
-h | 使用人们习惯的 KB、MB 或 GB 等单位自行显示容量; |
-T | 显示该分区的文件系统名称; |
-i | 以含有 inode 的数量来显示。 |
2.2du命令(统计目录或文件所占磁盘空间大小)
命令基本格式:
[root@localhost ~]#du [选项] [目录或文件名]
选项:
-a:显示每个子文件的磁盘占用量,默认只统计子目录的磁盘占用量。
-h:使用习惯单位显示磁盘占用量,如 KB、MB 或 GB 等。
-s:统计总磁盘占用量,不列出子目录和子文件的磁盘占用量。
小结:df和du命令的区别
1)df命令统计的分区更准确,是真正的空闲空间。
2)du命令是面向文件的,只会计算文件或目录占用的磁盘空间。
2.3mount命令(挂载)
命令基本格式:
[root@localhost ~]#mount
#显示出系统中已挂载的设备信息。
[root@localhost ~]#mount -a
#-a选项自动检查/etc/fstab文件挂载设备。
[root@localhost ~]# mount [-t 文件系统类型] [-o 特殊选项] 设备文件名 挂载点
选项含义:
-t 系统类型:Linux 常见支持类型有 EXT2、EXT3、EXT4、iso9660(光盘格式)、vfat等。
-o 特殊选项:指定挂载的额外选项,比如读写权限,如果不指定,则使用默认值(defaults)。
[root@localhost ~]#mount –o remount,noexec /boot
#重新挂载/boot分区,并使用noexec(赋予不可执行权限)
[root@localhost ~]#mount –o remount,exec /boot
#赋予可执行权限
[root@localhost ~]#mount –o iso9660 /dev/sr0 /mnt/cdrom
#挂载光盘
[root@localhost ~]#umount /dev/sr0 /mnt/cdrom
#卸载光盘
[root@localhost ~]#mount –t vfat –o iocharset=utf8 /dev/sdb1 /mnt/usb
#挂载U盘
2.4开机自动挂载硬件设备
说明:修改/etc/fstab文件实现开机自动挂载。
1)用来挂载每个文件系统的分区设备文件名或 UUID(用于指代设备文件名);
2)挂载点;
3)文件系统的类型;
4)各种挂载参数;
5)指定分区是否被 dump 备份,0不备份,1每天备份,2不定期备份;
6)指定分区是否被 fsck 检测,0不检查,1启动检查,2启动后检查。
2.5fsck命令(检测和修复文件系统,避免使用)
命令基本格式:
[root@localhost ~]#fsck分区设备文件名
注意:使用fsck命令时,一定先卸载磁盘分区。
2.6dump2fs命令(查看文件系统信息)
命令基本格式:
[root@localhost ~]#dump2fs [-h] 文件名
2.7fdisk命令(给硬盘分区)
命令基本格式:
[root@localhost ~]#fdisk -l #列出系统分区
[root@localhost ~]#fdisk 设备文件名 #给硬盘分区
注意:不要在当前的硬盘上使用fdisk,如此会删除整个系统。
fdisk交互
命令 | 说 明 |
a | 设置可引导标记 |
b | 编辑 bsd 磁盘标签 |
c | 设置 DOS 操作系统兼容标记 |
d | 删除一个分区 |
1 | 显示已知的文件系统类型。82 为 Linux swap 分区,83 为 Linux 分区 |
m | 显示帮助菜单 |
n | 新建分区 |
0 | 建立空白 DOS 分区表 |
P | 显示分区列表 |
q | 不保存退出 |
s | 新建空白 SUN 磁盘标签 |
t | 改变一个分区的系统 ID |
u | 改变显示记录单位 |
V | 验证分区表 |
w | 保存退出 |
X | 附加功能(仅专家) |
说明:硬盘分区有3种,分别是主分区、扩展分区和逻辑分区。对于硬盘来说,主分区至少有1个,最多有4个,扩展分区可没有,最多有1个,且主分区+扩展分区总共不能超过4个,逻辑分区可以有若干个。
说明:建立主分区过程:"fdisk 设备文件名-> n(新建)->p(建立主分区) -> 1(指定分区号) -> 回车(默认从1柱面开始建立分区)->+5G(指定分区大小)"。注意,我们的分区还没有格式化和挂载,所以还不能使用。
注意1:扩展分区不能被格式化和直接使用的,所以还要在扩展分区内部建立逻辑分区。
注意2:所有分区过程中不保存并退出是不会生效的,使用 q 命令不保存退出。使用w命令,保存退出。有时因为系统的分区表正忙,所以需要重新启动系统才能使新的分区表生效。
处理方法partprobe命令:
[root@localhost ~]# partprobe
2.8parted命令
命令基本格式:
[root@localhost ~]#parted 硬盘设备文件名
#进入交互模式
parted常见的交互命令
parted交互命令 | 说 明 |
check NUMBER | 做一次简单的文件系统检测 |
cp [FROM-DEVICE] FROM-NUMBER TO-NUMBER | 复制文件系统到另一个分区 |
help [COMMAND] | 显示所有的命令帮助 |
mklabel,mktable LABEL-TYPE | 创建新的磁盘卷标(分区表) |
mkfs NUMBER FS-TYPE | 在分区上建立文件系统 |
mkpart PART-TYPE [FS-TYPE] START END | 创建一个分区 |
mkpartfs PART-TYPE FS-TYPE START END | 创建分区,并建立文件系统 |
move NUMBER START END | 移动分区 |
name NUMBER NAME | 给分区命名 |
print [devices|free|list,all|NUMBER] | 显示分区表、活动设备、空闲空间、所有分区 |
quit | 退出 |
rescue START END | 修复丢失的分区 |
resize NUMBER START END | 修改分区大小 |
rm NUMBER | 删除分区 |
select DEVICE | 选择需要编辑的设备 |
set NUMBER FLAG STATE | 改变分区标记 |
toggle [NUMBER [FLAG]] | 切换分区表的状态 |
unit UNIT | 设置默认的单位 |
Version | 显示版本 |
步骤:
1)(parted) mklabel gpt #修改分区表命令
2)(parted) mkpart #创建分区
3)(parted) mkfs #格式化,默认ext2格式
4)(parted) print #打印分区
5)(parted) resize #调整分区大小(注意先卸载分区)
6)(parted) rm #删除分区
注意:需要格式化ext4格式,执行外部mkfs命令。
[root@localhost ~]#mkfs [-t文件系统格式] 分区设备文件名
2.9建立swap分区
[root@localhost ~]#fdisk /dev/sdb #建立分区,注意修改分区ID为82
[root@localhost ~]#mkswap /dev/sdb1 #格式化分区
[root@localhost ~]#free #free命令主要查看内存和swap分区的使用情况
[root@localhost ~]#swapon 分区设备文件名 #加载入新的swap分区