问题描述

通过 Azure 平台部署的 Linux 虚拟机默认的根文件系统容量有限,需要进行扩展。

问题分析

由于 Azure 平台部署的 Linux 虚拟机默认根文件系统容量比较小,客户在使用过程中,经常会出现根文件系统用满,导致虚拟机不可用的情况,需要进行手动对根文件系统进行扩容。

解决方案

Important

在执行如下操作前,一定要针对虚拟机的系统盘进行备份。以下步骤基于 CentOS 6.8,其他 Linux 版本,可能会略有区别。

Important

在 CentOS 7.x 中,默认根分区是 /dev/sda2,仅需要扩展 /dev/sda2 分区,且无需激活。

  1. 通过 Azure portal 关闭虚拟机。
  2. 执行以下 Powershell 命令,对系统盘进行扩展:

    复制
    Get-AzureVM -ServiceName "vfldev" -Name "vfldev" | get-AzureOSDisk 
    
    ## 使用正确的 ServiceName 和 VM Name 取代上述参数。
    
    Update-AzureDisk –DiskName "vfldev-vfldev-0-201503091934500547" -Label "ResiZedOS" -ResizedSizeInGB 100
    
    ## 用步骤一获取的 OSdisk 的名字取代上述的 DiskName,并输入想要扩容的磁盘大小。
  3. 通过 Azure portal 启动虚拟机。

  4. 登陆虚拟机,切换成 root 用户,查看当前的虚拟机的根文件系统容量。

    复制
    [root@resizeSDA chpaadmin]# df -h
    Filesystem Size Used Avail Use% Mounted on
    /dev/sda1 30G 1.1G 27G 4% /
    devtmpfs 832M 0 832M 0% /dev
    tmpfs 840M 0 840M 0% /dev/shm
    tmpfs 840M 8.3M 832M 1% /run
    tmpfs 840M 0 840M 0% /sys/fs/cgroup
    /dev/sdb1 69G 53M 66G 1% /mnt/resource
  5. 打开分区表

    复制
    [root@resizeSDA chpaadmin]# fdisk /dev/sda
    Welcome to fdisk (util-linux 2.23.2). Changes will remain in memory only, until you decide to write them.
    Be careful before using the write command. Command (m for help): p Disk /dev/sda: 107.4 GB, 107374182400 bytes, 209715200 sectors
    Units = sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    Disk label type: dos
    Disk identifier: 0x00093e4e ## 请记录分区信息
    Device Boot Start End Blocks Id System
    /dev/sda1 * 2048 62914559 31456256 83 Linux ## 切换为以 sector 作为计算单元
    Command (m for help): u
    Changing display/entry units to sectors. ## 如果显示为上述内容,则继续下一步,如果显示为:
    Command (m for help): u
    Changing display/entry units to cylinders (DEPRECATED!). ## 则继续执行 u,切换为sector。 ## 删除分区
    Command (m for help): d
    Selected partition 1
    Partition 1 is deleted ## 新建分区
    Command (m for help): n
    Partition type:
    p primary (0 primary, 0 extended, 4 free)
    e extended
    Select (default p): p
    Partition number (1-4, default 1):
    First sector (2048-209715199, default 2048):
    Using default value 2048
    Last sector, +sectors or +size{K,M,G} (2048-209715199, default 209715199):
    Using default value 209715199
    Partition 1 of type Linux and of size 100 GiB is set ## 此时修改分区结束,打印分区信息,确认信息无误
    Command (m for help): p Disk /dev/sda: 107.4 GB, 107374182400 bytes, 209715200 sectors
    Units = sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    Disk label type: dos
    Disk identifier: 0x00093e4e ## 注意,这里的 start 的值,必须和此前的分区表里的信息一致
    Device Boot Start End Blocks Id System
    /dev/sda1 2048 209715199 104856576 83 Linux ## 激活分区
    Command (m for help): a
    Selected partition 1 ## 再次打印分区,确认已激活
    Command (m for help): p Disk /dev/sda: 107.4 GB, 107374182400 bytes, 209715200 sectors
    Units = sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    Disk label type: dos
    Disk identifier: 0x00093e4e Device Boot Start End Blocks Id System
    /dev/sda1 * 2048 209715199 104856576 83 Linux ## 如果信息有误,或者不确定,请及时联系我们,如果信息确认无误,写入分区表
    Command (m for help): wr
    The partition table has been altered! Calling ioctl() to re-read partition table. WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
    The kernel still uses the old table. The new table will be used at
    the next reboot or after you run partprobe(8) or kpartx(8)
    Syncing disks.
  6. 分区表修改完毕,重启虚拟机。

    复制
    [root@resizeSDA chpaadmin]# init 6
  7. 登陆虚拟机,切换到 root 用户,检查当前根文件系统的容量。

    复制
    [root@resizeSDA chpaadmin]# df -h
    Filesystem Size Used Avail Use% Mounted on
    /dev/sda1 30G 1.1G 27G 4% /
    devtmpfs 832M 0 832M 0% /dev
    tmpfs 840M 0 840M 0% /dev/shm
    tmpfs 840M 8.3M 832M 1% /run
    tmpfs 840M 0 840M 0% /sys/fs/cgroup
    /dev/sdb1 69G 53M 66G 1% /mnt/resource
  8. 修改根文件系统的大小。

    复制
    [root@resizeSDA chpaadmin]# resize2fs /dev/sda1
    resize2fs 1.42.9 (28-Dec-2013)
    Filesystem at /dev/sda1 is mounted on /; on-line resizing required
    old_desc_blocks = 4, new_desc_blocks = 13
    The filesystem on /dev/sda1 is now 26214144 blocks long.
  9. 检查根文件系统大小。

    复制
    [root@resizeSDA chpaadmin]# df -h
    Filesystem Size Used Avail Use% Mounted on
    /dev/sda1 99G 1.1G 93G 2% /
    devtmpfs 832M 0 832M 0% /dev
    tmpfs 840M 0 840M 0% /dev/shm
    tmpfs 840M 8.3M 832M 1% /run
    tmpfs 840M 0 840M 0% /sys/fs/cgroup
    /dev/sdb1 69G 53M 66G 1% /mnt/resource
  10. 至此,根文件系统扩容完毕。立即访问http://market.azure.cn

如何在 Linux 虚拟机上扩展根文件系统的更多相关文章

  1. linux 内核移植和根文件系统的制作【转载】

    原文地址:http://www.cnblogs.com/hnrainll/archive/2011/06/09/2076214.html 1.1 Linux内核基础知识 在动手进行Linux内核移植之 ...

  2. linux 内核移植和根文件系统的制作

    1.1 Linux内核基础知识 在动手进行Linux内核移植之前,非常有必要对Linux内核进行一定的了解,下面从Linux内核的版本和分类说起. 1.1.1  Linux版本 Linux内核的版本号 ...

  3. 如何在VMware虚拟机上安装Linux操作系统(Ubuntu)

    作为初学者想变为计算机大牛非一朝一夕,但掌握基本的计算机操作和常识却也不是多么难的事情.所以作为一名工科男,为了把握住接近女神的机会,也为了避免当白痴,学会装系统吧!of course为避免把自己的电 ...

  4. Linux内核启动及根文件系统载入过程

    上接博文<u-boot之u-boot-2009.11启动过程分析> Linux内核启动及文件系统载入过程 当u-boot開始运行bootcmd命令,就进入Linux内核启动阶段.与u-bo ...

  5. 嵌入式linux内核制作、根文件系统制作

    嵌入式系统构成: 主要由bootloader.kernel.以及根文件系统三部分组成. 内核制作步骤: 制作嵌入式平台使用的linux内核制作方法与pc平台上的linux内核基本一致 1.清除原有配置 ...

  6. linux学习10 Linux目录结构和根文件系统全面讲解

    一.回顾 1.如何获取使用帮助 help,--help,man,info 官方文档,自带文档(README,CHANGELOG,INSTALL),官方文档 发行版的文档 Google Linux Ke ...

  7. linux基础知识3_根文件系统详解

    文件系统: rootfs:根文件系统 /boot:系统启动相关的文件,如内核.initrd以及grub /dev:设备文件 块设备:随机访问 字符设备:线性访问,按字符为单位 设备号:主设备号(maj ...

  8. Linux 虚拟机上安装linux系统 (ip:子网掩码,网关,dns,交换机,路由知识回顾)

    一 安装虚拟机 二 虚拟机上配置好在安装linux系统 三 知识回顾 交换机:主机在局域网内的身份是MAC地址(可以通过[交换机广播:交换机通过被动学习来建立一张“接口号”和“MAC地址”的对照表]或 ...

  9. 关于UBOOT,LINUX内核编译,根文件系统的15个小问题

    (1)内核默认运行地址和加载地址在哪里设置? 由 arch/arm/kernel/vmlinux.lds.S 生成的 arch/armkernel/vmlinux.lds决定   (2)从FLASH什 ...

随机推荐

  1. scrapy源码分析(转)

    记录一下两个讲解scrapy源码的博客: 1.http://kaito-kidd.com/2016/11/21/scrapy-code-analyze-component-initialization ...

  2. java转pdf(html转为pdf),解决中文乱码,标签不规范等问题

    第一步,下载jar包以及建对应的文件夹.注意pd4ml的jar要选择pro版本.然后建一个pd4fonts.properties 里面对应的字体. SimSun = simsun.ttf 前面为变量名 ...

  3. SpringBoot中使用Jackson导致Long型数据精度丢失问题

    数据库中有一个bigint类型数据,对应java后台类型为Long型,在某个查询页面中碰到了问题:页面上显示的数据和数据库中的数据不一致.例如数据库中存储的是:1475797674679549851, ...

  4. Java - 自定义异常(尚学堂第六章异常机制作业判断三角形)

    写一个方法void isTriangle(int a,int b,int c),判断三个参数是否能构成一个三角形, 如果不能则抛出异常IllegalArgumentException,显示异常信息 “ ...

  5. Axure原型设计介绍

    在第八周的课堂上,王文娟老师在校园系统上发布了对于自行选择的原型设计软件进行资料查找以及自学的任务.因为之前的课程学习需要,我们大概掌握了原型设计软件Axure的使用,下面是一些我们学习过程中的介绍 ...

  6. MVC引入SERVICE层 提高代码重用性 沟通CONTROL和MODEL

    MVC是web开发中常见的程序结构. 简单的mvc结构如下: view层:显示层. control层:业务层,集合了各种action. model层:模型层,一般和数据打交道.简单的sample:一个 ...

  7. MySQL prompt提示符总结

      A counter that increments for each statement you issue \D 当前日期 \d 当前数据库 \h 数据库主机 \l The current de ...

  8. ADT安装Genymotion的eclipse插件安装及错误解决办法

    接触安卓开发也有很长一段时间了,但是一直使用的真机测试程序,因为感觉android模拟器实在是太不方便,运行慢,而且经常出错.最近听人介绍说Genymotion这款Android模拟器相当不错,于是打 ...

  9. 九度oj题目1019:简单计算器

    题目1019:简单计算器 时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:6346 解决:2334 题目描述:     读入一个只包含 +, -, *, / 的非负整数计算表达式,计算该表达 ...

  10. office2007安装时显示安装程序找不到 office.zh-cn\officeLR.cab怎么办

    根本原因是和VS2008有关解决方法如下:1. 找到vs2008安装程序(光盘,镜像文件,解压文件都一样),找到WCU文件夹在他里面找到WebDesignerCore文件夹,然后打开它找到WebDes ...