前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >运维经验|Linux虚拟机如何挂载磁盘

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

原创
作者头像
六月暴雪飞梨花
修改2023-12-22 11:10:55
修改2023-12-22 11:10:55
1K110
代码可运行
举报
运行总次数:0
代码可运行

引言

今天早上在做业务系统日常巡检,发现日志盘没有办法写入进去了,第一个想到的就是磁盘被撑爆了。很好奇就去看了下,果不其然,满满当当的日志文件。为了解决这个问题,下面开始自己的处理方案,以供需要之人。

这个问题很好解决,我一般的处理办法有两种。

第一种就是根据需求来删减日志的,可以删除过期的日志或者时间久远的日志文件。一般来讲,大家应该都会有相应的调度任务来处理这个。

第二种就是增加磁盘空间,一般情况下,我们都是增加挂载。

那么问题来了,如何进行磁盘挂载呢?下面就让我来带着大家一起实践下吧。

环境准备

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

实践挂载

1、 检查磁盘存储

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

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

2、 先挂载一个盘

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

代码语言:javascript
代码运行次数:0
运行
复制
lsblk

3、 查看未挂载的磁盘

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

代码语言:javascript
代码运行次数:0
运行
复制
[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@xinan175 ~]# 

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

4、 实施磁盘分区

【格式】fdisk [盘号/盘位置/盘节点]

【实践】执行 fdisk /dev/sdb 在Linux进行挂载。

代码语言:javascript
代码运行次数:0
运行
复制
[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)创建挂载节点

这个比较简单,就是创建一个文件夹。

代码语言:javascript
代码运行次数:0
运行
复制
mkdir disk_mount

(2)将新磁盘挂载到新节点

【格式】mount [磁盘节点] [目录节点]

代码语言:javascript
代码运行次数:0
运行
复制
mount /dev/sdb1 /disk_mount

7、 检查是否挂载成功

此时,可以使用df -h命令来查询是否挂载成功。

8、 设置开机启动挂载

将挂载信息按指定格式写入到 /etc/fstab文件中(这样主机重启后,挂载才能永久有效),可以将下面的信息追加到文件中。

/dev/sdb1 /disk_mount ext4 defaults 0 1 // 如果上面用的是ext3,这里也要用ext3;

此时,如果你在测试环境,可以重启试试。

9、 迁移日志到挂载盘

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

代码语言:javascript
代码运行次数:0
运行
复制
cp -rf /data/backup/* /disk_mount/
mv /data/backup/* /disk_mount/

附录:第一步骤命令

输入m命令可以查阅帮助命令。

代码语言:javascript
代码运行次数:0
运行
复制
# 命令操作
   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挂载。

代码语言:javascript
代码运行次数:0
运行
复制
$ /disk_mount mount point does not exist.

结束语

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

我正在参与2023腾讯技术创作特训营第四期有奖征文,快来和我瓜分大奖!

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 引言
  • 环境准备
  • 实践挂载
    • 1、 检查磁盘存储
    • 2、 先挂载一个盘
    • 3、 查看未挂载的磁盘
    • 4、 实施磁盘分区
    • 5、 格式化写入文件系统
    • 6、 实施挂载
      • (1)创建挂载节点
      • (2)将新磁盘挂载到新节点
    • 7、 检查是否挂载成功
    • 8、 设置开机启动挂载
    • 9、 迁移日志到挂载盘
    • 附录:第一步骤命令
  • 问题与解决办法
    • 挂载点不存在
  • 结束语
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档