Linux磁盘分区及文件系统格式化和挂载

硬盘接口类型

硬盘的接口主要有 IDE、SATA、SCSI、SAS 和光纤通道等五种类型。其中 IDE 和 SATA 接口硬盘多用于家用产品中,也有部分应用于服务器,SATA 是一种新生的硬盘接口类型,已经取代了大部分 IDE 接口应用。SCSI、SAS 主要应用于服务器上,普通家用设备一般不支持 SCSI 和 SAS 接口。SAS 也是一种新生的硬盘接口类型,可以和 SATA 以及部分 SCSI 设备无缝结合。光纤通道最初设计也不是为了硬盘设计开发的接口,是专门为网络系统设计的,但随着存储系统对速度的需求,才逐渐应用到硬盘系统中,并且其只应用在高端服务器上价格昂贵。
1.IDE:该接口是并口
2.SATA:该接口是串口
3.SCSI(Small Computer System Interface):小型计算机系统接口
4.SAS(Serial Attached SCSI):即串行连接 SCSI,是新一代的 SCSI 技术

硬盘和分区

Linux中主要有两种分区类型,分别为 MBR(Master Boot Record)和 GPT(GUID Partition Table),是在磁盘上存储分区信息的两种不同方式。这些分区信息包含了分区从哪里开始的信息,让操作系统才知道哪个扇区是属于哪个分区的,以及哪个分区是可以启动的。在磁盘上创建分区时,你必须在 MBR 和 GPT 之间做出选择。
在 Linux 中会把设备映射成一个 /dev/ 目录下的系统文件,IDE 接口类型的硬盘设备映射的文件名称前缀为“hd”,SCSI、SATA、SAS 等接口硬盘设备映射的文件名称前缀为“sd”(部分虚拟机或云主机的名称可能是其他的,比如“vd”),后面拼接从“a”开始一直到“z”用来区分不同的硬盘设备,在硬盘名称后面拼接数字形式的分区号用来区分不同的分区。

1.MBR分区

MBR的意思是“主引导记录”,它是存在于驱动器开始部分的一个特殊的启动扇区。这个扇区包含了已安装的操作系统的启动加载器和驱动器的逻辑分区信息。MBR 支持最大 2TB 磁盘,它无法处理大于 2TB 容量的磁盘。MBR 格式的磁盘分区主要分区 基本分区(primary partion;主分区)和扩展分区(extension partion)两种主分区和扩展分区下的逻辑分区。主分区总数不能大于 4 个,其中最多只能有一个扩展分区。且基本分区可以马上被挂载使用但不能再分区,扩展分区必须再进行二次分区后才能挂载。扩展分区下的二次分区被称之为逻辑分区,逻辑分区数量限制视磁盘类型而定。
MBR的主分区号为 1-4,逻辑分区号为从 5 开始累加的数字。比如设备主板上装了 4 块硬盘,分别为 2块 IDE 接口硬盘, 1 块 SCSI 接口硬盘和一块 SATA 接口硬盘。其中 2 块 IDE 接口硬盘的分区策略为 2 个主分区和 2 个逻辑分区,SCSI 分区策略为 3 个主分区和 3 个逻辑分区,SATA 分区策略为 4 个主分区。硬盘文件和分区名称如下:

硬盘主分区1主分区2主分区3主分区4逻辑分区1逻辑分区2逻辑分区3逻辑分区n
IDE1/dev/hda/dev/hda1(p)/dev/hda2(p)/dev/hda3(e)//dev/hda5(l)/dev/hda6(l)//
IDE2/dev/hdb/dev/hdb1(p)/dev/hdb2(p)/dev/hdb3(e)//dev/hdb5(l)/dev/hdb6(\l)//
SCSI/dev/sda/dev/sda1(p)/dev/sda2(p)/dev/sda3(p)/dev/sda4(e)/dev/sda5(l)/dev/sda6(l)/dev/sda7(l)/
SATA/dev/sdb/dev/sdb1(p)/dev/sdb2(p)/dev/sdb3(p)/dev/sdb4(p)////

其中分区名称后面的(p)代表基本分区(主分区),(e)代表扩展分区,(l)代表逻辑分区。需要注意的是,如果分区策略中存在逻辑分区,则说明一定会有扩展分区,那么基本分区数则最多只能有 3 个,扩展分区数最多只能是 1 个,如果没有扩展分区则可以创建 4 个基本分区。想要创建逻辑分区,则必须先将唯一的扩展分区创建出来,并且如果删除了扩展分区,那么它下面的所有逻辑分区也会被自动删除。
如果是 SCSI 接口硬盘则最多只能有 15 (其中扩展分区不能直接使用所以不计算)个分区,其中主分区是 4 个,逻辑分区最多 12 个。IDE 接口硬盘最多只能有 63 (其中扩展分区不能直接使用所以不计算)个分区,其中主分区最多 4 个,逻辑分区最多 60 个。

2.GPT分区

GPT 意为 GUID 分区表,驱动器上的每个分区都有一个全局唯一的标识符(globally unique identifier,GUID)。支持的最大磁盘可达 18EB,它没有主分区和逻辑分区之分,每个硬盘最多可以有 128 个分区,具有更强的健壮性与更大的兼容性,并且将逐渐取代 MBR 分区方式。GPT 分区的命名和 MBR 类似,只不过没有主分区、扩展分区和逻辑分区之分,分区号直接从 1 开始累加一直到 128.

文件系统类型

当硬盘分区被创建完成之后,还并不能直接挂载到目录上存储文件,需要选择合适的文件系统进行格式化。常见的分区类型有 FAT32、FAT16、NTFS、HP-UX等,而专供 Linux 使用的主流的一些文件系统有 ext2/3/4、physical volume(LVM)、softwareRAID、swap、vfat、xfs等。其中:

1.ext2/3/4

ext2/3/4 适合 Linux 的文件系统类型,由于 ext3 文件系统多了日志功能,因此系统恢复起来更加快速,ext4 是 ext3 的升级,效率更加高,因此建议使用默认 ext4 类型,而不要使用 ext2/3

2.physical volume(LVM)

这是一种弹性调整文件系统大小的机制,即可以让文件系统变大或变小,而不改变原文件数据的内容,功能不错,但性能不佳。

3.softwareRAID

利用 Linux 系统的特性,用软件仿真出磁盘阵列功能

4.swap

内存交换分区。由于 swap 并不会使用到目录树的挂载,因此用 swap 就不需要指定挂载点

5.vfat

同时被 Linux 和 Windows 所支持的文件系统类型。如果主机硬盘同时存在 Windows 和 Linux 两种操作系统,为了进行数据交换,可以使用该文件系统。

6.xfs

也是一个文件系统类型,在 Centos 7 中将被作为默认的文件系统类型,替换 ext4

分区管理类命令

fdisk命令

1、查看磁盘的分区信息
fdisk -l [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

lsblk命令

作用:列出系统上的所有磁盘列表
用法:lsblk [OPTIONS] [device]

选项:
	-b:仅列出磁盘本身,并不会列出该磁盘的分区数据
	-f:同时列出该磁盘内的文件系统和 UUID
	-i:使用 ASCII 的字符输出,不要使用复杂的编码(在某些环境下很有用)

创建文件系统(格式化分区)

格式化:低级格式化(分区之前进行,划分磁道),高级格式化(分区之后对分区进行,创建文件系统)
元数据区:文件元数据;inode(index node),包含文件大小、权限、属主属组、时间戳、数据块指针,不包含文件名
链接文件:存放数据针的空间当中存储的是真实文件的访问路径
设备文件:存放数据针的空间当中存储的是设备号(major,minor)

ext系列文件系统的管理工具

mke2fs命令

用法:mke2fs [OPTIONS] device
选项:
	-t {ext2 | ext3 | ext4}:指明要创建的文件系统类型
	-b {1024 | 2048 | 4096}:指明文件系统的块大小
	-L LABEL:指明卷标
	-j:创建有日志功能的文件系统 ext3
	-i #:指明每多少个字节一个 inode (指明 inode 与字节的比率;即每多少字节创建一个 inode)
	-m #:指定预留的空间,百分比
	-O [^]FEATURE:以指定的特性创建目标文件系统;加 ^ 表示关闭此特性

e2label命令

作用:查看卷标与设定
查看卷标:e2label device
设定卷标:e2label device LABEL

tune2fs命令

作用:查看或修改 ext 系列文件系统的某些属性
注意:块大小创建后不可修改
用法:tune2fs [OPTIONS] device
选项:
	-l:查看超级快内容
修改指定文件系统的属性
	-j:将 ext2 升级为 ext3
	-L LABEL:修改卷标
	-m #:调整预留空间的百分比
	-O [^]FEATHER:开启或关闭某种特性
	-o [^]mount_options:开启或关闭某种默认挂载选项
		acl
		^acl

dumpe2fs命令

作用:显示ext系列文件系统的属性信息;等同于 tune2fs -l device
用法:dumpe2fs [-h] device

e2label命令

作用:卷标的查看与设定
查看:e2label device
设定:e2label device LABEL

fsck命令

作用:用于实现文件系统检测的工具
因进程意外终止或系统崩溃等原因导致写入操作非正常终止时,可能会造成文件损坏;此时,应该检测并修复文件系统;建议,离线进行检测
用法:fsck [选项] device
选项:
	-t TYPE:指明文件系统类型
	-a:无须交互而自动修复所有错误
	-r:交互式修复

建议:交互式修复

ext系列文件系统专用检测工具

e2fsck命令
用法:e2fsck [OPTIONS] device
选项:
	-y:对所有问题自动回答yes
	-f:即使文件系统处于clean状态,也要强制进行检测


fsck.ext4 = fsck -t ext4

如何使用 xfs 文件系统

centos 6 需要安装
\# yum install xfsprogs

创建:mkfs.xfs
检测:fsck.xfs

mkfs -t xfs = mkfs.xfs

blkid命令

作用:查看文件系统相关属性
blkid device
blkid -U UUID:根据指定的UUID定位设备
blkid -L LABEL:根据指定的LABEL定位设备

swap文件系统

Linux上的交换分区必须使用独立的文件系统;且文件系统的 system ID 为 82
创建swap设备:mkswap命令
用法:mkswap [OPTINOS] device
	-L LABEL:指明卷标
	-f:强制

Windows无法识别Linux文件系统;因此,存储设备需要两种系统之间交叉使用时,应该使用Windows和Linux同时支持的文件系统fsat32(vfat)

文件系统的使用

格式化完系统还不能使用;首先需要“挂载”

挂载的概念

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

挂载点:mount_point,用于作为另一个文件系统的访问入口
特性:
1、挂在的目录事先存在
2、应该使用未被或不会被其它进程使用到的目录
3、挂载点下原有的文件会被隐藏(原有的文件是被隐藏而不会删除)

mount命令
功用:用于把格式化的文件系统(分区)挂载到系统。只有挂载之后的文件系统方可使用
用法:mount [选项] device dir
选项:
	-r:只读挂载
	-w:读写挂载,默认就是读写挂载
	-n:默认情况下,设备挂载或卸载的操作会同步更新至/etc/mtab文件中,-n用于禁止此特性
	-t vfstype:指明要挂载的设备上的文件系统的类型,多数情况下可省略,此时mount会通过blkid来判断要挂载的设备的文件系统类型
	-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:只读
		rw:读写
		dev/nodev:此设备上是否允许创建设备文件
		exec/noexec:是否允许运行此设备上的程序文件
		auto/noauto:是否允许自动挂载
		user/nouser:是否允许普通用户挂载此文件系统
		suid/nosuid:是否允许程序文件上的 SUID 和 SGID 特殊权限生效
		relatime:
		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


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

# 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 [options] [device]
选项:
	-a:挂载所有定义在/etc/fstab文件中的所有swap设备

禁用:swapoff命令
用法:swapoff [options] device
选项:
	-a:禁用所有定义在/etc/fstab文件中的所有swap设备

设定除根文件系统以外的其它文件系统能够开机自动挂载

配置/etc/fstab文件
每行定义一个要挂载的文件系统及相关属性
每一行分为 6 个字段
(1)要挂载的设备
		设备文件
		LABEL
		UUID
		伪文件系统:如sysfs、proc、tmpfs等
(2)挂载点
		注意:swap类型的设备的挂载点为swap

(3)文件系统类型

(4)挂载选项
	defaults:使用默认挂载选项
	如果要同时指明多个挂载选项,彼此间以逗号分隔即可
	
(5)转储频率
	0:从不备份
	1:每天备份
	2:每隔一天备份

(6)自检次序
	0:不自检
	1:首先自检;通常只能是根文件系统可用
	2:次级自检
	3:
	...

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


df命令

作用:查看挂载后的磁盘使用状态
用法:df [options]... [FILE]...
	-l:仅显示本地文件系统的相关系统
	-h:单位换算,human-readable
	-i:显示inode的使用状态而非blocks

du命令

作用:显示文件大小
选项:
	-s:sumary;显示文件或整个目录的大小;默认是单位KB
	-h:human-readable

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

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

  • 3
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值