磁盘分区及文件系统管理
1.设备类型
块设备(block):随机访问,数据交换单位是“块”;
字符设备(character):线性访问,数据交换单位是“字符”;
设备文件:FHS
设备文件位置:/dev
设备文件:关联至设备的驱动程序,用于识别设备的访问入口
设备号:
kajor:主设备号,区分设备类型,用于标明设备所需的驱动程序;
minor:次设备号,同种类型下的不同设备,是特定设备的访问入口;
mknod:创建块或字符设备文件
NAME
mknod - make block or character special files
SYNOPSIS
mknod [OPTION]... NAME TYPE [MAJOR MINOR]
例:mknod /dev/testdev c 111 1 创建设备类型为"c",主设备号为111,次设备号为1的设备文件;
mknod -m 创建设备文件访问权限位
2.磁盘分区
fdisk +dev 指定磁盘进行分区,fdisk所有操作都是在内存上执行的
例:fdisk /dev/sda 对sda进行分区操作
fdisk -l 查看磁盘分区信息
# fdisk -l
Disk /dev/sda: 53.7 GB, 53687091200 bytes, 104857600 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x000edc2e
Device Boot Start End Blocks Id System --id为分区类型,主分区为83,扩展分区为5,swap分区为82
/dev/sda1 * 2048 411647 204800 83 Linux
/dev/sda2 411648 104857599 52222976 83 Linux
Disk /dev/sdb: 68.7 GB, 68719476736 bytes, 134217728 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
引用设备的方式:设备文件名(/dev/sdb2),卷标,UUID
磁盘的分区类型:MBR和GPT
MBR分区:master boot record
MBR:位于0sector零扇区中(1sector=512字节)
MBR由三部分组成:1.446byte:bootloader引导启动操作系统的程序
2.64byte:用于存放分区表,每16个字节标识一个分区,一共只能有4个分区
3.2byte:MBR区域的有效性标识,55AA为有效,否则为无效
注:扩展分区不在主分区表中,而是指向磁盘空间创建逻辑分区表
fdisk +/dev/sd[a-z] 对磁盘进行分区操作,fdisk命令所有操作均在内存上搪行,直至使用w命令保存完成;
fdisk分区模式常用分区命令
a toggle a bootable flag
b edit bsd disklabel
c toggle the dos compatibility flag
d delete a partition 删除分区
g create a new empty GPT partition table
G create an IRIX (SGI) partition table
l list known partition types 列出已知分区类型
m print this menu 查看帮助信息
n add a new partition 创建分区
o create a new empty DOS partition table
p print the partition table 显示已有的分区表
q quit without saving changes 分区操作不保存退出
s create a new empty Sun disklabel
t change a partition's system id 修改分区类型id
u change display/entry units
v verify the partition table
w write table to disk and exit 分区操作保存退出
x extra functionality (experts only)
注意:在已经分区并且已经挂载其中某个分区的磁盘设备上创建的新分区,内核可能在创建完成后无法直接识别,需使用partx -a 对分区进行识别
cat /proc/partitions查看内核所识别的所有分区
通知内核强制重读磁盘分区表方法
partx -a device 对所有新增分区进行重读
kpart -af device 对新癗分区强制做映射
3.文件系统
创建分区表是在磁盘创建一个空间,而格式化是将磁盘空间划分为元数据区和数据区
分区格式化:低级格式化(分区之前进行,对磁道划分)、高级格式化(分区之后进行,创建文件系统)
磁盘分为:元数据区和数据区
元数据区 :存放元数据inode,inode位图索引和数据块位图索引
文件元数据:inode(index node)大小,权限,属主属组,时间戳,数据块指针(元数据不存放文件名,文件名是在目录中存放)
查找文件流程:从文件元数据中查到文件数据块指针才能读取到文件内容,数据块指针中保存着文件数据块的数量和位置,因此数据块指针的存放大小决定了可存储单个文件的大小;
数据区:是由多个数据块组成,一个文件数据根据大小分布在多个数据块中;
符号链接文件:存储数据块指针的空间当中存储的是访问路径;
设备文件:存储数据块指针的空间中存储的是设备号;
bitmap index:位图索引,用来记录inode和数据块使用情况,可以用来查看那些inode和数据块是空闲状态,其存储在元数据中
VFS:virtual file system
linux文件系统:ext2 ext3 ext4 xfs reiserfs btrfs
光盘系统:iso9660
网络文件系统:nfs,cifs
集群文件系统:gfs2,ocfs2
unix文件系统:UFS,FFS,JFS
swap文件系统:当内存空间不够时,将内存中最近不常用文件临时放置于磁盘空间,当该文件需要再使用时,再和内存中不常用的文件进行交换位置;
文件系统管理工具:
创建文件系统的工具
mkfs
例:mkfs.ext2/ext3/xfs...
检测及修复文件系统
fsck:fs check
例 :fsck.ext2/xfs..
查看其属性的工具
dumpefs,tune2fs
调整文件系统特性
tune2fs
日志journal作用:创建文件时,先将元数据放入日志文件中,当文件存储完成后,再将元数据移回元数据区。方便文件写入时出现不正常中断后数据找回
链接文件:访问同一个文件不同的路径
硬链接文件:指向同一个inode我个文件路径
特性:1.目录不支持硬链接;
2.硬链接不能跨文件系统;
3.创建硬链接文件会增加inode引用计数;
创建硬链接
ln src link_file
符号软链接文件:指向一个文件路径的另一个文件路径
特性:
1.符号链接与文件是两个各自独产的文件,各有自己的inode,对原文件创建符号链接不会增加引用计数;
2.支持对目录创建符号链接,可以跨文件系统;
3.删除符号链接文件不影响原文件,但是删除原文件,符号指定的路径即不存在,此时会变成无效链接;
注:符号链接文件的大小是其指定的文件路径字符串的字节数;
例:lrwxrwxrwx. 1 root root 8 Sep 26 19:49 sbin -> usr/sbin 也是sbin路径字符串的大小
创建软链接文件:
ln -s src ling_file
-v 显示过程
内核级文件系统
组成部分:文件系统驱动:由内核提供
文件系统管理工具:由用户空间的应用程序提供
cat /etc/issue 查看linux系统版本号
uname -r 查看linux内核版本
创建文件系统工具
mkfs 将分区格化对应格式的文件系统(ext2-ext4,xfs...)
mkfs -t =mkfs.ext4
ext系列文件系统专用管理工具:mke2fs
mke2fs -t 指明创建文件系统类型
mkfs -t ext4=mkfs.ext4=mke2fs -t ext4
mke2fs -b (1024/2048/4096)指明文件块大小
mke2fs -L 指明文件系统的卷标
mke2fs -j 创建有日志功能的文件系统ext3
mke2fs -i 指明多少个字节创建一个inode
mke2fs -N指明要给此文件系统创建的inode的数量
mke2fs -m指定预留空间,为百分比;
e2label:卷标查看与设定
查看:e2label device
设定:e2label device label
tune2fs:查看或修改ext系列文件系统的某些属性
注:块大小创建后不可修改
tune2fs device
tune2fs -l 查看指定分区超级块的信息(分区挂载之后无法查看)
修改指定文件系统的属性:
-j 将文件系统改为ext3
-L修改卷标
-m调整预留空间百分比
dumpe2fs显示ext系列文件系统的属性信息(分区挂载后无法查看)
dumpe2fs device
blkid查看分区的文件系统类型
fsck用于实现文件系统检测工具
因进程意外中止或系统崩溃等原因导致操作非正常虚脱止时,可能会造成文件损坏,此时应该检测并修复文件系统,建议离线进
ext系列文件系统的专用工具
e2fsck -y对所有问题自动回答yes并执行检测
e2fsck -f 强制执行检测
fsck fstype指明检测的系统文件类型
fsck -t ext4=fsck.ext4
-a无须交互而自动修复所有错误;
-r 交互式修复
blkid device 查看对应设备的信息
-L device 根据label定位设备
-u UUID 根据UUID定位设备
xfs文件系统创建
创建mkfs.xfs
检测fsck.xfs