磁盘和文件系统管理
前言
之前简单介绍过磁盘分区(《Linux 分区工具 fdisk 的简单使用》),现在就来说说分区后的磁盘,怎样格式化及挂载。
创建文件系统
创建工具
创建文件系统,一般来说只需要 mkfs系
的命令就可以搞定了,如:
mkfs.ext2, mkfs.ext3, mkfs.ext4, mkfs.xfs, mkfs.vfat, ...
mkfs.xxx device;
Windows 无法识别 Linux 的文件系统; 因此,存储设备需要两种系统之间交叉使用时,应该使用 windows 和 Linux 同时支持的文件系统: fat32(vfat)
。
ext 系列文件系统专用管理工具: mke2fs
。
mke2fs [OPTIONS] device
-t {ext2|ext3|ext4}:指明要创建的文件系统类型
mkfs.ext4 = mkfs -t ext4 = mke2fs -t ext4
-b {1024|2048|4096}:指明文件系统的块大小;
-L LABEL:指明卷标;
-j:创建有日志功能的文件系统ext3;
mke2fs -j = mke2fs -t ext3 = mkfs -t ext3 = mkfs.ext3
-i number:bytes-per-inode,指明inode与字节的比率;即每多少字节创建一个Indode;
-N number:直接指明要给此文件系统创建的inode的数量;
-m number:指定预留的空间,百分比;
-O [^]FEATURE:以指定的特性创建目标文件系统;
swap 文件系统创建: mkswap
。
Linux 上的交换分区必须使用独立的文件系统,且文件系统的 System ID
必须为 82
;
-L LABEL:指明卷标
-f:强制
卷标设定
卷标的查看和设定工具: e2label
。
查看: e2label device
设定: e2label device LABEL
检测及修复文件系统
tune2fs命令
:查看或修改 ext 系列文件系统的某些属性。
注意:块大小创建后不可修改。
-l:查看超级块的内容;
修改指定文件系统的属性:
-j:ext2 --> ext3;
-L LABEL:修改卷标;
-m number:调整预留空间百分比;
-O [^]FEATHER:开启或关闭某种特性;
-o [^]mount_options:开启或关闭某种默认挂载选项
开启:acl
关闭:^acl
因进程意外中止或系统崩溃等原因导致定稿操作非正常终止时,可能会造成文件损坏。此时,应该检测并修复文件系统(建议离线进行)。
ext 系列文件系统的专用修复工具: e2fsck 。
-y:对所有问题自动回答为yes;
-f:即使文件系统处于clean状态,也要强制进行检测;
通用工具: fsck -t xxx(fsck.xxx)
。
xxx
为文件系统,如:
fsck -t ext4 = fsck.ext4
-t fstype:指明文件系统类型;
-a:无须交互而自动修复所有错误;
-r:交互式修复;
查看文件系统属性
dumpe2fs命令
:显示 ext 系列文件系统的属性信息。
dumpe2fs [-h] device
blkid 命令:显示设备属性信息。
blkid -L LABEL:根据LABEL定位设备
blkid -U UUID:根据UUID定位设备
mount 和 umount
简介
mount
即装配或挂载之意,一个新的分区,如果想要对其进行访问,必须要使其符合 FHS
规范,即将关联到由 /
开始的目录树中,此关联操作即为 挂载
;此目录即为 挂载点
。
挂载点( mount_point ),用于作为另一个文件系统的访问入口,有如下3个特性:
- 事先存在;
- 应该使用未被或不会被其他进程使用到的目录;
- 挂载点下原有的文件将会被隐藏。
mount 命令
命令格式:
mount [-nrw] [-t vfstype] [-o options] device dir
命令选项:
man
和 help
里面都有详细说明,这里只选取一些常用的进行解释。
-a:可自动挂载定义在/etc/fstab文件中的所支持自动挂载的设备;
-r:readonly,只读挂载;
-w:read and write, 读写挂载;
-n:默认情况下,设备挂载或卸载的操作会同步更新至/etc/mtab文件中;-n用于禁止此特性;
-t vfstype:指明要挂载的设备上的文件系统的类型;多数情况下可省略,此时mount会通过blkid来判断要挂载的设备的文件系统类型;
-L LABEL:挂载时以卷标的方式指明设备;
-U UUID:挂载时以UUID的方式指明设备;
-o options:挂载选项
sync/async:同步/异步操作;
atime/noatime:文件或目录在被访问时是否更新其访问时间戳;
diratime/nodiratime:目录在被访问时是否更新其访问时间戳;
remount:重新挂载;
acl:支持使用facl功能;
ro:只读
rw:读写
dev/nodev:此设备上是否允许创建设备文件;
exec/noexec:是否允许运行此设备上的程序文件;
auto/noauto:
user/nouser:是否允许普通用户挂载此文件系统;
suid/nosuid:是否允许程序文件上的suid和sgid特殊权限生效;
defaults:Use default options: rw, suid, dev, exec, auto, nouser, async, and relatime.
Tip: mount
可以实现将目录绑定至另一个目录上,作为其临时访问入口:
mount --bind 源目录 目标目录
查看当前系统所有已挂载的设备
mount
cat /etc/mtab
cat /proc/mounts
常用挂载
一般来说如果没有特殊要求,可以使用最简方式快速挂载:
mount device dir
挂载光盘:
mount -r /dev/cdrom mount_point
挂载本地的回环设备(比如iso文件等镜像文件):
mount -o loop /PATH/TO/SOME_LOOP_FILE MOUNT_POINT
umount 命令:
命令格式:
umount device|dir
注意:正在被进程访问到的挂载点无法被卸载。
查看被哪个或哪些进程所战用:
lsof MOUNT_POINT
fuser -v MOUNT_POINT
终止所有正在访问某挂载点的进程:
fuser -km MOUNT_POINT
自动挂载
/etc/fstab
文件中所配置的文件系统挂载,可以在开机时自动挂载。
每行定义一个要挂载的文件系统及相关属性:
/dev/vdb1 /var ext3 defaults 0 0
每个字段所代表的意思如下:
1. 要挂载的设备:
a. 设备文件;
b. LABEL;
c. UUID;
d. 伪文件系统:如sysfs, proc, tmpfs等;
2. 挂载点:
swap类型的设备的挂载点为swap;
3. 文件系统类型;
4. 挂载选项:
defaults:使用默认挂载选项;
如果要同时指明多个挂载选项,彼此间以逗号分隔:
defaults,acl,noatime,noexec
5. 转储频率:
0:从不备份;
1:每天备份;
2:每隔一天备份;
6. 自检次序:
0:不自检;
1:首先自检,通常只能是根文件系统可用1;
2:次级自检;
交换分区的启用和禁用
相当于将 swap格式
的分区挂载到 swap
进行使用。
创建交换分区的命令: mkswap
。
启用: swapon
:
-a:定义在/etc/fstab文件中的所有swap设备;
禁用: swapoff
:
swapoff DEVICE