事情缘由
之前在虚拟机安装RedHat6.5系统时候,参考网上的教程,分配了20G存储。后面随着安装数据库等软件,挂载根目录的分区空间一下子就显得很不足,因此有了扩展挂载根目录的分区事情。
基本概念
<font color="red">什么是分区,主(Primary)分区和延伸(Extended)分区?</font>
分区:
将一个硬盘拆分成多个部分,如Windows系统中C、D、E盘,拆分成多个部分可以将重要数据进行分隔开,如当系统重装后可以避免用户数据丢失。
Primary分区和Extended分区:
因为存放分区的表容量问题导致不能有多个分区槽,MBR分区表一般只能至多有4个分区,所以为了规避这个问题,引入了延伸分区。其实延伸分区就是在一块分区的基础上再搞出一套分区表。示例图(引用《鸟哥的Linux私房菜-基础版》)如下:
<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>
- 扩展物理硬盘空间,这里我添加至60G
2. 进入系统,查询硬盘和分区情况,这里面实实在在看到了sda硬盘是扩展了,但并没分配到/dev/sda2分区上。
3. 新建/dev/sda4分区,并分配剩余空间
4. 重启,格式化文件系统和查看并挂载新分区
然后发现上面/dev/sda4和/dev/sda2是一模一样,这也说明此方法不行
正确示例1
1. 添加比原来还大的硬盘,这里是30G
2. 对新硬盘新建分区并格式化
fdisk /dev/sdb
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
正确示例2
<font color="red">通过GParted分区工具进行分区扩展操作 </font>
1. 下载liveCD版的GParted ios文件
2. 编辑虚拟机设置,选择GParted ios文件并勾选“启动时连接”,如下图所示:
3. 在启动虚拟机下中选择“打开电源时进入固件(F)”
4. 在BIOS里面调整优先从“CD-ROM Drive”启动,按F10保存退出
5. 进入GParted界面,一直下一步最后到如下界面
6. 因为sda2后是swap分区,将swap分区和sda4删除,然后扩展sd2分区(注意留下空间给剩下的swap分区),应用后并启动系统(启动前把虚拟机设置都重置为跟原先一样)。
7. 查询硬盘和分区情况
至此,扩展成功!
思考
当我们拿到一台机器后,应该准备一个单独的分区来挂载/home目录,再准备一个单独硬盘并新建一个分区来挂载/backup备份目录。如果不考虑细微性能,可以利用LVM来管理,这样不用停止服务实现动态扩展,而且主要很方便。
<font color="red">PS: 上面的例子可能看起来容量什么的都对应不上,那是因为我是操作了一遍又一遍,把系统都整崩了好几次!!!说多了都是泪啊,在下是小白,欢迎拍砖和交流!</font>