LINUX磁盘及文件系统管理
-
cpu,Memory(RAM),I/O
-
I/O:Disks,Entercard
Disks:持久存储数据
接口类型:
IDE(ata):并口,133MB/s
SCSI:并口,Ultrascsl320,320MB/S,UltraSCSI640,640MB/S
STAT:串口,6gbps
SAS:串口,6gbps
USB:串口,480MB/s
硬盘:机械硬盘,固态硬盘。
机械硬盘:
track:磁道
sector:扇区,512bytes
cylinder:柱面
分区划分基于柱面
平均寻道时间:
5400rpm,7200rpm,10000rpm,15000rpm
-
linux的哲学思想:一切皆文件
设备类型:
块(block):随机访问,数据交换单位是“块”;
字符(character):线性访问,数据交换单位是“字符”;
设备文件:FHS /dev
设备文件:关联至设备的驱动程序;设备的访问入口;
设备号:
major:主设备号,区分设备类型;用于表明设备所需要的驱动程序;
minor:次设备号,区分同种类型下的不同的设备;是特定设备的访问入口;
mknod命令:make block or characterspecial files创建设备文件
mknod[OPTION]…NAME TYPE [MAJOR MINOR]
-m MODE:创建后的设备文件的访问权限;
设备文件名:ICANN
磁盘:
IDE:/dev/hd[a-z]
例如:/dev/hda,/dev/hdb
SCSI,STAT,USB,SAS:/devsd[a-z]
分区:
/dev/sda#:(如/dev/sda1,/dev/sda2)
注意:CentOS 6和7统统将硬盘设备文件标识为/dev/sd[a-z]#
引用设备的方式:
设备文件名
卷标
UUID
磁盘分区:MBR,GPT
MBR:0 sector(Master Boot Record)主引导记录
分为三部分:
446bytes:bootloader,程序,引导启动操作系统的程序;
64bytes:分区表,每16bytes标识一个分区,一共只能有四个分区;
4分区
3主1扩展:
n逻辑分区
2bytes:MBR区域的有效性标识;55AA为有效;
主分区和扩展分区的标识: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
通知内核强制重读磁盘分区表:
CentOS 5:partprobe[device]
CentOS 6/7:partx,kpartx
partx -a[device]
kpartx -af[device]
分区创建工具:parted,sfdisk;
-
创建文件系统:
格式化:低级格式化(分区之前进行,划分磁道)、高级格式化(分区之后对分区进行,创建文件系统)
元数据区:
文件元数据:inode(index node)
大小,权限、属主属组、时间戳、数据块指针
符号链接文件:存储数据指针的空间当中存储的是真实文件的访问路径;
设备文件:存储数据指针的空间当中存储的是设备号(major,minor);
bitmap index:位图索引
VFS:Virtual File System
Linux的文件系统:ext2,ext3,ext4,xfs,relserfs,btrfs
光盘:iso9660
网络文件系统:nfs,cifs
集群文件系统:gfs2,ocfs2
内核及分布式文件系统:ceph
windows的文件系统:vfat,ntfs
伪文件系统:proc,sysfs,tmpfs,hugepagefs
Unix的文件系统:UFS,FFS,JFS
交换文件系统关凯
用户空间的分布式文件系统:mogilefs,moosefs,glusterfs
-
文件系统管理工具:
创建文件系统
mkfs
mkfs.ext2,mkfs.ext3,mkfs.ext4,mkfs.xfs,mkfs.vfat…
检测及修复文件系统工具
fsck
fsck.ext2,fsck.ext3,…
查看其属性的工具
dumpe2fs,tune2fs
调整文件系统特性:
tune2fs
-
ext系列文件系统的管理工具:
mkfs.ext2,mkfs.ext3,mkfs.ext4
mkfs -t ext2 = mkfs.ext2
ext系列文件系统管理工具:mke2fs
mke2fs[OPTION] device
-t{ext2|ext3|ext4}:指明要创建的文件系统类型
mkfs.ext4 = mkfs -t ext4 = mke2fs -t ext4
-b{1024|2048|4096}:指明文件系统block大小;
-L LABEL:指明卷标;
-j:创建有日志功能的文件系统ext3;
mke2fs -j = mak2fs -t ext3 = mkfs -t ext3 =mkfs.ext3
-i#:bytes-per-inode,指明inode与字节的比率;即每多少个字节创建1个inode
-N#:直接指明要给此文件系统创建的inode的数量;
-m#:指定预留的空间,百分比;
-O[^]FEATURE:以指定的特性创建目标文件系统;
-
e2label命令:卷标的查看与设定
查看:e2label device
设定:e2label device LABEL
-
tune2fs命令:查看或修改ext系列文件系统的某些属性
adjust tunable filesystem parameters on ext2/ext3/ext4/ filesystems;
注意:块大小创建后不可修改;
tune2fs[OPTIONS]device
-l:查看超级快的内容;
修改指定文件系统的属性:
-j:ext2 –>ext3;
-L LABEL:修改卷标;
-m #:调整预留空间百分比;
-O[^]FEATURE:开启或关闭某种特性;
-o[^]mount_options:开启或关闭某种默认挂载选项
acl
^acl
-
dumpe2fs命令:显示ext系列文件系统的属性信息
dumpe2fs [-h] device
用于实现文件系统检测的工具
因进程意外终止或系统崩溃等原因导致定稿操作非正常终止时,可能会造成文件损坏;此时,应该检测并修复文件系统;建议,离线进行;
ext系列文件系统的专用工具:
e2fsck:check a Linux ext2/ext3/ext4/ file systems
-y:对所有问题自动回答为yes;
-f:及时文件系统处于clean状态,也要强制进行检测;
fsck:check and repalr a Linux file system
-t fstype:指明文件系统类型;
-a:无需交互而自动修复所有错误;
-r:交互式修复;
CentOS 6如何使用xfs文件系统:
#yum -y install xfsprogs
-
blkid命令:
blkid device
blkid -L LABEL:根据LABEL定位设备
blkid -U UUID:根据UUID定位设备
-
swap文件系统:
Linux上的交换分区必须使用独立的文件系统;
且文件系统的System ID必须为82;
创建swap设备:mkswap命令
mkswap[OPTION]device
-L LABEL:指明卷标
-f:强制
Windows无法识别Linux的文件系统;因此,存储设备需要两种系统之间交叉使用时,应该使用windows和Linux同事支持的文件系统:fat32(vfat);
文件系统的使用:
首先要“挂载”:mount命令和umount命令
根文件系统之外的其他文件系统要想能够被访问,都必须通过“关联”至根文件系统上的摸一个目录来实现,此关联操作即为“挂载“;此目录即为”挂载点“;
挂载点:mount_point,用于作为另一个文件系统的访问入口;
(1)事先存在;
(2)应该使用未被其他进程使用的目录;
(3)挂载点下原有的文件将会被隐藏;
-
mount命令:mount [-fnrsvw] [-t vfstype] [-o options] device dir
命令选项:
-r:readonly,只读挂载;
-w:read and write,读写挂载;
-n:默认情况下,设备挂载或卸载的操作会同步更新至/etc/mtab文件中;-n禁用
-t vfstype:指明要挂载的设备上的文件系统的类型;多数情况下可以省略,此时mount会通过blkld来判断要挂载的设备的文件系统类型;
-L LABEL:挂载以卷标的方式指明设备;mount -L LABEL dir
-U UUID:挂载时以UUID的方式指明设备;mount -U UUID dir
-o options:挂载选项
sync/async:同步/异步操作;
atime/noatime:文件或目录再被访问时是否更新其访问时间戳;
diratime/nodiratime:目录再被访问时是否更新其访问时间戳;
remount:重新挂载;
acl:支持使用facl功能;
#mount -o acl device dir
#tune2fs -o acl device
ro:只读
re:只写
dev/nodev:此设备上是否允许创建设备文件;
exec/noexec;是否允许运行此设备上的程序文件;
auto/noauto:
user/nouser:是否允许普通用户挂载此文件系统;
suid/nosuid:是否允许程序文件上的suid和sgid特殊权限生效;
defaults:Use default options:rw,suid,dev,exec,auto,nouser, async,and relatime。
一个使用技巧:可以实现将目录绑定至另一个目录上,作为其临时访问入口;
mount –bind 源目录 目标目录
查看当前系统所有以挂载的设备:
# mount
# cat /etc/mtab
# cat /proc/mounts
挂载光盘
mount -r /dev/cdrom mount_point
光盘设备文件:/dev/cdrom,/dev/dvd
挂载U盘:
事先识别U盘的设备文件;
挂载本地的回环设备:
#mount -o loop /PATH/TO/SOME_LOOP_FILE MOUNT_POINT
-
umount命令:umount device|dir
注意:正在被进程访问到的挂载点无法被卸载;
查看被那个或哪些进程所占用;
#lsof MOUNT_POINT
#fuser -v MOUNT_POINT
终止所有正在访问某挂载点的进程:
#fuser -km MOUNT_POINT
-
交换分区的启用和禁用:
创建交换分区的命令:mkswap
启用:swapon
swapon[OPYION][DEVICE]
-a:定义在/etc/fstab文件中的所有swap设备;
禁用:swapoff
swapoff DEVICE
设定除根文件系统以外的其他文件系统能够开机时自动挂载:/etc/fstab文件
每行定义一个要挂载的文件系统及相关属性:
6个字段:
(1)要挂载的设备:
设备文件
LABEL
UUID
伪文件系统:如sysfs,proc,tmpfs等
(2)挂载点
swap类型的设备的挂载点为swap;
(3)文件系统类型;
(4)挂载选项
defaults:使用默认挂载选项;
如果要同时指明多个挂载选项,彼此间以逗号分隔;
defaults,acl,noatime,noexec
(5)转储频率
0:从不备份;
1:每天备份;
2:每隔一天备份;
(6)自检次序
0:不自检;
1:首先自检,通常只能是根文件系统可用1;
2:次级自检
…
mount -a:可自动挂载定义再次文件中的所支持自动挂载的设备;
-
两个命令:df和du
df命令:
df[OPTION]…[FILE]…
-l:仅显示本地文件的相关信息;
-h:human-readable
-i:显示inode的使用状态而非blocks
do命令:
do[OPTION]…[FILE]…
-s:sumary
-h:human-readable
原创文章,作者:502795641,如若转载,请注明出处:http://www.178linux.com/41388
评论列表(1条)
文章内容较为完整,不要用笔记来代替自己的博客,自己写过的东西才是自己的东西,对一些专有名词,我们可以通过查询资料来进行介绍和深入学习。这才是写博客的意义所在哦,不忘初心,方得始终。