一 Linux磁盘管理
1.硬盘分为:机械式硬盘、SSD
2.机械式:
1)盘片(Platter):一块硬盘有若干盘片,每个盘片有可以存储数据的上、下两盘面(Side)。这些盘面堆叠在主轴上高速旋转,它们从上至下从"0"开始依次编号;
2)磁道(Track):每个盘面被划分成许多同心圆,这些同心圆轨迹叫做磁道;磁道从外向内从0开始顺序编号;
3)扇区(sector): 最小的物理存储单位,每个扇区为512bytes;将一个盘面划分为若干内角相同的扇形,这样盘面上的每个磁道就被分为若干段圆弧,每段圆弧叫做一个扇区。每个扇区中的数据作为一个单元同时读出或写入。
4)柱面(cylinder): 分区的基本单位;所有盘面上的同一磁道构成一个圆柱,称作柱面;
5)主引导记录(MBR,Master Boot Record):安装引导加载程序的地方512bytes
446字节: bootloader启动引导加载器
64字节: filesystem allocation table文件系统分配表,其中每16字节标识一个分区,所以最多分配4个主分区
2字节:标记此MBR中的数据是否有效,其中55AA表示有效
3.磁盘接口类型:
1)IDE (ATA):133MB/s,Centos5下标注为:/dev/hd
SCSI: 640MB/s
SATA:6Gbps
SAS:6Gbps
USB:480MB/s
2)识别硬盘设备:/dev/sd
标记不同的硬盘设备:/dev/sd[a-z]
标记同一设备上的不同分区:/dev/sd[a-z][1-]
1-4: 主或扩展分区标识
5+:逻辑分区标识
3)设备文件被称为特殊文件,用设备号标记,由major, minor组成。
major: 设备类型;让内核识别相应驱动
minor: 同一类型下的不同设备;
4)"块":block,存取单位是‘块‘,随机设备
"字符":character,存取单位是‘字符‘,线性设备
5)GPT:GUID磁碟分割表(GUIDPartition Table,缩写:GPT)是一个实体硬盘的分区表的结构布局的标准,不同于MBR
4.分区:分隔存储空间为多个小的空间,每个空间可独立使用文件系统;
1)分区工具: fdisk, parted, sfdisk
2)fdisk工具:manipulate disk partition table(操作磁盘分区表)
- 分区管理子命令(fdisk /dev/sda):
p: print the partition table 显示磁盘分区表
n: add a new partition 创建新分区
d: delete a partition 删除分区
t: change a partition‘s system id 修改分区ID
l: list known partition types 列出所有支持ID类型
w: write table to disk and exit 保存退出
q: 放弃修改并退出
m: 获取帮助
- 创建完成之后,查看内核是否已经识别新的分区: # cat /proc/partitions
3)内核重读磁盘分区表命令:
(1)CentOS 5: partprobe [DEVICE]
CentOS 6和7: partxkpartx
(2)partx命令:
partx DEVICE
partx -a DEVICE
partx -a -n M:N DEVICE 或者 M , M: , :N
[[email protected] ~]# partx - /dev/sdb NR START END SECTORS SIZE NAME UUID 1 2048 20973567 20971520 10G 5 4096 10489855 10485760 5G
(3)kpartx命令: kpartx -af DEVICE
二 Linux文件系统管理
1.文件系统
1)VFS(Virtual File System虚拟文件系统),是Linux文件系统对外的接口。任何要使用文件系统的程序都必须经由这层接口来使用它。
VFS 目录树结构:
2)Linux:ext2, ext3, ext4第四代扩展文件系统(Fourth extended filesystem), reiserfs, xfs, btrfs, swap(交换分区)
光盘:iso9660
Windows: fat32(vfat), ntfs
Unix: ffs, ufs, jfs, jfs2
网络文件系统:nfs, cifs
集群文件系统:ocfs2, gfs2
分布式文件系统:ceph, moosefs, mogilefs, hdfs, gfs, glusterfs
3)日志型文件系统:
(1)非日志型文件系统:ext2
日志型文件系统:ext3
(2) swap:交换分区;当内存不足的时候,把一部分硬盘空间虚拟成内存使用,从而解决内存容量不足的情况。
2.创建工具:
1)mkfs (make filesystem)
2)ext系列文件系统的专用管理工具:
mke2fs -t {ext2|ext3|ext4} DEVICE
-b BLOCK: 1024, 2048, 4096
-L ‘LABEL‘: 设定卷标
3)blkid命令:
blkid DEVICE
LABEL, UUID, TYPE
3.创建文件系统:
在分区上执行格式化(高级格式化)要使用某种文件系统需满足两个条件:
- 内核中:支持此中文件系统
- 用户空间:有文件系统管理工具
mke2fs [OPTION]... DEVICE
-t {ext2|ext3|ext4}
-b {1024|2048|4096}
-L ‘LABEL‘
-j: mke2fs -t ext3
-i #:多少个字节分配一个inode
-N #:
-m #: 预留磁盘空间占据多大百分比的空间为后期管理使用;
-O FEATURE[,...]
-O ^FEATURE:关闭此特性
4.文件系统属性查看及调整工具:
1)e2label:命名和查看卷标
[[email protected] ~]# e2label /dev/sdb5
[[email protected] ~]# e2label /dev/sdb5 TEST
[[email protected] ~]# e2label /dev/sdb5
TEST
2)tune2fs:显示ext系列文件系统的属性,或调整其属性;
-l:显示超级块中的信息;显示整个文件的属性及布局等相关信息;
-L ‘LABEL‘:修改卷标;
-m #: 调整预留给管理员的管理空间百分比;
-j: ext2 --> ext3
-O:文件系统属性的启动或关闭
-o:文件系统默认挂载选项的启用或关闭
3)dumpe2fs:显示文件系统的布局和超级块信息
-h: 仅显示超级块信息;
5.文件系统检测:
1)fsck: Filesystem check 用于检查并且试图修复文件系统中的错误。当文件系统发生错误四化,可用fsck指令尝试加以修复。
-t<文件系统类型>:指定要检查的文件系统类型
-a: 自动修复错误
-r: 采用互动模式,在执行修复时询问问题,让用户得以确认并决定处理方式;
-f: 强制检测
2)e2fsck:ext系列文件系统专用的检测修复工具;
-y: 自动回答为"yes"
-f:force
6.文件系统的挂载和使用:
1)kernel --> rootfs(分区)
rootfs分区要包含: bin, sbin, etc, lib, lib64, dev, tmp, proc, sys
/sbin/init
2)挂载:将额外文件系统与根文件系统某现存的目录建立起关联关系,进而使得此目录做为其它文件系统访问入口的行为;
3)解除此关联关系的过程叫卸载;
4)挂载点:mount point, 设备挂载至目录;
注意:挂载点在挂载在之后,其内部原有的文件会被暂时隐藏;建立使用空目录做为挂载点;
5)挂载方法:
(1)mount:通过读取/etc/mtab文件来显示当前系统所有已经挂
(2)mount -a:挂载/etc/fstab文件中的所有支持自动挂载的文件系统;
(3)格式:mount [options] [-o options] DEVICEMOUNT_POINT
DEVICE:要挂载的设备:
(1)设备文件:/dev/sda5
(2)卷标:-L ‘LABEL‘
(3)UUID:-U ‘UUID‘
(4)伪文件系统名称
[options]:选项
-t:文件系统类型
-r: 以“只读”方式挂载此文件系统
-w: 以“读写”方式挂载此文件系统
-n:每个文件系统在挂载时都会自动更新/etc/mtab文件,-n用于禁止此功能;
此时,如果想查看挂载的所有文件系统:cat/proc/mounts
a: 自动挂载所有支持自动挂载的设备;
-B:绑定目录至另一个目录上;
-o 挂载选项:
async:异步模式(默认)
sync: 同步模式
atime/noatime:是否更新访问时间戳;
diratime/nodiratime:是否更新目录的访问时间戳;
auto/noauto: 是否允许此设备被自动挂载;
exec/noexec:是否允许执行此文件系统上应用程序;
dev/nodev:是否支持在此设备上使用设备文件;
remount:重新挂载
ro:只读挂载
rw:读写挂载
user/nouser: 是否允许普通挂载此设备;
acl:是否支持此设备上使用facl;
defaults:rw, suid,dev, exec, auto, nouser, and async
5)umount:卸载命令
# umount DEVICE
# umount MOUNT_POINT
查看正在访问指定挂载点的进程:
# fuser -v MOUNT_POINT
终止所有正在访问指定的挂载点的进程:
# fuser -km MOUNT_POINT
7.交换分区:
1)free命令:查看memory和swap的使用状态
-m:以MB为单位
-g:以GB为单位
2)mkswap:创建交换分区
mkswap [option] DEVICE
-L ‘LABEL‘
3)swapon:启用交换分区
swapon [option] [DEVICE]
-a:激活所有交换分区
-pPRIORITY: 设定其优先级;
4)swapoff:禁用交换分区
swapoff[option] [DEVICE]
8.文件系统等空间占用信息的查看:
1)df: disk free查看当前系统上已挂载的分区,及其空间使用信息、inode信息
-h: human-readable
-i: inode数量
-P: 以Posix兼容的格式输出
2)du: disk usage 估计文件空间使用
-h: human-readable
-s: summary
9.文件系统相关挂载配置文件:/etc/fstab(每行定义一个文件系统)
1)格式:要挂载的设备或伪文件系统 挂载点 文件系统类型 挂载选项 转储频率 自检次序
2)要挂载的设备:设备文件、LABEL=、UUID=、伪文件系统名称
3)挂载选项:defaults
4)转储频率:
0:不转储
1:每天转储
2:每隔一天转储
5)自检次序:
0:不自检(建议设置不自检,做手动监测)
1:首先自检,通常只有/才为1
10.文件系统上的链接文件:
1)硬链接:新建的文件是已经存在的文件的一个别名,当原文件删除时,新建的文件仍然可以使用
硬链接存在以下几点特性:
l 文件有相同的inode 及 data block;
l 只能对已存在的文件进行创建;
l 不能交叉文件系统进行硬链接的创建;
l 不能对目录进行创建,只可对文件创建;
l 删除一个硬链接文件并不影响其他有相同 inode 号的文件;
l 两个路径指向同一个inode
l 不能跨分区进行
l 指向同一个inode的多个不同路径; 创建文件的硬链接会增加inode的引用计数;
l 删除硬链接仅是删除其一个访问路径,只到最后一个路径被删除;
2)软链接:也称符号连接,新建的文件以“路径”的形式来表示另一个文件,和windows的快捷方式类似
软链接存在以下几点特性:
l 链接文件的数据指向另一个文件路径;
l 可以对目录进行;
l 可以跨分区;
l 指向的是另一个文件路径;而非inode;
l 文件创建符号链接不会增加其引用计数;
l 删除原文件,符号链接文件也将无法;
3)图解区别
练习:
创建一个10G文件系统,类型为ext4,要求开机可自动挂载至/mydata目录;
1.关闭Centos7,在Vmware中添加一块20G硬盘,开机;
2.开机后执行# fdisk –l,显示会出现新的磁盘sdb:
3.在新磁盘中创建一个10G的分区:
W键保存退出
4.重读分区表并查看系统内核是否识:
5.对新建的分区进行格式化:
6. 创建mydata目录,并使用mount命令挂载至此目录
7.编辑/etc/fstab配置文件,使得开机后系统自动挂载该分区