运维经验|Linux虚拟机如何挂载磁盘

在这里插入图片描述

📫 作者简介:「六月暴雪飞梨花」,专注于研究Java,就职于科技型公司后端工程师
🏆 近期荣誉:华为云云享专家、阿里云专家博主、腾讯云优秀创作者
🔥 三连支持:欢迎 ❤️关注、👍点赞、👉收藏三连,支持一下博主~

引言

今天早上在做业务系统日常巡检,发现日志盘没有办法写入进去了,第一个想到的就是磁盘被撑爆了。很好奇就去看了下,果不其然,满满当当的日志文件。为了解决这个问题,下面开始自己的处理方案,以供需要之人。
这个问题很好解决,我一般的处理办法有两种。
第一种就是根据需求来删减日志的,可以删除过期的日志或者时间久远的日志文件。一般来讲,大家应该都会有相应的调度任务来处理这个。
第二种就是增加磁盘空间,一般情况下,我们都是增加挂载。
那么问题来了,如何进行磁盘挂载呢?下面就让我来带着大家一起实践下吧。

环境准备

实验机器环境(虚拟机):Linux ky10.x86_64 、Linux CentOS 7.6_x86_64 其中本次实践演示为CentOS 7.6虚拟机。

实践挂载

1、 检查磁盘存储

在检查磁盘是否已经被垃圾文件占用,我们通常会使用命令 df -h 来检查是否已经还有存储空间,此命令只会展示已经挂载在节点上的磁盘是否被占用,而未挂载的磁盘是不会被显示到此命令的输出。所以,我们需要额外的命令工具来做支撑,实验之前,先检查下机器已经挂载的磁盘,可使用lsblk命令来查询,如果不了解这个命令,
在这里插入图片描述

注意:Linux下对SCSI和SATA设备是以sd命名的,第一个SCSI设备是sda,第二个是sdb…以此类推。一般主板上有两个SCSI接口,因此一共可以安装4个SCSI设备。主SCSI上的两个设备分别对应sda和sdb,第二个SCSI口上的设备对应sdc和sdd。

2、 先挂载一个盘

当我们磁盘满了,此时需要从外部挂载一个硬盘来存储日志信息或者备份信息。为了方便实践操作,此时我先挂载一个盘。当然,如果这个是在UI界面程序上面操作比较好操作,此时演示的为命令行挂载。执行命令
lsblk
在这里插入图片描述

3、 查看未挂载的磁盘

Linux fdisk 是一个创建和维护分区表的程序,它兼容 DOS 类型的分区表、BSD 或者 SUN 类型的磁盘列表。我们可以使用命令fdisk -l查看还未挂载到节点的磁盘。

[root@~ ~]# fdisk -l
Disk /dev/sda:50 GiB,53687091200 字节,104857600 个扇区
磁盘型号:VMware Virtual S
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x9366b0cc

设备       启动    起点      末尾      扇区 大小 Id 类型
/dev/sda1  *       2048   2099199   2097152   1G 83 Linux
/dev/sda2       2099200 104857599 102758400  49G 8e Linux LVM


Disk /dev/sdb:1 TiB,1099511627776 字节,2147483648 个扇区
磁盘型号:VMware Virtual S
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节


Disk /dev/mapper/klas-root:45.4 GiB,48364519424 字节,94461952 个扇区
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节


Disk /dev/mapper/klas-swap:3.98 GiB,4244635648 字节,8290304 个扇区
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
[root@xxx ~]# 

在这里插入图片描述

如上所示,使用fdisk之后可以看到有四个Disk盘,其中Disk /dev/sdb为刚挂载的盘。此时使用df -h也还是看不到已经挂载的盘。

4、 实施磁盘分区

【格式】fdisk [盘号/盘位置/盘节点]
【实践】执行 fdisk /dev/sdb 在Linux进行挂载。

[root@xxx ~]# fdisk /dev/sdb
……
命令(输入 m 获取帮助):n  				       # 第一步 直接输入n,新建一个分区(可以参考附录第一步骤命令)
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): p 				       # 第二步 只是选择主分区
分区号 (1-4,默认 1):1 							 # 第三步 默认第一分区
起始 扇区 (2048-41943039,默认为 2048)# 第四步 开始大小,使用默认,直接回车
将使用默认值 2048
结束 扇区, +扇区 or +size{K,M,G} (2048-41943039,默认为 41943039)# 第五步 结束大小,使用默认,直接回车
分区 1 已设置为 Linux 类型,大小设为 10 GiB
命令(输入 m 获取帮助):W								 # 第六步 写入磁盘,保存并退出。
The partition table has been altered!
 
Calling ioctl() to re-read partition table.
正在同步磁盘。

通过上面六步走,我们可以临时挂载(机器重启后失效)。这六步骤分别为:
(1)第一步 直接输入n,新建一个分区(可以参考4、(1)帮助第一个命令)
(2)第二步 只是选择主分区
(3)第三步 默认第一分区
(4)第四步 开始大小,使用默认,直接回车
(5)第五步 结束大小,使用默认,直接回车
(6)第六步 写入磁盘,保存并退出。

简单的六步走方式是懒人操作,执行的命令为: n > p > 1 > 回车 > 回车 > w 。主打一个懒人操作,当然了,这个也是在熟悉命令的情况下操作。如果不熟悉命令,可以参考下面的执行帮助命令来查询。

5、 格式化写入文件系统

使用 mkfs.ext4 /dev/sdb1 命令来格式化磁盘并写入到文件系统中。
在这里插入图片描述

注意:这里可以用ext3,也可以用ext4。可以到/dev目录下查看有哪些格式。

6、 实施挂载

(1)创建挂载节点
这个比较简单,就是创建一个文件夹。
mkdir disk_mount
(2)将新磁盘挂载到新节点
【格式】mount [磁盘节点] [目录节点]
mount /dev/sdb1 /disk_mount

7、 检查是否挂载成功

此时,可以使用df -h命令来查询是否挂载成功。
在这里插入图片描述

8、 设置开机启动挂载

将挂载信息按指定格式写入到 /etc/fstab文件中(这样主机重启后,挂载才能永久有效),可以将下面的信息追加到文件中。
/dev/sdb1 /disk_mount ext4 defaults 0 1 // 如果上面用的是ext3,这里也要用ext3;
此时,如果你在测试环境,可以重启试试。

9、 迁移日志到挂载盘

上面的挂载已然成功,那么回到最初的问题,可以将日志迁移到挂载盘中,是业务正常运行。

cp -rf /data/backup/* /disk_mount/
mv /data/backup/* /disk_mount/

附录:第一步骤命令
输入m命令可以查阅帮助命令。

命令操作

   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

问题与解决办法

挂载点不存在

执行挂载新节点到目录上时提示挂载节点不存在时,首先检查下创建的目录的权限问题或者创建的目录结构不对,一般当前用户下,也就是在最外层;其次有些时候可能系统性能比较慢,稍等等;如果还不可以,最后可以删除进行重新mout挂载。

$ /disk_mount mount point does not exist.

结束语

通过本文关于在Linux下如何挂载磁盘,以及挂载后开机启动,想必读者都对磁盘分区挂载有所了解。个人觉得Linux中的工具不像windows,可以使用图形化界面程序处理,但是命令也可以完美的解决问题,尤其是在线上环境中历练我们的命令功底,而且看了很多国产操作系统在被应用到线上环境后,这是其他操作系统所不具备的优势。总的体验下来,国产操作系统非常好用,功能也很强大,值得入手体验一番!


欢迎关注博主 「六月暴雪飞梨花」 或加入【六月暴雪飞梨花社区】一起学习和分享Linux、C、C++、Python、Matlab,机器人运动控制、多机器人协作,智能优化算法,滤波估计、多传感器信息融合,机器学习,人工智能等相关领域的知识和技术。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

六月暴雪飞梨花

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

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

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

打赏作者

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

抵扣说明:

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

余额充值