Linux磁盘与文件系统管理
文章目录
前言
磁盘(disk)是指利用磁记录技术存储数据的存储器。磁盘是计算机主要的存储介质,可以存储大量的二进制数据,并且断电后也能保持数据不丢失。早期计算机使用的磁盘是软磁盘(soft disk,简称软盘),如今常用的磁盘是硬磁盘(hard disk,简称硬盘)
一、磁盘结构及分区表示
1.1、磁盘基础
硬盘(Hard Disk Driver,简称HDD)是计算机常用的存储设备之一。
1.1.1、硬盘的结构
(1)数据结构
扇区:盘面被分成多个扇形区域,每个扇区存放512个字节的数据
磁道:同一盘片不同半径的同心圆
柱面:不同盘片相同半径构成的圆柱面
(2)物理结构
盘片:硬盘有多个盘片,每个盘片2面
磁头:每面一个磁头
(3)存储容量
硬盘存储容量=磁头数 x 磁道(柱面)数 x 每道扇区数 x 每扇区字节数
可以用柱面/磁头/扇区来确定唯一定位磁盘上每一个区域
1.1.2、硬盘的接口
硬盘按照数据接口不同,大致分为以下几种(接口速率不是实际硬盘数据传输的速度)
ATA(IDE):全称Advanced Technology Attachment ,并口数据线连接主板与硬盘,抗干扰性太差,且排线占用空间较大,不利电脑内部散热,已经逐渐被SATA所取代。
SATA(串口):全称是Serial ATA,抗干扰性强,支持热插热拔等功能,速度快,纠错能力强。
SCSI:全称是 Small Computer System Interface(小型机系统接口),SCSI硬盘广为工作站级个人电脑以及服务器所使用的,资料传输时CPU占用率较低,转速快,支持热插热拔等
SAS(Serial Attached SCSI):是新一代的SCSI技术,和SATA硬盘相同,都是采取序列式技术以获得更高的传输速度,可达到6Gb/s
1.2、磁盘分区表示
1.2.1、MBR
MBR是主引导记录(Master Boot Record),位于硬盘第一个物理扇区处(引导扇区)
MBR中包含硬盘的主引导程序和硬盘分区表。
MBR分区表有4个分区记录区,每个分区记录区占16个字节
1.2.2、磁盘分区的表示
1.2.3、Linux中使用的文件系统类型
文件系统(File System)类型决定了向分区中存放,读取文件数据的方式和效率,在对分区进行格式化的时候需要选择所用的文件系统类型。在Windows操作系统中,经常使用的文件系统类型包括FAT32 , NTFS等格式;在Linux系统中,主要使用以下几种格式
EXT4:第四代扩展文件系统,用于存放文件和目录数据的分区,是CentOS 6系统中默认使用的文件系统。它是典型的日志型文件系统,其特点是保存有磁盘存取记录的日志数据,便于恢复,在存取性能和稳定性方面更加出色。
SWAP:交换文件系统,为Linux系统建立的交换分区,交换分区相当于虚拟内存,能够在一定程度上缓解物理内存不足的问题,一般建议将交换分区的大小设置为物理内存的1.5-2倍。
XFS:是一种高性能的日志文件系统,特别擅长处理大文件,可支持上百万T字节的存储空间。由于XFS文件系统开启了日志功能,即使发生宕机也不怕数据遭到破坏,可以根据日志记录在短时间内进行数据恢复。CentOS 7系统默认使用XFS文件系统。
Linux支持的其它文件系统类型
1.FAT16 , FAT32 , NTFS
2.EXT4 M JFS …
二、管理磁盘及分区
在Linux服务器中,当现有硬盘的分区规划不能满足要求(例如,根分区的剩余空间过少,无法继续安装新的系统程序)时,就需要对硬盘中的分区进行重新规划和调整,有时候还需要添加新的硬盘设备来扩展存储空间。
实现上述操作需要用到fdisk磁盘及分区管理工具,fdisk是大多数Linux系统中自带的基本工具之一。
2.1、检测并确认新硬盘
常用命令全写
a : toggle a bootable flag
b : edit bsd disklabel
c :toggle the dos compatibility flag
d : delete a partition
g : create a new empty GPT partition table
G : create an IRIX (SGI) partition table
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)
输入fdisk -l后的输出信息包含了各硬盘的整体情况和分区情况,对于已有的分区,将通过列表的方式输出一下消息。
Device:分区设备名称
Boot: 是否是引导分区,如是*号
Start:起始位置(硬盘柱面数)
Blocks:分区大小 一块为单位,默认块大小是1024字节
ID: 分区对应的系统ID号 ,7表示NTFS格式、81表示逻辑分区、82表示SWAP、83表示EXT4、8e表示LVM逻辑卷。
2.2、规划硬盘中的分区
在硬盘设备中创建、删除、更改分区等操作同样通过fdisk命令进行,只用使用硬盘的设备文件作为参数。输出 fdisk /dev/sdb 命令,可进入到交互式的分区管理界面中。
(1)p :列出硬盘中的分区情况
(2)n:新建分区
(3)d:删除分区
(4)t:变更分区的类型
(5)w和q:保存,退出fdisk分区工具
三、管理文件系统
在Linux系统中,使用fdisk工具在硬盘中建立分区后,还需要对分区进行格式化并挂载到系统的指定目录,然后才能用于存储文件、目录等数据。
3.1、创建文件系统
创建文件系统的过程也是格式化分区的过程,在Linux系统中使用mkfs(Make Filesystem,创建文件系统)命令格式可以格式化XFS , EXT4 ,FAT等不同类型的分区,而使用mkswap命令可以格式化Swap交换分区。
3.1.1、mkfs命令的使用
实际上 mkfs命令是一个前端工具,可以自动加载不同的程序来创建各种类型的分区,而后端包括有多个与mkfs命令相关的工具程序,这些程序位于/sbin/目录中,例如:支持XFS分区格式的mkfs.xfs程序等。
3.1.2、mkswap命令的使用
在Linux系统中,Swap分区的作用类似于Windows系统中的“虚拟内存”,可以在一定程度上缓解物理内存不足的情况。在当前Linux主机运行的服务较多,需要更多的交换空间支撑应用时,可以为其增加新的交换分区。
使用mkswap命令工具可以在指定的分区上创建交换文件系统,目标分区应先通过fdisk工具将ID号设为82.
3.2、挂载、卸载文件系统
在Linux系统中,对各种存储设备中的资源访问(如读取,保存文件等)都是通过目录结构进行的,虽然系统核心能够通过“设备文件”的方式操纵各种设备,但是对于用户来说,还需要增加一个“挂载”的过程,才能像正常访问目录一样访问存储设备中的资源。
当然,在安装Linux操作系统的过程中,自动建立或识别的分区通常会由系统自动完成挂载,如“/”分区,“boot”分区等。然而对于后来新增加的硬盘分区,光盘等设备,有时候还需要管理员手动进行挂载,实际上用户访问的是经过格式化后建立的文件系统。挂载一个分区时,必须为其制定一个目录作为挂靠点(或称为挂载点),用户通过这个目录访问设备中 的文件,目录数据。
3.2.1、挂载文件系统
mount命令的基本使用格式如下所示
挂载文件系统个,ISO镜像到指定文件夹
文件系统类型通常可以省略,系统会自动识别
存储设备即对应分区的设备文件名(如/dev/sdb1 , /dev/cdrom)或网络资源路径
挂载点即用户指定用于挂载的目录
光盘对应的设备文件通常使用’/dev/cdrom’,其实这是一个连接文件,连接到实际的光盘设备’/dev/sr0’。这两个名称都表示光盘设备。由于光盘是只读的存储介质,因此在挂载时系统会出现’mounting read-only’的提示信息。
挂载Linux分区或U盘设备时的用法也一样,只需要指定正确的设备位置和挂载目录即可。
在Linux系统中,U盘设备被模拟成SCSI设备,因此与挂载普通的SCSI硬盘中的分区并没有明显的区别。U盘一般使用FAT16或FAT32的文件系统,若不确定U盘设备文件的位置,可以先执行‘fdisk -l’命令进行查看,确认。
proc,sysfs,tmpfs等文件系统是Linux运行所需要的的临时文件系统,并没有实际的硬盘分区与其相对应,因此也成为了’伪文件系统’。
3.2.2、卸载文件系统
卸载文件系统时,使用的命令为umount,使用挂在单目录或对应设备的文件名作为卸载参数。
Linux系统中,由于同一个设备可以被挂载到多个目录下,所以一般建议通过挂载点的目录位置来进行卸载
3.2.3、设置文件系统的自动挂载
系统中的/etc/fstab文件可以视为mount命令的配置文件,其中存储了文件系统的静态挂载数据,Linux系统在每次开机时,会自动读取这个文件的内容,自动挂载所指定的文件系统。
默认的fstab文件中包括了根分区,/boot分区,交换分区及proc,tmpfs等伪文件系统的挂载配置。
这些信息从左到右包括六个字段,各部分的含义如下所述。
第一字段:设备名或设备卷标名
第二字段:文件系统的挂载点目录的位置
第三字段:文件系统类型。如XFS、SWAP等
第四字段:挂载参数,即mount命令-o选项后可使用的参数,例如,defaults、rw、ro、noexec分别表示默认参数、可写、只读、禁用执行程序
第五字段:表示文件体系是否需要dump备份。一般设为1时表示需要,设为0时将被dump忽略
第六字段:该数字决定在系统启动时进行磁盘检查的顺序。0表示不进行检查,1表示有限检查,2表示其次检查。根分区因设为1.其他分区设为2.
通过在“/etc/fstab”文件中添加相应的挂载配置,可以实现开机后自动挂载指定的分区。
3.2.4、查看磁盘使用情况
不带选项和参数的mount命令可以显示分区的挂载情况,若要了解系统中已经挂载各文件系统的磁盘使用情况(如剩余磁盘空间等),可以使用df命令。
df命令使用文件或者设备作为命令参数,较常用的选项为“-h”"-T"。其中,“-h”选项可以显示更容易读的容量单位,而“-T”选项用于显示对应文件系统的类型。