当前位置: 网站首页 > dmg888线路检测

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

2019-06-25来源:大满贯dmg988

首先,咱们需要模拟一下环境,下图  使用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 bytes64 heads, 32 sectors/track, 204 cylindersUnits = cylinders of 2048 * 512 = 1048576 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisk 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 1Last 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 bytes64 heads, 32 sectors/track, 204 cylindersUnits = cylinders of 2048 * 512 = 1048576 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisk 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: doneThis filesystem will be automatically checked every 21 mounts or180 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 -1Setting 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/localmount /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 1UUID=b001470a-e506-4b50-a705-7b4343ac6a7c /boot ext4 defaults 1 2UUID=ec344814-973b-45d3-95f0-7ce6265b3247 swap swap defaults 0 0tmpfs /dev/shm tmpfs defaults 0 0devpts /dev/pts devpts gid=5,mode=620 0 0sysfs /sys sysfs defaults 0 0proc /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 的区别,咱们明天再讲~~~~~。

, 1, 0, 9);