虚拟机上RedHat6.5的根目录分区空间扩展教训.md

事情缘由

之前在虚拟机安装RedHat6.5系统时候,参考网上的教程,分配了20G存储。后面随着安装数据库等软件,挂载根目录的分区空间一下子就显得很不足,因此有了扩展挂载根目录的分区事情。

基本概念

<font color="red">什么是分区,主(Primary)分区和延伸(Extended)分区?</font>

分区:

将一个硬盘拆分成多个部分,如Windows系统中C、D、E盘,拆分成多个部分可以将重要数据进行分隔开,如当系统重装后可以避免用户数据丢失。

Primary分区和Extended分区:

因为存放分区的表容量问题导致不能有多个分区槽,MBR分区表一般只能至多有4个分区,所以为了规避这个问题,引入了延伸分区。其实延伸分区就是在一块分区的基础上再搞出一套分区表。示例图(引用《鸟哥的Linux私房菜-基础版》)如下:

00693245-83c0-4c31-98e6-76797bf776e2.jpg

<font color="red">挂载(mount)是什么意思?</font>

挂载:利用一个目录当成进入点,将分区的数据放置在该目录下,也就是说进去该目录就可以读取该分区数据。在Windows系统下,在电脑插入U盘,我们会通过系统自动挂载到的F:/目录去读写U盘数据;在Linux下可能要通过mount命令将U盘挂载到特定目录下才可以访问了。

解决思路

加上一个硬盘并分区,格式化,然后根目录的数据全部复制到新分区中,最后将旧分区卸载并挂载新分区;(我觉得该想法很危险,系统什么东西都在根目录中吧,这样搞容易把系统搞崩,博主我直接弄崩过2次,就算是整个硬盘拷贝还是没实现,我觉得很难,而且容易搞崩系统。)

确认好根目录下容量比较大的目录,如/home目录,可以利用tar等拷贝命令将数据拷贝到新分区中,然后删除/home目录(如果是有分区挂载,需卸载),新建后重新挂载新分区;

使用第三方工具如GParted来直接操作分区;

操作经过

错误示例

<font color="red">开始想得比较简单,直接在虚拟机上扩展存储再进入到RedHat系统里面创建分区/dev/sda4, 然后利用mount挂载到根目录下 </font>

  1. 扩展物理硬盘空间,这里我添加至60G
2.png

2. 进入系统,查询硬盘和分区情况,这里面实实在在看到了sda硬盘是扩展了,但并没分配到/dev/sda2分区上。

3.png

3. 新建/dev/sda4分区,并分配剩余空间

4.png

4. 重启,格式化文件系统和查看并挂载新分区

5.png

然后发现上面/dev/sda4和/dev/sda2是一模一样,这也说明此方法不行

正确示例1

1. 添加比原来还大的硬盘,这里是30G

6.png

2. 对新硬盘新建分区并格式化

fdisk /dev/sdb

7.png

mkfs.ext4 /dev/sdb

3. 对新分区进行挂载并拷贝/home目录数据

mkdir -p /mytemp

mount /dev/sdb2 /mytemp

tar czvf home.tar /home/

4. 删除/home目录

rm -rf /home

5. 卸载新分区并创建/home目录进行挂载

umount /dev/sdb2

mkdir /home

mount /dev/sdb2 /home

6. 解压home.tar并进行目录恢复

cd /home

tar zxvf home.tar

下面命令是对原home文件夹下某一子文件夹进行拷贝,多个需执行多次

mv ./home/xxx /home/

7. 让分区随启动自动挂载

vi /etc/fstab

修改内容如下:


/dev/sdb2               /home                 ext4    defaults        0 0

重启后查看

init 6

df -Th

8.png

正确示例2

<font color="red">通过GParted分区工具进行分区扩展操作 </font>

1. 下载liveCD版的GParted ios文件

2. 编辑虚拟机设置,选择GParted ios文件并勾选“启动时连接”,如下图所示:

9.png

3. 在启动虚拟机下中选择“打开电源时进入固件(F)”

10.png

4. 在BIOS里面调整优先从“CD-ROM Drive”启动,按F10保存退出

11.png

5. 进入GParted界面,一直下一步最后到如下界面

12.png

6. 因为sda2后是swap分区,将swap分区和sda4删除,然后扩展sd2分区(注意留下空间给剩下的swap分区),应用后并启动系统(启动前把虚拟机设置都重置为跟原先一样)。

13.png

7. 查询硬盘和分区情况

14.png

至此,扩展成功!

思考

当我们拿到一台机器后,应该准备一个单独的分区来挂载/home目录,再准备一个单独硬盘并新建一个分区来挂载/backup备份目录。如果不考虑细微性能,可以利用LVM来管理,这样不用停止服务实现动态扩展,而且主要很方便。

<font color="red">PS: 上面的例子可能看起来容量什么的都对应不上,那是因为我是操作了一遍又一遍,把系统都整崩了好几次!!!说多了都是泪啊,在下是小白,欢迎拍砖和交流!</font>

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容