云服务器Linux系统-磁盘无损扩容【宝塔面板适用】
    文章作者:恒爱网络 阅读次数:1531 发布时间:2023-8-1

    注意:以下操作会有风险,为保证数据安全请先备份您的服务器系统,我司云服务器产品可联系我司为您全盘备份后再操作。

    适用情况:已挂载了数据盘,通过升级又新增了原有数据盘的大小,现在想把新增的部分直接添加到已挂载的数据盘里。


    这里已安装宝塔面板的centos系统为例,不同的系统可能盘符名称有所差别,请在理解的情况下操作。


    首先使用SSH远程连接到服务器   运行 umount [文件系统名称] 命令卸载挂载的数据盘/WWW


    如:umount  /www


    注意事项:这里操作的时候如果出现报错:


    umount: /www:目标忙。
            (有些情况下通过 lsof(8) 或 fuser(1) 可以
             找到有关使用该设备的进程的有用信息)





    先关闭swap分区跟卸载主机监控以及停止宝塔相关服务


    (1)关闭swap分区:

    swapoff -a 

    (2)卸载主机监控(部分主机商有,我司云机请跳过):

    /usr/local/cloudmonitor/wrapper/bin/cloudmonitor.sh remove && \ rm -rf /usr/local/cloudmonitor

    (3)解除已挂在的原有数据盘占用(把占用 /dev/db1 的进程杀死):

    fuser -m -k /dev/sdb1

    (4)卸载挂载的数据盘分区:

    umount /dev/sdb1
    
    

    然后使用命令 df -h 查看是否卸载成功,如果看不到 /dev/vdb1 的信息表示卸载成功。


    2、使用 fdisk 命令删除原来的分区并创建新分区:


    (1)运行命令 fdisk -l 列出分区信息并记录扩容前数据盘的最终容量、起始扇区(First sector)位置

    (2)运行命令 fdisk [数据盘设备名] 进入 fdisk 界面

      本示例中,命令为 fdisk /dev/sdb


      输入 d 并按回车键,删除原来的分区(删除分区不会造成数据盘内数据的丢失)

      输入 n 并按回车键,开始创建新的分区

      输入 p 并按回车键,选择创建主分区

      输入分区编号并按回车键,这里仅创建一个分区,一般默认回车即可

      输入第一个可用的扇区编号:为了保证数据的一致性,First sector 需要与原来的分区保持一致(在本示例中,按回车键采用默认值)

      输入最后一个扇区编号:因为这里仅创建一个分区,所以按回车键采用默认值

      输入 wq 并按回车键,开始保存之前对分区的操作



    磁盘分区操作示例图:

    3、检查文件系统,并变更文件系统大小

    (1)检查文件系统

    e2fsck -f /dev/sdb1
    如果再次报错:
    /dev/sdb1 is mounted.
    e2fsck: 无法继续, 中止.
    
    那么再执行一次卸载: umount /dev/sdb1
    


    然后再执行:e2fsck -f /dev/sdb1

    (2)变更文件系统大小,以下命令只会格式化新加的磁盘部分。

    resize2fs /dev/sdb1

    注意:

    使用 e2fsck 时,由于系统需要检查并修正文件系统元数据,所以速度较慢、耗时较长,请耐心等待。

    正确使用 e2fsck 和 resize2fs 指令,不会造成原有数据的丢失。


    4、将扩容完成的文件系统挂载到原来的挂载点(如本示例中的 /www)

    mount /dev/sdb1 /www 

    5、查看磁盘空间和使用情况:运行命令 df -h


      如果出现扩容后的文件系统信息,说明挂载成功,就可以使用扩容后的文件系统了。


      reboot  重新启动服务器让全部环境和进程恢复启动就可以了。

    最后发一下有个小问题,服务器实际通过 df -h 显示的 /www 最大容量和 宝塔面板里显示的最大容量 不一致。宝塔里面显示的比实际要小很多,不知道是哪里的原因。