磁盘管理

linux的哲学思想:一切皆文件;

设备类型:

块(block):随机访问,交换数据单位是“块”;

字符(character):线性访问,数据交换单位是“字符”;

设备文件:FHS

/dev

    设备文件:关联至设备驱动程序;设备的访问入口;
    
    设备号:
    
    major:主设备号,区分设备类型;用于表明设备所需要的驱动程序;    
    minor:次设备号;区分同种类型下的不同设备;是特定设备访问入口;

mknod命令:

用法:mknod [选项]… 名称 类型 [主设备号 次设备号]

-m MODE :创建后的设备文件的访问权限;

磁盘:

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

分区: /dev/sda#
/dev/sda1,… 注意:CentOS6,7统统将硬盘设备文件标识为/dev/sd[a-z]

引用设备的方式:

设备文件名

卷标

UUID

磁盘分区:MBR,GPT MBR:0 sector

Master Boot Record
    分为三部分        
        446bytes:bootloader,程序,引导启动操作系统的 程序:        64bytes:分区表,每16bytes表示一个分区,一共只能有4个分区        2bytes:MBR区域的有效性标识;55AA为有效:

主分区和扩展分区的标识1-4

逻辑分区标识5+

fdisk命令;

1.查看磁盘分区情况

fidsk -l 列出所有分区及其详细使用情况

2.管理分区

fdisk device #打开交互式界面

fdisk提供了一个交互是接口来管理分区,他有许多子命令,分别用于不同的管理功能;所有操作均在内存中完成,没有同步到磁盘;直到使用W命令保存至磁盘上

[root@centous1 yum.repos.d]# fdisk /dev/sda

WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
         switch off the mode (command 'c') and change display units to
         sectors (command 'u').

Command (m for help): mCommand action
   a   toggle a bootable flag
   b   edit bsd disklabel   c   toggle the dos compatibility flag   d   delete a partition
   l   list known partition types   m   print this menu   n   add a new partition
   o   create a new empty DOS partition table
   p   print the partition table
   q   quit without saving changes
   s   create a new empty Sun disklabel   t   change a partition's system id
   u   change display/entry units
   v   verify the partition table
   w   write table to disk and exit
   x   extra functionality (experts only)

常用命令;

n;创建分区

d;删除已有分区

t;修改分区类型

l;查看所有已有ID

w;保存并退出

q;不保存并退出

m;查看帮助

p;显示现有分区信息

注意:在已经分区并且已经挂载其中某个分区的磁盘设备上创建的新分区,内核可能在创建完成后无法识别

cat /proc/partitions 这个文件里显示了cpu所识别的所有分区列表

通知内核强制重读磁盘分区表: CentOS 5 :partprobe [device]

CentOS6,7: partx,kpart

partx -a [device]

kpartx -af [device]

注意重读命令有的时候需要执行两次

分区创建工具: parted,sfdisk;

创建文件系统

格式化:低级格式化(分区之前进行的,主要是用来划分磁道),高级格式化(分区之后对分区进行,创建文件系统)

元数据区,数据区 元数据区;inode 文件元数据:大小,权限,属主数组,时间戳、…

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

设备文件:存储数据指针的空间当中储存的是设备号;

程序员编写程序的时候,需要按照系统上的文件系统来编写,但是系统上的文件系统众多,那样太影响效率,所以这时候有了一个中间件,VFS虚拟文件系统,它可以跟多种文件系统来匹配,而且对外只是一中接口。

linux的文件系统:ext2,ext3,ext4,xfs,relsers,btrfs

光盘:iso9660

网络文件系统:nfs,cifs

集群文件系统:gfs2,ocfs2

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

windows的文件系统:vfat,ntfs

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

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

交换文件系统:swap

用户空间的分布式文件系统:mogilefs,moosefs,glusterfs

文件系统管理工具:

创建文件系统的工具
    
    mkfs
        mkfs.ext2,mkfs.ext3,mkfs.ext4,mkfs.xfs,mkfs.vfat,...
检测及修复文件系统的工具
    fsck
        fsck.ext2,fsck.ext3查看其属性的工具
    dumpe2fs,tune2fs
调整文件系统特性:
    tune2fs

链接文件:访问同一个文件不同路径:

硬链接:指向同一个inode的多个文件路径;
特性:
    (1)目录不支持硬链接(为了防止循环链接);
    (2)硬链接不能跨文件系统;
    (3)创建硬链接会增加inode引用计数
    
软连接:指向一个文件的另一个文件路径;
    特性:
    (1)符号链接与文件是两个人各自独立的文件,各有自己的inode
    (2)支持对目录创建符号链接,可以跨文件系统;
    (3)删除符号链接文件不影响源文件;但是删除源文件,符号指定的路径即不存在,此时会变成无效链接;

注意:软连接文件的大小时期制定的文件路径的大小

创建:

软连接 ln -s src link_file 硬链接 ln src link_file

内核级文件系统的组成部分:

文件系统驱动:有内核提供
文件系统管理工具:由用户空间的应用程序提供

如果想CentOS6支持xfs直接用yum install xfsprogs

ext系列文件系统专用工具:mke2fs

make2fs [option] device 
    
    -t {ext2|ext3|ext4}:指定文件系统类型    
    -b{1024|2048|4096}:指明块大小    
    -L :指明卷标    
    -j:创建有日志功能的文件系统ext3;    
    -N number :直接指明给此文件系统创建的inode的数量    
    -O[^]:来开启或者关闭某项功能    
    -m number :指定给root预留空间的比率

e2label:卷标的查看与设定

查看:e2label device
设定:e2label device LABEl

tune2fs:查看或者修改ext系列文件系统的某些属性(注意块大小创建后不可修改)

tune2fs -l:查看分区信息

tune2fs -j:修改指定文件系统属性ext2-->ext3

-m number :调整root预留空间大小-L:修改卷标-O选项同上-o[^]mount_options:开启或关闭某种默认挂载选项

dumpe2fs命令:显示ext系列文件系统的属性信息 dumpe2fs [-h] device

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

因进程意外中路或系统崩溃等 原因导致定稿操作非正常终止时,可能会造成文件损坏;此时,应该检测并修复文件系统;建议,离线进行

ext系列文件系统的专用工具:

e2fsck [option] device
    
    -f:即使文件系统处于clean,也要强制进行检测;

fsck:check and repair a linux file linux

-t:指定文件系统类型;-r:交互式修复

blkid: blkid device blkid -L LABEl:根据LABEL定位设备 blkid -U UUid:根据UUId定位设备

swap文件系统:Linux上的交换分区必须使用独立的文件系统;且文件件系统的System ID必须为82;

创建swap设备:mkswap

-L:指明卷标-f:强制

windows无法识别linux的文件系统;因此,储蓄设备需要两种系统之间交叉使用时,应该使用windows和linux同事支持的文件系统:fat32(vfat);

mkfs.vfat device

mount命令:

mount [-nrw] [-t vfstype] [-o options] device dir

命令选项:

-r:readonly 只读挂载;-w:read and wirte ,读写挂载;-n:默认情况下,设备挂在或卸载的操作会同步更新至/etc/mtab文件中;-n用于禁止此特性;-t:指明要挂在的设备上的文件系统类型;多数情况下可省略,此时mount会通过blkid来判断要挂载的设备文件系统类型;-L (LABEL):挂载时以卷标的方式指明设备;-U UUID :挂载时以UUID的方式指明设备;

-o options:挂载选项

sysnc/async:同步/异步操作;
atime/noatime:文件或者目录在被访问时是否更新其访问时间戳;
diratime/nodiratime:目录在被访问时是否更新其访问时间戳;

umount卸载命令

umount device |dir

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

查看被那个或哪些进程所占用:

lsof MOUNT_POINT
fuser -v MOUNT_POINT

终止所有正在访问mount挂载点的进程:

fuser -km MOUNT_POINT

交换分区的启用和禁用:

创建交换分区的命令:mkswap
启用:swapon
禁用:swapoff

设定除根文件系统以外的其他文件系统能够开机时自动挂载:/etc/fstab文件

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

6个字段:

(1)要股灾的设备:
    设备文件;
    LABEL
    UUID
    伪文件系统:如sysfs,proc,tmpfs等
(2)挂载点
    swap类型的设备的挂载点为swap;
(3)文件系统类型;
(4)挂载选项
    defaults:使用默认选项;
如果要同时指明多个挂载选项,彼此间以逗号隔开;
defaults,acl,noatime
(5)转储频率    0:从不备份;    1:每天备份;    2:每隔一天备份;
(6)自检次序    0:不自检    1:首先自检,通常只能是根文件系统可用1
    2:次级自检
    ...

mount -a : 可自动挂在定义在此文件中的所支持自动挂在的设备;

文件系统:

目录:文件
    元数据:inode,inode table
    数据:data blocks        下级目录或文件的文件名与其inode对应关系
        注意:文件不会储存自己的文件名文件名存在上局目录里边

删除文件:将文件指向的所有data block标记为未使用状态;将文件的inode标记为未使用;

移动和复制:

复制:新建文件;
移动文件:在同一文件系统,仅是其路径;不在同一文件系统:复制数据至目标文件,并删除源文件;

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

(0)
上一篇 2016-08-30 16:37
下一篇 2016-08-30 17:51

相关推荐

  • Python

    Python中os和shutil模块
    csv文件和ini文件简介

    Linux干货 2017-10-30
  • LVS负载均衡初接触

    Linux Cluster : Cluster : 计算机集合, 为解决某个特定问题组合起来形成的单个系统; Linux Cluster 类型 : LB : Load Balancing, 负载均衡;()HA : High Avaiibality, 高可用;( 通过冗余的方式让活动主机出现问题时取而代之, 并具有原主机一致的功能)HP : High Perf…

    Linux干货 2016-10-28
  • Linux基础知识之压缩、解压、归档工具

    压缩、解压、归档工具     压缩格式:gz,bz2,xz,zip,Z 压缩算法不同,压缩比也会不同     1.compress/uncompress (.Z) compress [-dfvcVr] [-b maxbits] [file …] -d: 解压缩,相当于 -c: 结果输出至标准输出, 不删除原…

    Linux干货 2016-08-19
  • Linux运维学习历程-第八天-Linux文本工具sed与Vim(vi)

    概述:    本篇我们主要学习两个功能非常强大的文本编辑器,了解这两种文本编辑器的各自的特点 一、sed命令:  1、sed简介:     sed(Stream EDitor)是一种流编辑器、行编辑器。逐行处理文本内容,即一次处理一行内容,处理时,当前处理的行存储在“模式空间”(pattern sp…

    Linux干货 2016-08-15
  • 建立yum源及yum命令的使用

    一、什么是YUM     YUM的全称为 Yellowdog Update Modifier,其主要目的是为了解决RPM包安装时的依赖关系的问题。YUM只是一个用于软件安装的前端工具,其主要的服务对象还是RPM软件包。     YUM采用C/S架构,即客户端与服务器的模…

    Linux干货 2015-05-11
  • mysql—MHA原理与实现

    MHA 一:简述MHA 1.1关于MHA MHA(Master HA)是一款开源的MySQL的高可用程序,它为MySQL主从复制架构提供了automating master failover 功能。MHA在监控到master节点故障时,会提升其中拥有最新数据的slave节点成为新的master节点,在此期间,MHA会通过与其它从节点获取额外信息来避免一致性方…

    2016-11-27

评论列表(1条)

  • 马哥教育
    马哥教育 2016-09-01 13:28

    对磁盘管理工具用法总结的很完善,建议多操作,熟练运用。