Linux系统中磁盘分区与挂载——如何将一块磁盘挂载到多个路径下

云服务中的系统盘和数据盘

当我们在阿里云上购买云服务器时,这个ECS实例已经包含了一个默认的存储容量,也就是用于承载操作系统相关文件系统的系统盘。
当用户有更多的数据存储需求时,比如需要更大的硬盘来存放数据库数据时,就可以选择给ECS实例另外挂载若干个数据盘。

磁盘分区与分区表

有时候我们一次性给服务器添加容量足够大的硬盘,但是实际使用中希望它一部分用于存放数据,一部分用于存放日志,而它们又位于不同的文件路径下。这时候就需要把硬盘先进行分区,每个磁盘分区在操作系统中都被当作一个独立的磁盘来看待。

磁盘与磁盘分区、分区表、文件系统的关系

磁盘与磁盘分区、分区表、文件系统的关系

磁盘分区除了可以将一块磁盘当多块使用,增加了磁盘管理的灵活性,还有助于提高数据的安全性,比如当某个分区的磁盘容量占满或者对应的文件系统受病毒感染时,并不会影响到其他的磁盘分区。

每块磁盘的分区信息都保存在一个分区表里, 分区表主要有两种类型,MBR和GPT,其中GPT作为新一代的磁盘分区表标准,可以支持容量大于2TB的磁盘进行分区操作。因此在部署数据存储需求大的软件时,磁盘分区标准一定要选用GPT。

在linux系统中,磁盘分区都可以通过软件来操作,比如MBR分区常用的fdisk命令和GPT分区常用的parted命令。下面以 fdisk 命令为例介绍下如何对磁盘进行分区。

1.进入磁盘 /dev/sda 的分区相关操作界面

fdisk /dev/sda

2.输入p查看磁盘当前的分区信息,因为还没有分区所以此时只看到磁盘的描述信息,看不到分区信息

p
# 磁盘描述信息
Disk /dev/sda: 21.5 GB, 21474836480 bytes, 41943040 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x00099f6a

#分区信息这一栏还是空的
   Device Boot      Start         End      Blocks   Id  System

3.输入n创建新的分区,分区类型选p(primary 主分区),分区编号选1,分区起始扇区直接敲回车选择默认,分区结束扇区可以按需要填写,比如500G的磁盘需要分200G和300G两个分区,则第一个分区的结束扇区填写 +300G

n
p
1
<回车>
+300G

4.创建第二个磁盘分区,步骤和上面差不多,如果只是创建两个分区,则起始扇区和结束扇区处都可以直接敲回车,默认会从上一个分区的边界一直划分到磁盘的最后一个扇区

n
p
2
<回车>
<回车>

5.输入p查看刚创建的两个磁盘分区

p
Disk /dev/sda: 21.5 GB, 21474836480 bytes, 41943040 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x00099f6a

#此时可以看到两个磁盘分区的信息
   Device Boot      Start         End      Blocks   Id  System
/dev/sda1           ...           ...      ...      ... ...
/dev/sda2           ...           ...      ...      ... ...

6.输入w使分区操作生效

w

由于MBR的特性,主分区只能有4个,所以在需要创建超过4个分区时,需要考虑使用拓展分区和逻辑分区。

fdisk在用户输入w后,会触发内核重新读取磁盘的分区表,以使磁盘分区生效,也就是可以在文件系统中看到 /dev/sda1 和 /dev/sda2 这两个设备文件。但是这一步偶尔也会不生效,用户可以输入 partprobe 命令,手动触发内核读取所有磁盘的分区表。

文件系统

文件系统本质上是就是文件和目录的数据库,而磁盘则是文件系统中数据的存储介质。

如同我们熟悉的关系型数据库一样,文件系统在插入数据前也需要定义表结构,所以我们在磁盘分区挂载之前通常要对其进行格式化的操作,例如 mkfs.ext4 /dev/sda,就是将 /dev/sda 格式化为ext4类型的文件系统,使其后续可以接受文件或目录等数据。常用的文件系统类型有 ext4 和 xfs。

挂载

当用户需要使用磁盘分区中的数据时,需要将其与一个已存在的目录文件进行关联,这个关联动作就是挂载。

挂载命令十分简单:

mount <磁盘分区对应的设备文件> <需要挂载的文件路径>

例如将 /dev/sda1 挂载到 /var/log 路径下

mount /dev/sda1 /var/log

挂载成功后,用户就可以在 /var/log 路径下访问磁盘分区 /dev/sda1 中的数据了。

但是这种挂载只是一种临时行为,操作系统重启后这一关联就会失效,解决办法就是在文件 /etc/fstab 末尾添加相应的挂载记录:

/dev/sda1    /var/log    ext4 defaults 0 0

这样每次系统启动时都会读取这个文件并自动执行对应的挂载操作,免去了每次手动挂载的麻烦。

  • 5
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wonain

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值