关于磁盘与文件系统大致思路:要想对磁盘进行充分利用,必须要对磁盘进行分区,第二步就是要对分区进行高级格式化,也就是在分区上创建文件系统,在此过程中可以对磁盘的各种属性进行自定义。打个比方来说,创建磁盘分区好比刚买来一个毛坯房,还未装修,还不适宜人居住,那么创建文件系统就好比在光秃秃的毛坯房上进行了装修,这样才更适于人居住使用。
要想搞懂磁盘,首先就要从根上了解硬盘的组成。
head 磁头 一个盘片正反两面对应两个磁头,有多个盘片
track 磁道 磁头旋转一圈划分的圆环
sector 扇区 512bytes
cylinder 柱面 所有盘片的相同磁道
设备:ll /dev/ 可见
块设备(block):支持随机访问,数据交换单位是块
字符设备(character):线性访问,数据交换单位为字符
设备文件:FHS
/dev
设备文件:关联至设备的驱动程序;设备的访问入口
设备号:
主设备号
major:主设备号,区分设备类型,用于标明设备所需要的驱动程序
minor:次设备号,区分同种类型下的不同的设备,是特定设备的访问入口
mknod:创建块和字符设备
mknod /dev/testdev c 110 1
-m MODE:创建后的设备文件的访问权限,利用系统调用
设备文件名:ICANN
磁盘
SCSI SATA USB SAS:/dev/sd[a-z]
并口:同一线缆可以接多块设备
SCSI:
宽带:16-1
窄带:
主分区和扩展分区表示:1-4
逻辑分区:5+
查看分区:cat /proc/partitions
通知内核强制重读磁盘分区表:
cnetos 6:partx -a [device]
元数据不包括文件名,文件名保存在目录
元数据:inode
文件使用磁盘有不连续的块,碎片
文件元数据:inode 数据块指针
********************
inode
128bytes
block=2^n sector
符号链接文件:存储数据指针的空间当中存储的是真实文件的访问路径
块和inode比例
需要预留一部分块空间给管理员
如何判断inode和block是否使用,0表示空,1表示使用
bitmap index:位图索引
找一空间,每一位对应block
GDT:快组描述符
元数据区域:
1.inode
2.inode位图
3.block位图
GDT:
stat查看元数据
文件名存放在目录上,与inode一一对应
低级格式化
高级格式化
******************
VFS:Virtual File System
linux文件系统:ext2-4,xfs(centos 7 defaults),relserfs,btrfs(测试阶段)
光盘:ISO9660
网络文件系统:nfs,cifs
集群文件系统,gfs2,osfs2
内核级分布式文件系统:ceph
windows的文件系统:vfat,ntfs
伪文件系统:proc,sysfs,tmpfs,hugepagefs
Unix的文件系统:UFS,FFS,JFS
交换文件系统:swap
用户空间得分布式文件系统
************************
虚拟内存
32位 4G内存可用
交换分区
创建文件系统工具
mkfs.ext4
检测及修复文件系统的工具
fsck
查看其属性的工具
dumpe2fs,tune2fs
调整文件系统特性
tune2fs
***
journal
降低磁盘碎片
日志区,在处理数据时先放在日志区,
如果遇到特殊情况要修复时,优先修复日志区中的内容
链接:指向同一文件的不同路径
硬链接:指向同一inode的多个路径
1.目录不支持硬链接
2,。不能跨文件系统,各分区inode各自管理,从0开始
3。引用次数增加
4.大小相同
符号链接:指向一个文件的指针指向另一文件路径
1.符号链接与文件时两个单独文件,有各自inode
2.可跨分区
3.文件大小为指向的路径的字符串的字节数
ls -i example.txt
ls -i命令列出整个目录文件,即文件名和inode号码:
ls -i /etc
理解了上面这些知识,就能理解目录的权限。目录文件的读权限(r)和写权限(w),都是针对目录文件本身。由于目录文件内只有文件名和inode号码,所以如果只有读权限,只能获取文件名,无法获取其他信息,因为其他信息都储存在inode节点中,而读取inode节点内的信息需要目录文件的执行权限(x)。
先创建分区,再创建文件系统,
内核中有相关的文件系统驱动程序,可使用lsmod查看
lsmod :查看内核已经加载的驱动程序
文件系统管理工具:由用户控件的应用程序提供
1.
mkfs -t ext2=mkfs.ext2
blkid /dev/sda6
2.
mke2fs ext专用工具
-t ext4 指定要创建的文件系统类型
-b {1024|2048|4096(MAX默认)}指定文件系统的block大小
-L 卷标
-j 创建有日志功能的文件系统的ext3
mke2fs -j=mke2fs -t ext3=mkfs.ext3
-i #:每多少字节一个inode,bytes-per-inode,
指明inode与字节的比率,即多少字节创建一个inode,
默认为
-N # 直接指明要给此文件系统创建的inode的数量
-O [^]FEATURE :以指定的特性创建目标文件系统,启用某种特性
-m #指定预留空间百分比:5 –>5%s
3.改变卷标
e2label 卷标的查看和设定
e2label /dev/sda8 sb
4.tune2fs 查看修改ext系列文件的某些属性
不可修改:块大小,
修改文件系统属性
-j ext2–>ext3
-L label:修改卷标
-m #:调整预留空间百分比
-O FEATURE 启用或者关闭某种特性
-o [^]mount_options:开启或者关闭某种默认挂载选项
acl
^acl
5.dumpe2fs:显示所有块组信息,类似tune2fs
-d 只显示superblock
6.
fsck命令:用于实现文件系统检测的工具
因进程意外终止或者系统崩溃等原因导致进程非正常终止,可能造成文件损坏
此时要进行离线修复
e2fsck device
-y 对所有问题回答yes
-f 强制检测
fsck.ext4
-a:无需交互修复所有错误
-r 交互式修复
通用命令
7.
blkid
-L label 根据卷名定位分区
-U UUID
8。
swap文件系统
linux'上的交换分区必须使用独立的文件系统
且文件系统的System ID必须为82
创建swap设备:
mkswap
-L :指明卷标
-f : 强制
9.
windows无法识别Linux的文件系统,要交叉使用时,
应该使用同时支持的文件系统
10.
根文件系统之外的其他文件爱系统想要能够被访问,都必须通过关联至根文件系统上的某个目录来实现,此关联操作即为挂载:此目录为挂载点
挂载点:用于作为另一个文件系统的访问入口
1.事先存在
2.应该使用未被或不会被其他进程使用到的目录
3.挂载点下原有的文件将不会被隐藏
11.
mount
-r 只读filesystem
-w 读写挂载
-n 默认情况下,设备挂载或卸载的操作会同步更新至/etc/fstab中
-n禁止更新同步
-t vfs :指明要挂载的设备上的文件系统的类型,多数情况下可省略,
此时mount会通过blkid来判断要挂载的设备的文件系统类型
-L label:挂载时以卷标的方式指明设备
mount -L lable dir
-U UUID 以UUID的方式指明设备
-o options:挂载选项
sync/async 同步/异步操作:
异步:先在内存写完,再写入磁盘
atime/noatime:文件或目录被访问时是否更新其访问时间戳
diratime/nodiratime:目录访问时,是否保存访问时间戳
remount:重新挂载;
acl;支持使用facl功能访问控制列表
1.mount -o acl device dir
2.tune2fs -o acl device
ro 只读
rw 读写
/dev/nodev:此设备上是否允许创建设备文件
exec/noexec 是否允许运行此设备上的程序文件
auto/noauto:自动挂载
/user/nouser:是否用户挂载此文件系统
suid/nosuid:是否允许程序上的suid和sgid特殊权限生效
default:
12。 实现将目录绑定至另一个目录上,作为临时访问入口
mount –bind 源目录 目标目录
13.查看当前系统所有已挂载的设备
1.mount
2.cat /etc/mtab
3.cat /proc/mounts
挂载光盘
mount -r /dev/cdrom mount_point
挂载U盘:需事先识别U盘的设备文件
mount -r
14.
umount
注意:正在被进程访问的挂载点无法卸载
查看被哪些进程所占用
lsof mount——point
fuser -v mount_point
-km /mnt:踢出正在使用/mnt的用户
终止所有某挂载点的进程
fuser -km
15
挂载本地回环设备
mount -o loop /path/to/some_loop mount_point
16
交换分区
创建交换分区:mkswap
启动禁用
swapon
-a:定义在/etc/fstab文件中的所有swap设备
swapoff
/etc/fstab
设备除根文件系统以外的其它文件系统能够开机时的挂载
每行定义一个要挂载的文件系统及相关属性
6个字段:
1.要挂载的设备
label
UUID伪文件系统
2.挂载点
swap 类型的设备的挂载点为swap
3.文件系统类型
4.挂载选项
defaults:默认
如果使用多个挂载选项,彼此间以逗号分隔
defaults,acl,noatime,noexec
5.转储频率
0:从不备份
1.每天备份
2.隔天备份
6.自检持续
0:不自检
1.首先自检,通常只能是根文件系统可用
2.次级自检
mount -a:可自动挂载定义在/etc/fstab中的所有支持自动挂载的设备
16
df:disk free
-h 人类可读
-l 本地可读
-i inode的使用状态
du:显示文件大小
-s :sumary
-h human-readable
原创文章,作者:000,如若转载,请注明出处:http://www.178linux.com/41618