Linux系统磁盘及文件系统管理

本节索引:

一、磁盘基本概念

二、磁盘分区管理

三、文件系统管理

四、设备挂载管理

 

timg_image&quality=80&size=b9999_10000&sec=1524546095559&di=5bfa1a87eaaf0ca91596

 

一、磁盘基本概念

设备文件:

Linux中一切皆文件:open(),read(),write(),close()

设备类型:

块设备:block,存储单位“块”,磁盘

字符设备:char,存储单位“字符”,键盘

设备文件:关联至一个设备驱动程序,进而能够跟与之对应硬件设备进行通信

设备号码:

主设备号:maj,标识设备类型

次设备号:min,标识同一类型下的不同设备

 

磁盘结构

硬盘的接口类型:

并行:

IDE:133MB/s

SCSI:640MB/s

串口:

SATA:6Gbps

SAS:6Gbps

USB:480MB/s

 

硬盘:

机械硬盘(HDD):传统普通硬盘,主要由:盘片,磁头,马达等组成

优势:相比固态硬盘,价格低,容量大,使用寿命长

固态硬盘(SSD):用固态电子存储芯片阵列而制成的硬盘。

优势:相比机械硬盘,防震抗摔,传输速率,功率,噪音有优势

目前SSD不能完全取代HHD

timg_image&quality=80&size=b9999_10000&sec=1524545986109&di=faed230fa17762bc91a6

磁盘设备文件命名: 

/dev/DEV_FILE

SCSI,SATA,SAS,IDE,USB:      /dev/sd

虚拟磁盘:             /dev/vd

不同磁盘标识:            a-z,aa,ab…

/dev/sda,/dev/sdb

同一设备的不同分区:        1,2,…

/dev/sda1,/dev/sda5

注:在脚本中,尽量避免使用磁盘设备文件名诸如sda,名称不稳定,应使用UUID

 

磁盘存储术语:

head:磁头;                 8bit寻址 2**8=256

track:磁道;

ctlinder:柱面                 10bit寻址       2**10=1024

sector:扇区          6bit寻址 2**6=64

 

chs:磁盘三维。柱面、磁头、扇区

 

一个扇区共有512Byte,CHS可定义255*63*1024个扇区信息

echo 512*63*1024*255/1024/1024 | bc

8032M

 

CHS:老的命名方式,不超过8G

LBA:逻辑的块寻址,超过8G

 

二、磁盘分区管理

我们知道使用磁盘有三个步骤:

1、创建分区

2、创建文件系统:格式化

3、挂载:分配目录名

 

为什么要对磁盘进行分区?

1、优化I/O性能

2、实现磁盘空间配额限制

3、提高修复速度

4、隔离系统和程序

5、安装多个OS

6、采用不同的文件系统

 

分区类型

两种分区方式:MBR,GPT

 

MBR:Master Boot Record

诞生于1982年,使用32位表示扇区数,分区不能超过2T

MBR如何分区:按柱面

0磁道0扇区:512bytes

446bytes:boot loader

64bytes:分区表

16bytes:标识一个分区(最多4个分区)

2bytes:55AA(分区标识位)

支持4个主分区;3个主分区+1扩展分区(N个逻辑分区)

注:生产中最好给MBR分区表进行备份

 

BIOS+MBR

传统BIOS运行流程:

开机–>BIOS初始化–>BIOS自检–>引导操作系统–>进入系统

 

GPT:GUID(Globals Unique Identifiers)

支持128个分区,使用64位,支持8Z(512Byte/block),64Z(4096Byte/block)

使用128位的通用唯一识别码UUID(Universally Unique Identifier)表示磁盘和

分区表自动备份在头和尾两份,并有CRC校验位

UEFI(同一扩展固件接口):硬件支持GPT,使操作系统启动

分区表

MBR保护+GPT分区表+GPT划分数据+备份

 

UEFI+GPT

UERI运行流程

开机–>UEFI初始化–>引导操作系统–>进入系统

 

管理分区

列出块设备:

lsblk

 

创建分区使用:

fdisk                  创建MBR分区

gdisk                 创建GPT分区

parted              高级分区操作

 

parted命令

parted的操作都是实时生效的,小心使用

格式:parted[option]…[设备[命令[参数]…]…]

parted /dev/sdb mklabel gpt|msdos              设置分区类型GPT或MBR

parted /dev/sdb print                               打印sdb分区列表信息

parted /dev/sdb mkpart primary 1 200 (默认M)  设置sdb分区大小

parted /dev/sdb rm 1                                删除sdb1分区

parted -l                                     列出分区信息

 

分区工具fdisk和gdisk

fdisk -l[-u][device…]       查看分区

fdisk /dev/sdb                 管理分区(交互式)

子命令:

p               显示分区列表

t                更改分区类型(数据将丢失)

n               创建新分区

d               删除分区

t                添加设备标签

v                校验分区

u               转换单位

w              保存并退出

q               不保存并退出

注:可使用重定向和多行重定向echo -e “n\np\n\n\n+2G\nw\n” | fdisk /dev/sdc

 

同步分区表

cat/proc/partations        查看内核是否已经识别新的分区

partprobe                 同步分区表(centos5,7可用)

partx -a  /dev/sda         增加分区同步分区表(centos6可用)时使用;

partx -d –nr M-N /dev/sda    删除分区同步分区表(centos6可用)时使用;

 

 

三、文件系统管理

所谓文件系统,它是操作系统中藉以组织、存储和命名文件的结构。磁盘或分区和它所包括的文件系统的

不同是很重要的,大部分应用程序都基于文件系统进行操作,在不同种文件系统上是不能工作的。

文件系统类型

Linux文件系统:ext2,ext3,ext4,xfs,btrfs,reiserfs,jfs,swap

光盘:iso9660

Windows:FAT32,exFAT,NTFS

Unix:FFS(fast),UFS(unix),JFS2

网络文件系统:NFS,CIFS

集群文件系统:GFS2,OCFS2

分布式文件系统:fastfs,ceph,moosefs,mogilefs,glusterfs,Lustre

RAW:未经处理或者未经格式化产生的文件系统(性能好,但不便于管理)

 

根据文件系统是否支持“journal(日志)”功能可分为:

日志型文件系统:ext3,ext4,xfs,…(牺牲读取性能,防止数据文件破坏)

非日志型文件系统:ext2,vfat(易造成数据文件破坏)

 

文件系统的组成部分:

内核中的模块:ext4,xfs,vfat

用户空间的管理工具:mkfs.ext4,mkfs.xfs,mkfs.vfat

 

Linux的虚拟文件系统:VFS

 

查看支持的文件系统:cat /proc/filesystems

 

创建文件系统:

mkfs命令两种用法:

1、mkfs.FS_TYPE  /dev/DEVICE 建议使用此用法,直观不易出错

ext4

xfs

btrfs

vfat

2、mkfs -t FS_TYPE /dev/DEVICE

-L ‘LABEL’                 设定卷标(分区标签)

 

 

mke2fs                                 ext系统文件系统专用的管理工具

-t{ext2|ext3|ext4} 创建文件系统类型

-b{1024|2048|4096}      设定block块的大小

-i #                     为数据空间每多少字节创建一个inode,此大小不应小于

block大小

-L                       添加卷标签(建议使用挂载点作卷标)

-N #                   指定分区中创建#个inode

-l                        一个inode记录占用磁盘空间的大小,128-4096

-m #                          默认5%,管理员用户预留空间占总空间百分百

 

 

文件系统标签LABEL

它是指向设备的另一种方法,与设备无关

 

blkid                                   块设备属性信息查看

格式:blkid [option]…[DEVICE]

-U UUID                    根据指定UUID来查找对应设备

-L LABEL           根据指定卷标来查找对应设备

 

e2label:管理ext系列文件系统的LABEL卷标

格式:e2label DEVICE[LABEL]

 

findfs                                  查找分区

格式:findfs [option] LABEL = <label> 根据卷标查找

   findfs [option] UUID  = <uuid>        根据UUID查找

 

tune2fs                              重新设定ext系列文件系统可调整参数的值

-l                        查看指定文件系统超级块信息

-L ‘LABEL’                 修改卷标

-m #                  修改预留给管理员空间的百分百

-j                        将ext2升级到ext3

-O                      文件系统属性启用或禁用,-O ^has_journal

-o                      调整文件系统的默认挂载选项,-o^acl

-U UUID                    修改UUID号

 

dumpe2fs  

块分组管理,32768

-h                       查看超级块信息,不显示分组信息

 

超级块(superblock)

dumpe2fs       /dev/sda1        查看分区下所有超级块

-h              查看超级块信息

tune2fs             -l               查看超级块信息

 

超级块时存储文件系统的大小、有多少是空的和已经填满的占多少,以及它们各自的总数和其他诸如此类的信息。

要使用一个分区来进行数据访问,那么第一个要访问的就是超级块,由此可见超级块的重要性。

 

超级块占用第一号物理块,是文件系统的控制块。超级块包括:文件系统的大小、空闲块数目、空闲块索引表、空

闲i节点数目、空闲i节点索引表、封锁标记等。超级块时系统为文件分配存储空间、回收存储空间的依据。

 

所以,为了防止超级块数据损坏,就需要对超级块数据进行备份,以便于损坏时进行修复。

 

文件系统检测和修复

常发生于死机或者非正常关机之后

挂载为文件系统标记为”no clean”

注意:一定不要在挂载状态下修复或检测,否则数据将破坏!

fsck                                   文件系统检查

fsck.FS_type

fsck -t FS_type

-p                       自动修复错误

-r                       交互式修复错误

注:FS_TYPE一定要与分区上已设置的文件系统类型相同

 

e2fsck                                ext系列文件专用的检测修复工具

-y                       自动回答为yes

-f                       强制修

 

四、设备挂载管理

挂载:把额外的文件系统与根文件系统现场的目录建立起关联关系,进而使得此目录

作为其他文件访问入口的行为

一个挂载点只能挂载一个设备,但一个设备可挂载多个挂载点

挂载点建议要是空目录,否则该目录下原有文件将被隐藏,变为垃圾文件

 

卸载:为解除此关联关系的过程

 

把设备关联挂载点:mount Point

   monut

卸载时:可使用设备,也可使用挂载点

   umount

 

挂载命令:

通过查看/etc/mtab文件显示当前已挂载的所有设备

mount

格式:mount [-fnrsvw] [-t vfstype] [-o options] device  dir

device                       指明要挂载的设备

(1)设备文件:例如dev/sda2

(2)卷标:-L ‘LABEL’,例如-L ‘MYDATA’

(3)UUID,-U ‘UUID’,例如-U ’35bfb8f8-1c9a-4f67-b8fe-a7edb84c4780’

(4)伪文件系统名称:proc,sysfs,devtmpfs,configfs

dir                      挂载点

事先存在;建议使用空目录

进程正在使用中的设备无法被卸载

option:

-t                       指定要挂载的设备上的文件系统类型

-r                       readontlt,只读挂载

-w                      r+w,读写挂载(默认)

-n                       centos6隐藏挂载,不更新/etc/mtab,mount不可见,cat /proc/mounts可见

-a                       自动挂载所有支持自动挂载的设备

-L ‘LABEL’                 以卷标指定挂载设备

-U ‘UUID’                  以UUID指定要挂载的设备

-B,–bind                绑定目录到另一个设备上。类似于软连接

 

-o options:(挂载文件系统的选项),多个选项使用逗号分隔

async                         异步模式(默认模式)

sync                  同步模式,内存更改时,同时写磁盘

atime/noatime                包含目录和文件(是否更新atime,默认更新)

diratime/nodiratime       目录的访问时间戳

auto/noauto            是否支持自动挂载,是否支持-a选项

exec/noexec            是否支持将文件系统上运行应用程序

dev/nodev                是否支持在此文件系统上使用设备文件

suid/nosuid              是否支持suid和sgid权限

remount                   重新挂载

ro                      只读

rw                      读写

user/nouser             是否允许普通用户挂载此设备,/etc/fstab使用

acl                     启用此文件系统上的acl功能

loop                使用loop设备,把文件挂载目录,模拟设备

默认:rw,suid,dev,exec,auto,nouser,async

 

卸载命令:

查看挂载情况:

findmnt   MOUNT_POINT|DEVICE

查看正在访问指定文件系统的进程:

lsof MONUT_POINT

         fuser  -v  MOUNT_POINT

终止所有在正访问指定的文件系统的进程

   fuser  -km MONUT_POINT

卸载:

umount   DEVICE

         umount   MOUNT_POINT

 

挂载点和/etc/fstab

配置文件系统体系

被mount、fsck和其他程序使用

系统重启时保留文件系统体系

可以在设备栏使用文件系统卷标

使用mount -a 命令挂载/etc/fstab中的所有文件系统

 

/etc/fstab        每行定义一个要挂载的文件系统

设备或伪文件系统    挂载点   文件系统类型   挂载选项   备份间隔时间{0|1|2}   文件系统检查{0|1}

 

要挂载的设备或伪文件系统

设备文件

LABEL:LABEL=””

UUID:UUID=””

伪文件系统名称:proc,sysfs

挂载点

文件系统类型

挂载选项:default

转储频率:0:不做备份 ; 1:每条转储 ; 2:每隔一天转储 ;

自检次序:0:不自检 ; 1:首先自检;一般只有rootfs才用1

 

一些特殊文件设备的挂载永久生效的设置:

vim /etc/fstab

/root/p1  /mnt/p1          ext4           loop            0    0         挂载普通文件

/mnt/cdrom    /mnt/cdrom    iso9660    defaults      0    0      挂载光盘

/boot                /mnt/boot      none          bind         0    0      挂载目录到目录下

本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/96953

(0)
wangxczwangxcz
上一篇 2018-04-24
下一篇 2018-04-24

相关推荐

  • iptables/netfilter、 tcp_wrapper

    iptables/netfilter: Firewall:防火墙,隔离工具;工作于主机或网络边缘,对于进出本主机或本网络的报文根据事先定义的检查规则作匹配检测,对于能够被规则匹配到的报文作出相应处理的组件; 主机防火墙 网络防火墙 软件防火墙(软件逻辑): 硬件防火墙(硬件和软件逻辑):NetScreen,CheckPoint,。。。 iptables(ne…

    Linux笔记 2018-06-05
  • Linux系统学习开篇第一章

    开篇笔记摘要

    Linux笔记 2018-05-14
  • 入门——Linux基础

    一:用户登录 root用户:管理员账户,也被称为超级用户,root拥有对Linux系统的所有权限,甚至可以把自己杀死(rm -rf /*),除非必须,一般不用root用户登录系统 普通用户:权限受到限制,只可以对自己有权限的文件进行操作 二:终端(terminal) 终端: 设备终端:鼠标,键盘,显示器 物理终端:控制台(/dev/console) 虚拟终端…

    2018-03-28
  • MYSQL数据库

    MYSQL数据库 数据的时代 涉及的数据量大 数据不随程序的结束而消失 数据被多个应用程序共享 大数据   数据库的发展史: 萌芽阶段—–文件系统: 使用磁盘文件来存储数据 初级阶段—–第一代数据库: 出现了网状模型、层次模型的数据库 中级阶段—–第二代数据库: …

    Linux笔记 2018-06-18
  • vim

    vim

    Linux笔记 2018-05-08