磁盘管理与文件系统

  关于磁盘与文件系统大致思路:要想对磁盘进行充分利用,必须要对磁盘进行分区,第二步就是要对分区进行高级格式化,也就是在分区上创建文件系统,在此过程中可以对磁盘的各种属性进行自定义。打个比方来说,创建磁盘分区好比刚买来一个毛坯房,还未装修,还不适宜人居住,那么创建文件系统就好比在光秃秃的毛坯房上进行了装修,这样才更适于人居住使用。


要想搞懂磁盘,首先就要从根上了解硬盘的组成。

    head 磁头 一个盘片正反两面对应两个磁头,有多个盘片

    track 磁道 磁头旋转一圈划分的圆环

    sector 扇区 512bytes

    cylinder 柱面 所有盘片的相同磁道


设备:ll /dev/ 可见 

    blob.png

块设备(block):支持随机访问,数据交换单位是块

字符设备(character):线性访问,数据交换单位为字符

设备文件:FHS

/dev

设备文件:关联至设备的驱动程序;设备的访问入口

设备号:

主设备号

major:主设备号,区分设备类型,用于标明设备所需要的驱动程序

minor:次设备号,区分同种类型下的不同的设备,是特定设备的访问入口

mknod:创建块和字符设备

mknod /dev/testdev c 110 1

-m MODE:创建后的设备文件的访问权限,利用系统调用

设备文件名:ICANN

磁盘

SCSI SATA USB SAS:/dev/sd[a-z]

并口:同一线缆可以接多块设备

SCSI:

宽带:16-1

窄带:

主分区和扩展分区表示:1-4

逻辑分区:5+

查看分区:cat /proc/partitions

通知内核强制重读磁盘分区表:

cnetos 6:partx -a [device]

元数据不包括文件名,文件名保存在目录

元数据:inode 

文件使用磁盘有不连续的块,碎片

文件元数据:inode 数据块指针

********************

inode

128bytes

block=2^n sector 

符号链接文件:存储数据指针的空间当中存储的是真实文件的访问路径

块和inode比例

需要预留一部分块空间给管理员

如何判断inode和block是否使用,0表示空,1表示使用

bitmap index:位图索引

找一空间,每一位对应block

GDT:快组描述符

元数据区域:

1.inode

2.inode位图

3.block位图

GDT:

stat查看元数据

文件名存放在目录上,与inode一一对应

低级格式化

高级格式化

******************

VFS:Virtual File System

linux文件系统:ext2-4,xfs(centos 7 defaults),relserfs,btrfs(测试阶段)

光盘:ISO9660

网络文件系统:nfs,cifs

集群文件系统,gfs2,osfs2

内核级分布式文件系统:ceph

windows的文件系统:vfat,ntfs

伪文件系统:proc,sysfs,tmpfs,hugepagefs

Unix的文件系统:UFS,FFS,JFS

交换文件系统:swap

用户空间得分布式文件系统

************************

虚拟内存

32位 4G内存可用

交换分区

创建文件系统工具

mkfs.ext4

检测及修复文件系统的工具

fsck

查看其属性的工具

dumpe2fs,tune2fs

调整文件系统特性

tune2fs

***

journal

降低磁盘碎片

日志区,在处理数据时先放在日志区,

如果遇到特殊情况要修复时,优先修复日志区中的内容

链接:指向同一文件的不同路径

硬链接:指向同一inode的多个路径

1.目录不支持硬链接

2,。不能跨文件系统,各分区inode各自管理,从0开始

3。引用次数增加

4.大小相同

符号链接:指向一个文件的指针指向另一文件路径

1.符号链接与文件时两个单独文件,有各自inode

2.可跨分区

3.文件大小为指向的路径的字符串的字节数

ls -i example.txt

ls -i命令列出整个目录文件,即文件名和inode号码:

  ls -i /etc

blob.png

理解了上面这些知识,就能理解目录的权限。目录文件的读权限(r)和写权限(w),都是针对目录文件本身。由于目录文件内只有文件名和inode号码,所以如果只有读权限,只能获取文件名,无法获取其他信息,因为其他信息都储存在inode节点中,而读取inode节点内的信息需要目录文件的执行权限(x)。

先创建分区,再创建文件系统,

内核中有相关的文件系统驱动程序,可使用lsmod查看

lsmod :查看内核已经加载的驱动程序

blob.png

文件系统管理工具:由用户控件的应用程序提供

1.

mkfs -t ext2=mkfs.ext2

blkid /dev/sda6

2.

mke2fs ext专用工具

-t ext4 指定要创建的文件系统类型

-b {1024|2048|4096(MAX默认)}指定文件系统的block大小

-L 卷标

-j 创建有日志功能的文件系统的ext3

mke2fs -j=mke2fs -t ext3=mkfs.ext3

-i #:每多少字节一个inode,bytes-per-inode,

指明inode与字节的比率,即多少字节创建一个inode,

默认为

-N # 直接指明要给此文件系统创建的inode的数量

-O [^]FEATURE :以指定的特性创建目标文件系统,启用某种特性

-m #指定预留空间百分比:5 –>5%s

3.改变卷标

e2label 卷标的查看和设定

e2label /dev/sda8 sb

blob.png

4.tune2fs 查看修改ext系列文件的某些属性

不可修改:块大小,

修改文件系统属性

-j ext2–>ext3

-L label:修改卷标

-m #:调整预留空间百分比

-O FEATURE 启用或者关闭某种特性

-o [^]mount_options:开启或者关闭某种默认挂载选项

acl

^acl

5.dumpe2fs:显示所有块组信息,类似tune2fs

-d 只显示superblock

6.

fsck命令:用于实现文件系统检测的工具

因进程意外终止或者系统崩溃等原因导致进程非正常终止,可能造成文件损坏

此时要进行离线修复

e2fsck device

-y 对所有问题回答yes

-f 强制检测

fsck.ext4

-a:无需交互修复所有错误

-r 交互式修复

通用命令

7.

blkid

-L label 根据卷名定位分区

-U UUID  

8。

swap文件系统

linux'上的交换分区必须使用独立的文件系统

且文件系统的System ID必须为82

创建swap设备:

mkswap

-L :指明卷标

-f : 强制

9.

windows无法识别Linux的文件系统,要交叉使用时,

应该使用同时支持的文件系统

10.

根文件系统之外的其他文件爱系统想要能够被访问,都必须通过关联至根文件系统上的某个目录来实现,此关联操作即为挂载:此目录为挂载点

挂载点:用于作为另一个文件系统的访问入口

1.事先存在

2.应该使用未被或不会被其他进程使用到的目录

3.挂载点下原有的文件将不会被隐藏

11.

mount

-r 只读filesystem

-w 读写挂载

-n 默认情况下,设备挂载或卸载的操作会同步更新至/etc/fstab中

-n禁止更新同步

-t vfs :指明要挂载的设备上的文件系统的类型,多数情况下可省略,

此时mount会通过blkid来判断要挂载的设备的文件系统类型

-L label:挂载时以卷标的方式指明设备

mount -L lable dir

-U UUID 以UUID的方式指明设备

-o options:挂载选项

sync/async 同步/异步操作:

异步:先在内存写完,再写入磁盘

atime/noatime:文件或目录被访问时是否更新其访问时间戳

diratime/nodiratime:目录访问时,是否保存访问时间戳

remount:重新挂载;

acl;支持使用facl功能访问控制列表

1.mount -o acl device dir

2.tune2fs -o acl device

ro 只读

rw 读写

/dev/nodev:此设备上是否允许创建设备文件

exec/noexec 是否允许运行此设备上的程序文件

auto/noauto:自动挂载

/user/nouser:是否用户挂载此文件系统

suid/nosuid:是否允许程序上的suid和sgid特殊权限生效

default:

12。 实现将目录绑定至另一个目录上,作为临时访问入口

    mount –bind 源目录 目标目录

13.查看当前系统所有已挂载的设备

1.mount

 blob.png

2.cat /etc/mtab 

 blob.png

3.cat /proc/mounts

挂载光盘

mount -r /dev/cdrom  mount_point

挂载U盘:需事先识别U盘的设备文件

mount -r

14.

umount

注意:正在被进程访问的挂载点无法卸载

查看被哪些进程所占用

lsof mount——point

fuser -v mount_point

-km /mnt:踢出正在使用/mnt的用户

终止所有某挂载点的进程

fuser -km

15

挂载本地回环设备

mount -o loop /path/to/some_loop mount_point

16

交换分区

创建交换分区:mkswap

启动禁用

swapon 

-a:定义在/etc/fstab文件中的所有swap设备

swapoff

/etc/fstab

设备除根文件系统以外的其它文件系统能够开机时的挂载

每行定义一个要挂载的文件系统及相关属性

6个字段:

1.要挂载的设备

label

UUID伪文件系统

2.挂载点

swap 类型的设备的挂载点为swap

3.文件系统类型

4.挂载选项

defaults:默认

如果使用多个挂载选项,彼此间以逗号分隔

defaults,acl,noatime,noexec

5.转储频率

0:从不备份

1.每天备份

2.隔天备份

6.自检持续

0:不自检

1.首先自检,通常只能是根文件系统可用

2.次级自检

mount -a:可自动挂载定义在/etc/fstab中的所有支持自动挂载的设备

16

df:disk free

-h 人类可读

-l 本地可读

-i inode的使用状态

blob.png

du:显示文件大小

-s :sumary

-h human-readable

blob.png


原创文章,作者:000,如若转载,请注明出处:http://www.178linux.com/41618

(0)
000000
上一篇 2016-08-29
下一篇 2016-08-30

相关推荐

  • 步入LINUX

    初次融入LINUX的环境。。。

    Linux干货 2018-03-26
  • 第四周作业

    Linux系统文件管理使用案例 1、 复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限。 首先,利用cp命令将/etc/skel目录复制为/home/tuser1: [root@localhost ~]# cp -r /etc/skel /home/tuser1 随后通过chmo…

    Linux干货 2018-03-24
  • 时间、screen、echo等——Linux基本命令(5)

    1.     时间 (1)查询时间: date          +%F  年月日          +%T  时分秒  &nbs…

    2017-07-13
  • HAProxy

    HAProxy简介 HAProxy是免费、极速且可靠的用于为TCP和基于HTTP应用程序提供高可用、负载均衡和代理服务的解决方案,尤其适用于高负载且需要持久连接或7层处理机制的web站点。HAProxy还可以将后端的服务器与网络隔离,起到保护后端服务器的作用。HAProxy的负载均衡能力虽不如LVS,但也是相当不错,而且由于其工作在7层,可以对http请求报…

    2017-05-17
  • rpm包管理与yum简要用法

    linux程序包管理 程序包:源代码 –> 目标二进制格式(二进制程序、库文件、配置文件、帮助文件)–> 组织成一个或有限的几个包文件 程序包管理器:        debian –> dpkg   以“.deb”结尾 &nb…

    Linux干货 2016-08-22
  • Linux基础知识(二)

     本文的主要内容是:  1.Linux上的基本文件管理命令  2bash的特性及其命令状态返回值  3.bash的花括号展开机制  4.文件的元数据信息有哪些,分别表示什么含义,如何查看?如何修改文件的时间戳信息  5如何定义一个命令的别名,如何在命令中引用另一个命令的执行结果?  &nb…

    Linux干货 2016-09-25

评论列表(1条)

  • 马哥教育
    马哥教育 2016-08-30 10:09

    文章对磁盘管理各方面知识整理的很全面,层次结构也很清晰,但是对于硬盘基础我们能够给出一些图片来叙述各个硬盘的各个组件会更好,同时,也希望作者能通过差资料,将笔记中的关键字组织成通顺的话。