设为首页 收藏本站
查看: 204|回复: 0

[经验分享] Linux文件系统的创建及挂载

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-9-6 08:51:36 | 显示全部楼层 |阅读模式
Linux文件系统管理

VFS:(Virtual File System 虚拟文件系统)
    VFS 是一种软件机制,与它相关的数据结构只存在于物理内存当中。所以在每次系统初始化期间,Linux 都首先要在内存当中构造一棵 VFS 的目录树(在 Linux 的源代码里称之为 namespace),实际上便是在内存中建立相应的数据结构。VFS 中的各目录其主要用途是用来提供实际文件系统的挂载点。

VFS 目录树结构:

wKiom1Xp5djzaKu4AAA27JwG-7Y849.jpg


Linux文件系统支持的类型:
基本文件系统:Ext2, Ext3, Ext4, Reiserfs(支持小文件), xfs(支持大文件), btrfs, JFS, vfat(支持WindowsFAT32), NTFS
交换分区:swap
集群文件系统:GFS2(全局文件系统), OCFS2
网络文件系统:NFS, smbfs(CIFS) Common Internet File System
光盘:iso9660
分布式文件系统:ceph
moosefs, mogilefs, hdfs, gfs, glusterfs

(1)日志型文件系统:
非日志型文件系统:ext2
日志型文件系统:ext3

(2)swap: 交换分区


创建文件系统:
在分区上执行格式化(高级格式化)要使用某种文件系统需满足两个条件:
内核中:支持此中文件系统
用户空间:有文件系统管理工具


文件系统管理工具:
mkfs、mke2fs、e2label、blkid、dumpe2fs、tune2fs、fsck、e2fsck


<<========================================【mkfs】========================================>>
mkfs命令
功能:
创建文件系统

格式:
mkfs [-V] [-t fstype] [fs-options] filesys [blocks]

常用选项:
-t fstype  指定要创建何种文件类型
-c  在制做档案系统前,检查该分区是否有坏道
-fs  指定建立文件系统时的参数

实例:
# mkfs -t ext2 /dev/sda3
# mkfs -t ext3 /dev/sda2
# mkfs -t ext4 /dev/sda1

Ext4: mkfs -t ext4 = mkfs.ext4 = mke2fs -t ext4
Ext3: mkfs -t ext3 = mkfs.ext3 = mke2fs -t ext3 = mke2fs -j
Ext2: mkfs -t ext2 = mkfs.ext2 = mke2fs -t ext2


<<========================================【mke2fs】========================================>>
mke2fs命令
功能:
创建ext系列文件系统,支持ext2、ext3、ext4
格式:
mke2fs [OPTION]... DEVICE
常用选项:
-t {ext2|ext3|ext4}
-j : 相当于-t ext3
-L Label:卷标
-b {1024|2048|4096}:指定块大小
-i #: #个字节给预留一个inode
-N #: 直接指定预留多少个Inode
-I #:Inode大小
-m #:预留管理员的空间百分比,默认为5
-O:指定分区特性
配置文件: /etc/mke2fs.conf
实例:
//先用fdisk创建一个20G的逻辑分区
wKioL1Xp6QayG5bjAAFWgpfkxHc803.jpg

//用fdisk -l 查看当前/dev/sda硬盘的已有分区,此时可见已添加了一个20G的分区sda5
wKiom1Xp5uHgb_KLAAFVYV2tgmY972.jpg

//但是此时内核仍未识别到该新添加的分区,所以还不能对其创建文件系统
wKioL1Xp6QaQhtVqAAB3qdb2hkM322.jpg

//使用partx -u 更新分区列表,此时内核已识别到该新添加的分区sda5
wKiom1Xp5uHwCntRAACeqof8aYE203.jpg

//使用mke2fs命令创建文件系统,类型为ext4,添加卷标:Newpartition,指定块大小为4096
wKioL1Xp6QbAap73AAGqAr41rII107.jpg


<<========================================【blkid】========================================>>
blkid命令
功能:
查看设备的属性,UUID和TYPE
格式:
blkid/dev/SOMEDEVICE:
实例:
//查看刚刚新建的sda5分区的文件系统类型、卷标、UUID
wKiom1Xp5zyjYxWeAABjaBAqzds134.jpg
<<========================================【e2label】========================================>>
e2label命令
功能:
查看分区的卷标和为分区设定卷标
格式
e2label/dev/SOMEDEVICE: 查看卷标
e2label/dev/SOMEDEVICE 新卷标名
实例:
//使用e2label命令查看sda5的卷标,并把卷标修改为database
wKioL1Xp6YOi_l36AACCPikGdVw415.jpg
<<========================================【dumpe2fs】========================================>>
dumpe2fs命令
功能:
用于查看ext文件系统的超级块和快组信息
格式:
dumpe2fs[ OPTIONS ]... device
常用选项:
-h: 仅查看超级块中保存的信息
<<========================================【tune2fs】========================================>>
tune2fs命令
功能:
用于调整“ext2/ext3”文件系统中的可改参数
格式:
tune2fs[ OPTIONS ]... device
常用选项:
-l:  查看超级块中的信息
-L 卷标名:  设定卷标
-m: 预留管理员的空间百分比,默认为5
-r:  设定文件系统保留块的大小
-j:  如果原来的文件系统为ext2, -j能够将其提升为ext3
-O [^] feature[,...]:  调整分区特性
-o [^] mount-options[,...]:  设定其默认挂载选项
async: 异步I/O
sync: 同步I/O
noatime/atime: 是否更新访问时间戳,建议noatime
auto/noauto: 是否能够被mount -a选项自动挂载;
diratime/nodiratime: 是否更新目录的访问时间戳;
exec/noexec:是否允许执行其中的二进制程序;
_netdev: 在网络设备启用之前禁止尝试挂载网络设备
remount: 重新挂载
acl: 启用facl  文件访问控制列表
ro:挂载为只读
rw:挂载为可读写
user/nouser: 是否允许普通挂载此设备

实例:
//开启/dev/sda5 分区的默认挂载选项,启动文件访问控制列表
wKiom1Xp55GA9-Q8AAQ470jny4s055.jpg
<<========================================【fsck】========================================>>
fsck命令
功能:
用于检查并且试图修复文件系统中的错误,当文件系统发生错误时,可用fsck指令尝试加以修复
常用选项:
-t fstype
-a:自动修复文件系统,不询问任何问题
-r: 交互式修复错误
-A:依照/etc/fstab配置文件的内容,检查文件内所列的全部文件系统
-P:当搭配"-A"参数使用时,则会同时检查所有的文件系统
-v:执行时显示详细的信息
<<========================================【e2fsck】========================================>>
e2fsck命令
功能:
用于检查文件系统的完整性,通过适当的选项可以尝试修复出现的错误
常用选项:
-f: 强制检测
-y: 对问题自动回答为yes
-b<superblock>: 指定superblock,而不使用预设的superblock
-B<区块大小>:指定区块的大小,单位为字节
-v:执行时显示详细的信息
e2fsck执行后的传回值及代表意义如下:
0 没有任何错误发生。
1 文件系统发生错误,并且已经修正。
2 文件系统发生错误,并且已经修正。
4 文件系统发生错误,但没有修正。
8 运作时发生错误。
16 使用的语法发生错误。
128 共享的函数库发生错误。
交换分区:
虚拟内存并不是真正的内存,它是在硬盘上划分出一块区域,将其格式化成物理内存相同的格式。一旦发生了物理内存不足的情况,就可以将物理内存页框中的数据移动到虚拟内存上。而物理内存空间被重新释放后,又可以将虚拟内存页框中的数据移动回去,这个过程就好像是在交换数据一样,故这一区域被称为交换分区(swap)
<<==============================【mkswap、swapon、swapoff】==============================>>
mkswap命令
功能:
用于在一个文件或者设备上建立交换分区。在建立完之后要使用sawpon命令开始使用这个交换区。
常用选项:
-c:建立交换区前,先检查是否有损坏的区块
-L label
另外两个相关命令:
swapon
-a #标记所有的交换分区都为启用状态
-p #: 在启用的时候指定其优先级
swapoff
-a #禁用所有
实例:
//创建一个空间为4G的分区/dev/sda6,然后把该分区创建为交换分区
wKioL1Xp6eyS3EUEAALAXKQ2I2g508.jpg
文件系统的挂载和使用
将额外文件系统与根文件系统某现存的目录建立关联关系,进而使得此目录作为其他文件系统访问入口的行为,称之为挂载,解除此关系关系的过程称为卸载。
挂载点: mountpoint, 设备挂载至目录:
注意:挂载点在挂载后,其内部原有的文件会被暂时隐藏,建议使用空目录作为挂载点
相关命令:mount、umount、fuser、free、df、du
<<========================================【mount】========================================>>
mount命令
功能:
用于挂载文件系统到指定的挂载点
mount:不跟任何参数,可显示当前系统所有已挂载的设备
格式:
mount[options] [-t fstype] [-o option] 设备 挂载点
常用选项:
-tfstype 挂载的文件系统格式
-a:加载文件“/etc/fstab”中描述的所有文件系统
-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
如挂载时没有设定特性,可使用tune2fs修改:
# tune2fs -o mount-option   设备默认挂载属性
# tune2fs -o ^mount-option  取消默认挂载属性
几个关键的配置文件:
/etc/rc.d/rc.sysinit:系统初始化脚本
/etc/mtab:记载的是现在系统已经装载的文件系统,包括操作系统建立的虚拟文件等;
/etc/fstab:是开机后系统自动挂载的文件系统。
此文件中定义的文件系统挂载表
每行定义一个文件系统:(每行包含的内容)
1、要挂载的设备或伪文件系统
LABEL=, UUID=
2、挂载点
3、文件系统类型
4、挂载选项,多个选项间使用逗号分隔;
defaults
5、转储频率
0:从不备份
1:每日备份
6、自检次序
0: 不自检
1:首先自检,通常只有/才有1;
<<========================================【umount】========================================>>
umount命令
功能:
卸载已挂载的分区,(当设备空闲时才可以被卸载)
格式:
umountDEVICE
umountMOUNT_POINT
<<========================================【fuser】========================================>>
fuser命令
功能:
查看占用挂载的设备的进程:
常用选项:
fuser-v 挂载点:  查看当前正在访问该挂载点的进程
fuser-km 挂载点:  终止所有正在访问该挂载点的进程:
<<========================================【free】========================================>>
free命令
功能:
查看内存空间使用状态:
常用选项:
-m: 显示结果以MB为单位
-g: 显示结果以GB为单位
内核映射文件中内存的相关信息:
# cat/proc/meminfo


<<========================================【df】========================================>>
df命令
功能:
查看当前系统上已挂载的分区,及其空间使用信息、inode信息等

常用选项:
-a或--all:包含全部的文件系统
-h或--human-readable:以可读性较高的方式来显示信息
-i或--inodes:显示inode的信息
-T或--print-type:显示文件系统的类型


<<========================================【du】========================================>>
du命令
功能:
统计文件或目录的实际大小

常用选项:
-a或-all:  显示目录中个别文件的大小
-h或--human-readable:  以K,M,G为显示单位
-L<符号链接>或--dereference<符号链接>:  显示指定符号链接的源文件大小
-S或--separate-dirs:  显示个别目录的大小时,并不含其子目录的大小
-c或--total:  除了显示个别目录或文件的大小外,同时也显示所有目录或文件的总和
-s或--summarize:  仅显示总计,只列出最后加总的值
-k或--kilobytes:  以KB(1024bytes)为单位输出
-m或--megabytes:  以MB为单位输出
-l或--count-links: 重复计算硬件链接的文件
-L<符号链接>或--dereference<符号链接>:  显示选项中所指定符号链接的源文件大小
-D或--dereference-args:  显示指定符号链接的源文件大小

实例:
[iyunv@localhost~]# du -sch /etc
23M        /etc
23M        total
[iyunv@localhost~]# ^C
[iyunv@localhost~]#



练习:创建一个10G的文件系统,类型为ext4,要求开机可自动挂载至/mydata目录
1、使用fdisk命令,创建一个10G的分区
wKiom1Xp6DHg7SPRAAHl0Dt5Zp8058.jpg

2、使用partx命令更新分区表让内核能够识别到新创建的分区
wKiom1Xp6DHh-FQHAAC0TdiJTo4215.jpg

3、使用e2fs命令为此分区创建文件系统,类型为ext4
wKioL1Xp6lbhhMJ8AAGhKbGbdtE451.jpg

4、在根目录下创建mydata目录,并使用mount命令挂载分区
wKiom1Xp6DHQKtEPAAFQUa4GUEI299.jpg

5、使用blkid命令查看该分去的UUD,并把该值复制下来
wKioL1Xp6leQM4FKAABXL-9J6uw141.jpg

6、编辑/etc/fstab配置文件,添加一行该分区的信息,下次开机后系统将会自动挂载该分区
wKiom1Xp6DLBbVHoAAE7Byqys2c659.jpg

7、可使用mount -a 命令加载当前/etc/fstab配置文件内所有分区,并立即挂载
wKioL1Xp6leyHIAsAAEG_JP0zo8532.jpg


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-109922-1-1.html 上篇帖子: Linux系统启动流程与grup 下篇帖子: linux 磁盘文件系统详解 Linux
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表