欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  科技

Linux 中/data 数据分区磁盘空间不足,如何挂载磁盘。

程序员文章站 2022-03-20 15:07:53
首先,咱们需要模拟一下环境,下图 使用VMware为我添加一块300G(实际200M~~手动滑稽 -_-)的硬盘设备。 按照步骤一步一步添加就好。添加完成后需要重启你的虚拟机,方能生效。 OK,那么咱们的环境就有了。我已经为咱们的“服务器”安装了个300G(200M)的硬盘了,现在咱们把它挂载到 / ......

首先,咱们需要模拟一下环境,下图  使用VMware为我添加一块300G(实际200M~~手动滑稽 -_-)的硬盘设备。

Linux 中/data 数据分区磁盘空间不足,如何挂载磁盘。

按照步骤一步一步添加就好。添加完成后需要重启你的虚拟机,方能生效。

Linux 中/data 数据分区磁盘空间不足,如何挂载磁盘。

OK,那么咱们的环境就有了。我已经为咱们的“服务器”安装了个300G(200M)的硬盘了,现在咱们把它挂载到 /data 下。

第一步,为新磁盘创建分区。

[root@~]# ll /dev/sdb*    #检查第二块硬盘,及分区
brw-rw---- 1 root disk 8, 16 Aug 15 14:35 /dev/sdb
#这里显示,你有第二块磁盘,但是没有分区啊,兄弟~~

  为磁盘创建分区,可以用两个命令,fdisk  and  parted 。这里咱们先讲 fdisk 。parted等下再说

fdisk 命令,-c 选项:关闭dos兼容模式,-u 以扇区为单位为磁盘分区。

当需要为你的磁盘分的细致一些的时候可以使用,咱们现在要把300G都挂载到 /data 就不使用命令选项了。

下面是等下需要用到的 fdisk  内部指令含义:

m  显示帮助。       n   创建分区。      p  显示磁盘分区信息。     d   删除分区。      w   保存并退出。     q   退出不保存。

[root@~]# fdisk /dev/sdb      #fdisk 命令后面直接加 磁盘文件就好

WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
         switch off the mode (command 'c') and change display units to
         sectors (command 'u').
#这里的警告信息就是,建议你关闭dos兼容模式,且启用-u选项,简单说就是让你使用 -cu 选项。
不过这个警告并不需要太在意,它只会在磁盘未分区时显示,且不会对咱们下面的操作有任何影响。
Command (m for help): p   #先看一下磁盘分区情况

Disk /dev/sdb: 213 MB, 213909504 bytes
64 heads, 32 sectors/track, 204 cylinders
Units = cylinders of 2048 * 512 = 1048576 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x1bf8bec7

   Device Boot      Start         End      Blocks   Id  System

#嗯,空白的    就是没有进行过磁盘分区。
Command (m for help): n      #创建磁盘分区
Command action
   e   extended
   p   primary partition (1-4)   #这里是系统提示,是按 e 创建扩展分区,还是按 p 创建主分区了?
p                #咱们就准备整一个分区,自然选择 p  主分区啦~~
Partition number (1-4): 1        #键入1 , 就是1号主分区的意思。
First cylinder (1-204, default 1):“回车键” (按下Enter)    #这里是让你选择分区开始的柱面,回车就是默认,最初的意思            
Using default value 1
Last cylinder, +cylinders or +size{K,M,G} (1-204, default 204):“回车键” (按下Enter)   #这里是让你选择分区结束的柱面,回车就是默认,最后的意思    
Using default value 204    (创建好了)

Command (m for help): p        #咱们再看一下

Disk /dev/sdb: 213 MB, 213909504 bytes
64 heads, 32 sectors/track, 204 cylinders
Units = cylinders of 2048 * 512 = 1048576 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x1bf8bec7

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1         204      208880   83  Linux
#嗯嗯,分区名称/dev/sdb1,大小差不多“300G”
Command (m for help): w     # 键入 w ,一定要保存后退出。不然所有的设置都不会生效。
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.

  fdisk -l 查看一下磁盘的信息。

[root@~]# fdisk -l| grep '/dev/sdb'

Disk /dev/sdb: 213 MB, 213909504 bytes
/dev/sdb1               1         204      208880   83  Linux

#这就说明咱们的磁盘分区已经创建OK。

 第二步,为你的分区创建文件系统(格式化)

首先要手动更新一下,让系统知道 sdb 磁盘分区表有变化了~~

[root@~]# partprobe /dev/sdb
[root@~]# 

# 傲娇的Linux 并不会给你任何提示。但是这个步骤必不可少

 然后直接给分区装个 ext4文件系统就好了

[root@~]# mkfs.ext4 /dev/sdb1    #mkfs 命令接 .ext4 中间不需要使用空格。后面要跟分区的文件名,并不是磁盘文件名,这个要注意。
mke2fs 1.41.12 (17-May-2010)
··························此处省略数行
Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 21 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.
#最后这两个提示信息是最重要的,它的意思是说:这个文件系统将在21次挂载或是180天以后自动检查,使用 tune2fs -c 或-i 可以覆盖掉默认自动检查。

 反正我是不需要系统默认检查什么的,那我就直接关掉好了,就使用它建议的 tune2fs 命令就好了。

[root@~]# tune2fs -c 0 -i 0 /dev/sdb1    # -c 和 -i 后面都是零(不检查的意思),还是磁盘分区文件~~
tune2fs 1.41.12 (17-May-2010) 
Setting maximal mount count to -1
Setting interval between checks to 0 seconds
#提示信息我就不逐条翻译了,大概意思就是系统不会自动检查了。

 第三步,将 /dev/sdb1 挂载~~到 /data ,并实现开机自动挂载。

mount 挂载,这个简单,我就不讲了。

[root@~]# mount /dev/sdb1 /data
[root@~]# df -h            #最好 df -h 查看一下
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda3        19G  2.3G   16G  13% /
tmpfs           490M     0  490M   0% /dev/shm
/dev/sda1       190M   66M  115M  37% /boot
/dev/sdb1       194M  1.8M  182M   1% /data
               #这里不应该是300G吗,难道是我挂错了?- _ -?

 开机自动实现挂载的方法有很多,咱们就简单的讲三种好了。

方法一:通过 /etc/rc.local   实现开机运行 mount /dev/sdb1 /data 。来实现开机自动挂载

[root@~]# ll /etc/rc.local 
lrwxrwxrwx 1 root root 13 Aug  6 17:57 /etc/rc.local -> rc.d/rc.local
# /etc/rc.local  是 /etc/rc.d/rc.local 的符号链接。在root权限下直接修改符号链接的文件就可以了。
[root@~]# vim /etc/rc.d/rc.local      #但是我有强迫症,我就要修改源文件。哼哼~~

#!/bin/sh
#
# This script will be executed *after* all the other init scripts.
# You can put your own initialization stuff in here if you don't
# want to do the full Sys V style init stuff.

touch /var/lock/subsys/local
mount /dev/sdb1 /data            #编写这么一句就好了,但是我不建议这么做。可能是因为比较Low吧

方法二:通过 /etc/fstab 实现开机自动挂载

[root@~]# vim /etc/fstab
#
# /etc/fstab
# Created by anaconda on Sat Jul 28 14:15:11 2018
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
UUID=4b7f430b-398b-4ca4-a6f4-75e11c8498f0 /                       ext4    defaults        1 1
UUID=b001470a-e506-4b50-a705-7b4343ac6a7c /boot                   ext4    defaults        1 2
UUID=ec344814-973b-45d3-95f0-7ce6265b3247 swap                    swap    defaults        0 0
tmpfs                   /dev/shm                tmpfs   defaults        0 0
devpts                  /dev/pts                devpts  gid=5,mode=620  0 0
sysfs                   /sys                    sysfs   defaults        0 0
proc                    /proc                   proc    defaults        0 0
/dev/sdb1               /data/                  ext4    defaults        0 0
#第一列设备的名称 #第二列 挂载点(目录) #3,文件系统类型 #4,defaults 是默认挂载参数
#第一个 0 是指是否进行备份 0(不进行) 第二个 0 是指是否开机磁盘检查 0 (不检查)

方法三:通过chkconfig 实现开机自动启动。

这个方法我也不太建议,毕竟chkconfig还是用来启用系统服务比较好,挂载的事情还是交给 fstab 的好。

下面的链接就是我写的如何实现chkconfig的开机自启动~~链接,有兴趣的可以看下。

https://www.cnblogs.com/xuenil/p/9470812.html

至于fdisk  与  parted 的区别,咱们明天再讲~~~~~。