当前位置: 移动技术网 > 科技>操作系统>Linux > Linux 中/data 数据分区磁盘空间不足,如何挂载磁盘。

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

2018年08月15日  | 移动技术网科技  | 我要评论
首先,咱们需要模拟一下环境,下图 使用VMware为我添加一块300G(实际200M~~手动滑稽 -_-)的硬盘设备。 按照步骤一步一步添加就好。添加完成后需要重启你的虚拟机,方能生效。 OK,那么咱们的环境就有了。我已经为咱们的“服务器”安装了个300G(200M)的硬盘了,现在咱们把它挂载到 / ...

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

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

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 的区别,咱们明天再讲~~~~~。

如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!

相关文章:

验证码:
移动技术网