Linux磁盘和文件系统管理
linux磁盘管理
一、Linux设备类型
硬盘有机械硬盘(HDD)和固态硬盘(SSD)之分。机械硬盘即是传统普通硬盘,主要由:盘片,磁头,盘片转轴及控制电机,磁头控制器,数据转换器,接口,缓存等
几个部分组成。
机械式硬盘
track:磁道,存储信息的位置
cylinder:柱面
sector:扇区
MBR:全称为Master Boot Record,即硬盘的主引导记录。硬盘的0柱面、0磁头、1扇区称为主引导扇区(也叫主引导记录MBR),该扇区总共512字节;
它由主引导程序、硬盘分区表DPT(Disk Partition table)和分区有效标志。
boot loader(主引导程序):占446bytes
Partition table(用来存取分区表):占64bytes;硬盘中分区有多少以及每一分区的大小都记在其中,其中每16bytes标识一个分区;所以对于早期硬盘
(非UEFI)来讲在基于MBR方式管理时一块硬盘最多只能有4个分区;或者3主分区+1扩展(扩展可以使用N个逻辑分区)
magic number:占2个字节,对于大端模式处理器该值固定为0*55AA,存为55AA表示前面500个字节是有效的,否则是无效的
注意:硬盘单盘容量大于2T,MBR机制无法识别2T及大于2T的硬盘 ,此时需使用GTP机制
二、磁盘接口类型及命名
1、并行:
IDE 接口速率:133MB/s
SCSI 接口速率:640MB/s
2、串口:相对于并行设备类型速率更高
SATA: 接口速率: 6Gbp/s
SAS: 接口速率: 6Gbp/s
USB: 接口速率:480MB/s
3、磁盘命名
磁盘一般以/dev/DEV_FILE方式命名
磁盘设备的设备文件命名:
IDE接口设备:/dev/hd
SCSI,SATA,SAS,USB等接口设备:/dev/sd
不同设备:/dev/sd[a-z],如:/dev/sda,/dev/sdb….
同一设备上的不同分区:1,2,3,…如:/dev/sda1,/dev/sda2,…
三、磁盘分区管理工具:
1、Linux中的分区的主要管理工具有:fdisk、parted,sfdisk,本文中主要介绍使用fdisk工具。
注意:使用fdisk工具分区时,对于一块硬盘来讲,最多只能管理15个分区。
2、fdisk命令:
语法命令:fdisk [option] [DEVICE]
子命令:m:获取帮助,显示出所有子命令
p:print,显示已有分区
n:new,创建
d:delete,删除
w:write,写入磁盘并退出
q:quit,放弃更新并退出
l:列表分区id
t:调整分区id
查看内核是否已经识别新的分区:
cat /proc/partations,如果内核没有识别,使用下列命令手动通知内核重新读取硬盘分区表
partx -a /dev/DEVICE(centos6、7)
partprobe[/dev/DEVIC](centos5)
Linux文件系统管理
一、Linux文件系统类型:
1、Linux文件系统:ext2,ext3,ext4,xfs,btrfs,reiserfs,jfs,swap
swap:交换分区
光盘:iso9660
Unix:FFS,UFS,JFS2
网络文件系统:NFS,CIFS
系群文件系统:GFS2,OCFS2
分布式文件系统:ceph,moosefs,mogilefs,GlusterFS,Lustre
根据其是否支持“journal”功能分为:
日志型文件系统:ext3,ext4,xfs….
非日志型文件系统:ext2,vfat….
2、文件系统的组成部分:
内核中的模块:ext4,xfs,vfat
用户空间的管理工具:mkfs.ext,mkfs.xfs,mkfs.vfat
Linux的虚拟文件系统:VFS
3、文件存储结构
分区的第一个部分是启动区(Boot block),它主要是为计算机开机服务的。Linux开机启动后,会首先载入MBR,随后MBR从某个硬盘的启动区加载程序。
程序负责进一步的操作系统的加载和启动。为了方便管理,即使某个分区中没有安装操作系统,Linux也会在该分区预留启动区。
启动区之后的是超级区(Super block)。它存储有文件系统的相关信息,包括文件系统的类型,inode的数目,数据块的数目。
Inode:Index Node又称文件索引节点,是文件基本信息的存放地(如读写属性、owner等,但不包括文件名)和数据块指针(直接、间接及三级指针)存放地。
节点位图inode bitmap:对应表是每个inode空闲与否的状态信息
数据块:文件的具体内容存放地。
当查看某个文件时,会先从inode table中查出文件属性及数据存放点,再从数据块中读取数据
其中文件的inode结构如下(inode里所包含的文件信息可以通过stat filename查看得到):
4、链接文件:
硬链接:是给文件一个副本,同时建立两者之间的连接关系。修改其中一个,与其连接的文件同时被修改。
不能对目录进行
不能跨分区进行
指向同一个inode的过个不同路径,创建文件的硬链接即为inode创建新的引用路径,因此会增加其引用计数
软链接,也叫符号链接:是对源文件在新的位置建立一个“快捷”,所以,当源文件删除时,符号连接的文件将仅仅
剩下个文件名了,当然删除这个连接,也不会影响到源文件,但对连接文件的使用、引用都是直接调用源文件的。
可以对目录进行
可以跨分区
指向另一个文件的路径,其大小为指向的路径字符串的长度,不增加或减少目标文件inode的引用计数。
二、Linux文件系统相关命令:
1、创建文件系统:mkfs
用法:mkfs [-V] [-t fstype] [fs-options] filesys [blocks]
(1)mkfs.FS_TYPE /dev/DEVICE
ext4
(2)mkfs -t FS_TYPE /dev/DEVICE
mke2fs:ext系列文件系统专用管理工具
-t{ext2|ext3|ext4}
-b:{1024|2048|4096}
-L:‘LABEL’
-j:相当于 -t ext3
-i #:为数据空间中每多少个字节创建一个inode;此大小不应该小于block的大小
-N #:为数据空间创建个多少个inode
-m #:为管理员预留的空间占据的百分比
-O FEATURE[,…..]:启用指定特性
-O ^FEATURE:关闭制定特性
mkswap:创建交换分区
mkswap [OPTION] device
-L ‘LABEL’
前提:调整其分区的ID为82
blkid:块设备属性信息查看
blkid [OPTION]…[DEVIE]
-U UUID:根据指定的UUID来查找对应的设备
-L LABEL:根据指定的LABEL来查找对应的设备
e2label:管理ext系列文件系统的LABEL
e2label DEVICE [LABEL]
tune2fs:重新设定ext系列文件系统可调整参数的值
-l:查看指定文件系统超级块信息:super block
-L ‘LABEL’:修改卷标
-m #:修改预留给管理员的空间百分比
-j:将ext2升级为ext3
-O:文件系统属性启用或禁用
-o:调整文件系统的默认挂载选项
-U UUID:修改UUID号
dumpe2fs
-h:查看超级块信息
2、文件系统检测:
fsck:file system check
fsck.FS_TYPE
fsck -t FS_TYPE
-a:自动修复
-r:交互式修复错误
NOTE:FS_TYPE一定要与分区上文件类型相同
e2fsck:ext系列文件专用的检测修复工具
-y:自动回答为yes
-f:强制修复
3、文件系统的挂载
将额外文件系统与根文件系统某现存的目录建立起关联关系,进而使得此目录做为其它访问入口的行为称之为挂载
解除此关联关系的过程称之为卸载
把设备关联挂载点:Mount Point
挂载命令mount:
mount DEVICE MOUNT_POINT
mount:通过查看/etc/mtab文件显示当前系统已挂载设备,查看内核追踪到的已挂载的所有设备:cat /proc/mounts
mount [-fnrsvw] [-t vfstype] [-o options] device dir
device:指明要挂载的设备
(1)设备文件:例如/dev/sda5
(2)卷标:-L ‘LABEL’:例如-L ‘MYDATA’
(3)UUID,-U ‘UUID’:例如-U ‘2029dba3-0402-4eb6-ae7c-dcc0c9e42c05’
(4)伪文件系统名称:proc,sysfs,dectmpfs,configfs只需要名字,不需要设备
dir:挂载点
事先存在:建议使用空目录
进程正在使用中的设备无法被卸载
常用选项:
-t vsftype:指定要挂载的设备上的文件系统类型可省略
-r :readonly,只读挂载;
-w:read and write,读写挂载
-n:不更新/etc/mtab
-a:自动挂载所有支持自动挂载的设备(定义在了/etc/fstab文件中,且挂载选项中有“自动挂载功能”)
-L ‘LABEL’:以卷标指定挂载设备
-U ‘UUID’:以UUID指定挂载设备
-B,–bind:绑定目录到另一个目录上
-o options:(挂载文件系统的选项)
async:异步模式
sync:同步模式(数据可靠性高,性能差)
atime/noatime:包含目录和文件
diratime/nodiratime:目录的访问时间戳
auto/noauto:是否支持自动挂载
exec/noexec:是否支持将文件系统上应用程序运行为进程
dev/nodev:是否支持在此文件系统上使用设备文件
suid/nosuid:
remount:重新挂载
ro:
rw:
user/nouser:是否允许普通用户挂载此设备
acl:启用此文件系统上的acl功能(centos6默认关闭,centos7默认启用)
注意:上述选项可多个同时使用,彼此使用逗号分隔
默认挂载选项:defaults
rw,suid,dev,exec,auto,nouser,and async
挂载交换分区
启用:swapon
swapon [OPTION]….[DEVICE]
-a:激活所有的交换分区
-p:PRIORITY:指定优先级
禁用:swapoff [OPTION]….[DEVICE]
4、文件系统的卸载
卸载命令:umount DEVICE
umount MOUNT_POINT
查看正在访问指定文件系统的进程
fuser -v MOUNT_POINT
终止所有正在访问指定的文件系统的进程
fuser -km MOUNT_POINT
5、文件系统相关的查看命令
内存空间使用状态
free [OPTIONG]
-m:以MB为单位
-g:以GB为单位
文件系统空间占用等信息的查看工具
df:
-h:human-readable
-i:inodes instead of blocks
-P:以POSIX兼容的格式输出
查看某目录总体空间占用状态
du:
du[OPTION]…DIR
-h:human-readable
-s:summary
6、文件挂载的配置文件
文件挂载的配置文件/etc/fstab
每行定义一个要挂载的文件系统:
要挂载的设备或伪文件系统 挂载点 文件系统类型 挂载选项 转储频率 自检次序
要挂载的设备或伪文件系统:
设备文件、LABEL(LABEL=" ") 、UUID(UUID=" ")、伪文件系统名称(proc、sys)
挂载选项:
defaults
转储频率:
0:不做备份
1:每天转储
2:每隔一天转储
自检次序:
0:不自检
1:首先自检;一般只有rootfs才用1
原创文章,作者:Net18-天津-康康,如若转载,请注明出处:http://www.178linux.com/14592
评论列表(2条)
写的很认真,如果辅以样式优化一定能头条,样式建议使用markdown
@stanley:还在学习中,对markdown还不太熟悉