Linux磁盘及文件系统
CPU MEMORY(RAM) I/O
I/O:disks entercard
Disks:持久存储数据
接口类型:
IDE(ata):并行 133MB/s
SCSI:并口Ultrascsi320 320MB/s Ultrascsi640 640MB/s
SATA:串口 6gbps
SAS:串口 6gbps
USB:串口 480MB/s
并口:同一线缆可以接多块设备
IDE:两个 主 从
SCSI:
宽带 16-1
窄带 8-1
串口:
同一线缆只能接一块设备
硬盘:机械硬盘,固态硬盘
Track:磁道
Sector:扇区 512bytes
Cylinder:柱面
分区划分是基于柱面:
平均寻道时间:
5400rpm 7200rpm 15000rpm
Linux的哲学思想:一切皆文件
设备类型:
块设备:随机访问,数据交换单位是“块“
字符型设备:线性访问,数据交换单位是”字符“
设备文件FHS
/dev
设备文件:关联至设备的驱动程序,设备的访问入口
设备号
major:主设备号,区分设备类型,用于表明设备所需要的驱动程序
mior:次设备号,区分同种类型下的不同的设备,是特定设备的访问入口
mknod
make block or character special file
mknod [option] …name type [major minor]
mode:创建mode设备文件的访问权限
设备文件名ICANN
磁盘:
IDE:/dev/hd[a-z]
SCSI SATA SAS USB :/dev/sd[a-z]
分区:
/dev/sda#
注意:CentOS6 和CentOS7统统将硬盘设备文件标识为/dev/sd[a-z]#
引用设备的方式
设备文件名
卷标
UUID
磁盘分区:MBR GPT
MBR:0 sector
分为三部分:
446bytes:bootloader程序,引导启动操作系统的程序
64bytes:FAT文件系统分区表,每16个字节表示一个分区
2bytes:MBR区域得有效性标识55AA为有效
4主分区
3主1扩展
N逻辑分区
主分区和扩展分区的表示1-4
逻辑分区5+
fdisk命令
1.查看磁盘分区信息
fdisk -l [-u] [device…]
2.管理分区 fdisk device
fdisk提供了一个交互式接口来管理分区,他有许多字命令,分别用于不同的管理功能,所有的操作均在内存中完成,没有直接同步到磁盘,直到使用-w命令写入磁盘
常用命令
n:创建新分区
d:删除已有分区
t:修改分区类型
l:查看所有已知ID
w:保存并退出
q:不保存退出
m:查看帮助
p:显示现有分区信息
注意:在已经分区并且已经挂载其中某个分区的磁盘设备上创建新分区,内核可能在创建完成后无法直接识别
查看:cat /proc/partitions
通知内核强制重读磁盘分区表
Centos5:partprobe [device]
Centos6,7:partx kpartx
partx –a [device]
kpartx –af [device]
分区创建工具:parted fsdisk
创建文件系统
格式化:低级格式化(分区之前进行,划分磁道)
高级格式化(分区之后对分区进行,创建文件系统)
元数据区,数据区
文件元数据:index node
大小 权限 属主属组 时间戳 数据块指针
链接文件:存储数据指针的空间当中存储的是真实的文件访问路径
设备文件:存储数据指针的空间当中存储的是设备号
Bitmap index:位图索引
VFS virtual file system
Linux文件系统:
文件系统是操作系统用于明确存储设备或分区上的文件的方法和数据结构,即在存储设备上组织文件的方法,操作系统中负责管理和存储文件信息的软件结构称为文件管理系统,从系统角度看,文件系统是对文件存储设备的空间进行组织和分配,负责文件存储并对存入的文件进行保护和检索的系统,负责为用户建立文件,存入,读出,修改,转储文件,控制文件的存取,安全控制,日志,压缩,加密等。
ext2(无日志功能),3,4 xfs reiserfs btrfs
光盘:iso9660
网络文件系统:nfs cifs
集群文件系统:gfs ocfs2
内核是分布式文件系统:ceph
Windows文件系统:vfat,ntfs
伪文件系统:proc sysfs tmpfs hugepagefs
Unix文件系统:UFS FFS JFS
交换文件系统 swap
用户空间的分布式文件系统:mogilefs moosefs glusterfs lustre
RAW 未经处理或格式化产生的文件系统
文件系统管理工具
创建文件系统工具
mkfs
mkfs.ext2 mkfs.ext3 mkfs.ext4 mkfs.xfs …
检测及修复文件系统的工具
fsck
fsck.ext2 fsck.ext3…
查看其属性的工具
dumpe2fs tune2fs
调整文件系统特性
tune2fs
链接文件:访问同一个文件的不同路径
硬链接:多个文件路径指向同一个inode
特性:目录不支持硬链接,避免循环链接
硬链接不能跨越文件系统
创建硬链接会增加inode引用计数
ln src link_src
软链接(符号链接)指向一个文件路径的另一个文件路径
特性:符号链接与原文件是两个各自独立的文件,有各自的inode,对原文件创建符号链接,不会增加原文件链接计数
支持对目录创建符号链接
可以跨文件系统
删除符号链接文件不影响原文件,删除原文件,符号链接指定的链接不存在,符号链接无效
注意:符号链接文件大小是其指定的文件的路径字符串的字节数
ln –s src link_src
内核及文件系统的组成部分
文件系统驱动:由内核提供
文件系统管理工具:由用户空间的应用程序提供
创建文件系统的工具:
mkfs.ext2 mkfs.ext3 mkfs.ext4 向后兼容
mkfs –t ext2=mkfs.ext2
ext系列文件系统专用工具Mke2fs
mke2fs [option] device
-t {ext2|ext3|ext4} 指明要创建文件系统类型
-b {1024|2048|4096} 指明文件系统块大小
-L label 指明卷标
-j 创建有日志功能的文件系统
-i # byte-per-inode 每多少字节一个inode 指明inode与字节比率
-N # 直接指明要给此文件系统创建的inode的数量
-O [^]feature 以指定的特性创建目标文件系统
has_journal
-m # 指定预留空间百分比数值
e2label 卷标查看与设定
查看 e2label device
设定 e2label device label
tune2fs命令:查看或修改系列文件系统的某些属性
Adjust tunable filesystem parameter on ext2/ext3/ext4 filesystem
块大小创建后不可修改
-l 查看超级块的内容
修改指定文件系统的属性
-j ext2àext3
-L label 修改卷标
-m# 调整预留空间百分比
-O [^]feature 开启或关闭某种特性
-o [^] mount_options 开启或关闭某种默认选项
dumpe2fs命令:显示ext系列文件系统相关属性信息
dumpe2fs [-h] device
fsck 用于实现文件系统检测的工具
因进程意外终止或系统崩溃等原因导致电脑操作非正常终止时,此时,因检测并修复文件系统,建议离线进行
ext系列文件系统的专用工具
e2fsck check a linux ext2/ext3/ext4
e2fsck [options] device
-y 对所有问题自动回答yes
-f 即使文件处于clean状态,也强制进行检测
fsck check and clean a linux file system
-t fstype 指明文件系统类型
Fsck –t ext4 = fsck.ext4
-a 无需交互而自动修复所有错误
-r 交互修复
blkid command-line to locate/print block device
blkid device
blkid –L label 根据label定位设备
blkid –U uuid 根据uuid定位设备
mount命令挂在文件系统
mount device mount_point
设备名 挂载点
通过cat /etc/mtab文件可以查看当前已经挂在的设备、
对于挂载点,这个挂载点必须实现存在,建议使用空目录,进程在使用的设备不能被卸载,提示设备正忙,device is busy。
参数
-L label 指明卷标
-U uuid 指明UUID
-t vsftype 指明挂载的设备上的文件系统类型
-r readonly 只读
-w read and write 读写
-n 不跟新/etc/mtab
-a 自动挂载所有支持自动挂载的设备(定义在/etc/fstab文件中,且挂载选项中有anto功能)
-B –bind绑定目录到另一个目录上
查看内核追踪到的已挂载的所有设备
cat /proc/mounts
-o options 挂在文件系统的选项,多个选项使用逗号隔开
async 异步模式 对设备上的文件进行写操作时,并不是时时保存
sysnc 同步模式 内存中设备上的文件更改时,同时写进洗盘
atime/noatime 包含目录和文件
diratime/nodiratime 目录访问时间戳、
auto/noauto 是否支持自动挂载
exec/noexec 是否支持在文件系统上运行应用程序
dev/nodev 是否支持在此文件系统上使用设备文件
suid/nosuid 是否支持suid和sgid权限
remount 重新挂载
ro 只读 等同于 -r
rw 读写 等同于 -w
user/nouser 是否允许普通用户挂在此设备,默认管理员才能挂载
acl 启用此文件系统上的acl功能
Defaults 相当于rw nosuid dev exec auto nouser async
磁盘管理相关命令练习
mount 挂载相应硬盘
对硬盘进行分区
使用lsblk命令查看硬盘分区信息是否已经更新
如果没有更新可以使用partx -a device或者partprobe命令更新相关信息
如果两者都没有起效,可以查看/proc/partitions文件来使更新生效
创建文件系统mkfs.ext2/3/4/xfs或者mke2fs -t ext2/3/4 device
使用tune2fs查看文件系统相关信息
可以使用hexdump -C -v -n 512 device查看文件系统的第一个块的存储信息,最后两个字节55 aa表示文件是正常的
可以使用e2label对相应分区加上卷标
原创文章,作者:Stupid_L,如若转载,请注明出处:http://www.178linux.com/40230
评论列表(1条)
文章对一些概念性的东西,而没有通过自己的文字总结成通顺的话语,这是不合适的,建议以后尝试通过自己的语言将内容的知识点进行总结与梳理,写出优秀的博客。