linux磁盘及文件系统管理
linux磁盘及文件系统管理
基础概念:
计算机的基本组成:
CPU: 运算器, 控制器
存储信息:
输入输出设备:
I/O: Disks, Ethercard, Memory(RAM)
Disks: 持久化存储
RAM: 暂时存储, 断电数据消失
接口类型:
IDE(ata): 并口, 133MB/s, 理论速率
SCSI: 并口, Ultrascsl320, 320MB/S, 640MB/S
SATA: 串口, 6gbps, 理论速率
SAS: 串口, 6gbps,
USB: 串口, 480MB/s
IOPS: io per second
并口: 同一线缆可以接多块设备
IDE: 两个设备, 主, 从
SCSI:
宽带: 16 - 1
窄带: 8 -1
串口: 同一线缆可以接一个设备
硬盘: 机械硬盘, 固态硬盘
机械硬盘:
track: 此道
sector: 扇区, 512bytes
cylinder: 柱面
分区划分是基于柱面划分的
平均寻道时间:
5400rpm, 7200rpm...
linux哲学思想: 一切皆文件
设备类型:
块(block): 随机访问, 数据交换单位是"块"
字符(character), 线性访问, 数据交换单位是"字符"
设备文件: FHS 文件层级系统
/dev
设备文件: 关联至设备的驱动程序; 设备的访问入口
设备号:
major: 主设备号, 区分设备类型; 用于表名设备所需要的驱动程序.
minor: 次设备号, 区分同种类型下的不同的设备, 是特定设备的访问入口.
mknod命令: 用于创建块设备或字符设备的特殊文件
mknod [OPTION]... NAME TYPE [MAJOR MINOR]
-m MODE: 设备文件的访问权限
设备文件名: ICANN
磁盘:
IDE: /dev/hd
例如: /dev/hda, /dev/hdb
SCSI, SATA, USB, SAS: /dev/sd[a-z]
分区:
/dev/sda#
例如: /dev/sda1
CentOs6和7统统将硬盘设备标识为/dev/sd[a-z]#
引用设备的方式:
- 设备文件名
- 卷标
- UUID: 128位的随机
磁盘分区: MBR, GPT
MBR: 0 sector
Master Boot Record 主引导记录(分区) 512个字节,一个分区
分为三部分:
446bytes: bootloader, 引导启动操作系统的程序
64bytes: 分区表, 每16bytes标识一个分区, 一共只能有4个分区;
最多只能有4个主分区
3主1扩展分区:
扩展分区可以划分为n个逻辑分区
主分区和扩展分区的标识为1-4
扩展分区的标识: 5+
2bytes: MBR区域的有效性标识: 55AA为有效
fdisk命令: 分区的命令
- 查看磁盘的分区信息
fdisk -l [-u] [device...] 列出指定磁盘设备上的分区情况
- 管理分区
fdisk device
fdisk提供了一个交互式接口来管理分区, 他有许多子命令, 分别用于不同的管理功能, 所有的操作均在内存中完成, 没有直接同步到硬盘, 直到使用w命令写入.
常用命令:
n: 创建新分区
d: 删除已有分区
t: 修改分区类型
w: 保存退出
q: 不保存退出
m: 查看帮助信息
p: 显示现有分区信息
注意: 在已经分区并且已经挂载其中某个分区的磁盘设备上创建的新分区, 内核可能在创建后无法直接识别
重读分区 partx -a /dev/sda可能需要两次.
分区创建工具: parted, sfdisk
创建文件系统
格式化:
低级格式化(分区之前进行, 划分磁道),
高级格式化(分区后对分区进行, 创建文件系统)
元数据区, 数据区
元数据区: inode(index node)
文件元数据: 大小, 权限, 属主属组, 时间戳, 数据块指针
符号链接文件: 存储数据指针的空间当中存储的是真实文件的访问路径
设备文件: 存储数据指针的空间当中存储的是设备号(major, minor)
位图索引: bitmap index
VFS: Virtual File System
Linux的文件系统: ext2, ext3, ext4, xfs, reiserfs, btrfs
光盘: iso9660
网络文件系统: nfs, cifs
集群文件系统: gfs2, ocfs2
内核级分布式文件系统: ceph
Windows文件系统: vfat, ntfs
伪文件系统: proc, sysfs, tmpfs, hugepagefs
Unix文件系统: UFS, FFs, JFS
交换文件系统: swap
用户空间的分布式文件系统: mogilefs, moosefs, glusterfs
文件系统管理工具
日志journal功能
创建文件系统工具
mkfs
mkfs.ext2(无日志), mkfs.ext3, mkfs.ext4, mkfs.xfs, mkfs.vfat
检测及修复文件系统工具
fsck(filesystemcheck)
fsck.ext2, fsck.ext3, ...
查看其属性的工具
dumpe2fs, tune2fs
调整文件系统特性
tune2fs
链接文件: 访问同一个文件的不同路径
硬链接: 存储的是真实文件的inode, 多个文件路径指向同一个inode
特性:
(1) 目录不支持硬链接: (防止循环链接)
(2) 硬链接不能夸文件系统:
(3) 创建硬链接会增加inode引用计数
命令:
ln src link_file
软链接: 数据区存储的是真实文件的名字, 指向一个文件路径的另一个文件路径.
特性:
(1) 符号链接与文件是两个各自独立的文件, 各有自己的inode
(2) 支持对目录创建符号链接, 可以跨文件系统
(3) 删除符号链接文件不影响原文件 ,但删除原文件 , 符号指定的路径, 此时会变成无效链接.
符号链接的大小是其指定的文件的路径的字符串的大小.
ln -s src link_file
-v: verbose 显示过程