关于磁盘与文件系统大致思路:要想对磁盘进行充分利用,必须要对磁盘进行分区,第二步就是要对分区进行高级格式化,也就是在分区上创建文件系统,在此过程中可以对磁盘的各种属性进行自定义。打个比方来说,创建磁盘分区好比刚买来一个毛坯房,还未装修,还不适宜人居住,那么创建文件系统就好比在光秃秃的毛坯房上进行了装修,这样才更适于人居住使用。
要想搞懂磁盘,首先就要从根上了解硬盘的组成。
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
评论列表(1条)
文章对磁盘管理各方面知识整理的很全面,层次结构也很清晰,但是对于硬盘基础我们能够给出一些图片来叙述各个硬盘的各个组件会更好,同时,也希望作者能通过差资料,将笔记中的关键字组织成通顺的话。