• 设备
    • 今日
    • 0

    linux-虚拟机的硬盘扩容

    使用VMware工具扩容分配的硬盘空间
    vmware 提供一个命令行工具,在Windows下为vmware-vdiskmanager.exe 位于 vmware 的安装目录下,
    比如 C:Program FilesVMwareVMware Workstationvmware-vdiskmanager.exe.
    在Linux下有直接的vmware-vdiskmanager指令。

    进行的操作:在 windows 下运行 CMD , 转到 vmware 的安装目录,可执行vmware-vdiskmanager.exe;
    在Linux下,直接敲入vmware-vdiskmanager ,可执行该指令扩充使用的指令: vmware-vdiskmanager -x 16Gb myNewlinux.vmdk

    说明:要扩容的系统这时不能在运行 ,参数 "-x" 表示要扩展虚拟机硬盘空间,紧随其后的数字是要扩展到的大小 ,
    而非增加量 (本例为扩展到 16GB ,这是一个磁盘总量,包含了原先的磁盘容量 ) 。最后是指定要操作的虚拟机磁盘的具体文件,

    要是路径名中有空格,必须以双引号括起来。按回车键开始执行,执行完毕,退出命令提示符窗口,重启 VMware ,会发现虚拟机硬盘空间已变成 16GB 了。

    VirtualBox:用 Vbox自带的命令工具VBoxManage:
    cd d:\Program Files\Oracle\VirtualBox //进入VirtualBox安装目录
    VBoxManage modifyhd G:\Documents\VirtualBox\win2008R2\WinSer2008R2.vdi --resize 30800 // 30800M=30G
    0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%

    在VirturalBox显示最新大不了。但:


    windows操作:

    还是原来大小,进入磁盘管理-》扩展盘》确定


    Linux操作:

    用 "df -h"查看发现硬盘空间还是原先那么大。

    虽然已经扩大了磁盘,但是由于还没有经过分区,指定文件系统,所以 linux 操作系统无法识别。其实就相当于你的硬盘虽然大了,
    但是你并没有对其进行分区是一个道理。

    第二步、使用Linux下的fdisk工具进行分区

    首先,需要以root身份登录系统。

    fdisk 命令: fdisk -l : 打印当前的磁盘分区表,这时我们可以看到磁盘的总量的确增加到16GB 了,但是分区只有以前的那几个原有的分区。

    键入命令: fdisk /dev/sda   “sda 就是经过扩容的硬盘,为 SCSI 硬盘, IDE 类型硬盘对应为 hda ,是对该硬盘进行操作 ”
    键入:    m    “ 列出 fdisk 的帮助 ”
    我们在这里是要添加一个新分区,即将扩容出来的那部分做成一个新分区,这样才能被操作系统挂载识别。
    键入:     n    ” 命令 n 用于添加新分区 "
    此时, fdisk 会让你选择添加为逻辑分区呢(编号从 5 开始)还是主分区(编号 1 到 4 )。

    选择主分区吧,则键入 p ;选择逻辑分区键入 l 。
    我们选择主分区于是:
    键入:    p               " 选择创建主分区 "

    此时, fdisk 会让你选择主分区的编号,如果已经有了主分区 sda1 , sda2 ,那么编号就选3 ,即要创建的该分区为 sda3.
    键入:     3
    此时, fdisk 又会让你选择该分区的开始值这个就是分区的 Start 值( start cylinder );这里最好直接按回车,如果您输入了一个非默认的数字,可能会造成空间浪费;

    对于分区的 End 值(end cylinder),同样直接按回车。这时候会显示出你新建分区的柱面范围和空间大小。

    此时键入: w    表示" 保存所有并退出,分区划分完毕 "

    我们的新建分区/dev/sda3,却不是LVM的。所以,接下来使用fdisk将其改成LVM的。

    [root@CNGI-SIP6-BUPT ~]# fdisk /dev/sda
    Command (m for help): m

    Command (m for help): n  //创建分区
    Command action
    e   extended
    p   primary partition (1-4)
    p  //创建主分区
    Partition number (1-4): 3 //创建id号为3的分区
    First cylinder (2611-5221, default 2611): 2611 //指定开始位置
    Last cylinder or +size or +sizeM or +sizeK (2611-5221, default 5221): 5221 //结束位置

    Command (m for help): t //改变分区系统id
    Partition number (1-4): 3 //指定分区号
    Hex code (type L to list codes): 8e //指定要改成的id号,8e代表LVM。
    Command (m for help): w

    我们现在还不能用这个分区 , 因为我们没格式化。这时要重启系统就能够在 dev 下面看到 sda3 ,如果不重启不能进行下面操作。

    重启后,在此查看fdisk -l
    Device Boot      Start         End      Blocks   Id System
    /dev/sda1   *           1          13      104391   83 Linux
    /dev/sda2              14        1044     8281507+ 8e Linux LVM
    /dev/sda3            1045        2088     8385930   8e Linux LVM

    可以看到/dev/sda3已支持LVM。

    第三步、格式化该新添加的分区
    键入:
    mkfs -t ext3 /dev/sda3
    或者
    mkfs.ext3 /dev/sda3

    运行mkfs.ext3 /dev/sdb3报错“Could not stat /dev/sdb3”,但是这个分区肯定是存在的,刚刚 fdisk 加上去的,查了一下资料:

    运行
    partprobe
    再执行mkfs.ext3 /dev/sdb4 ,就可以了

    来格式化指定的分区,依次类推,现在的系统大部分都是 ext3 格式,如果你需要其它的,可以查看mkfs 的帮助。

    到此为止,我们就新建了一个分区/dev/sda3,此时我们已经可以通过挂载,来使用这个新的空间。但是对于我,这并不能满足我的需求,因为服务器的服务程序是在根目录上的,目前根目录空间已经使用完毕,所以能把新建的分区使用在更目录上,分担根目录的空间,才能解决问题。

    下面用到的理论是基于LVM的,如果不知道的话,建议稍微查些资料有助于理解。当然,一步步的跟我做,应该也没有问题。


    第四步、扩充根分区

    接着,使用vgextend 命令加到lvm组里面去,做如下操作:

    [root@CNGI-SIP6-BUPT ~]# lvs
    LV       VG         Attr   LSize Origin Snap% Move Log Copy% Convert
    lv_home VolGroup -wi-ao 3.97G

    lv_root VolGroup -wi-ao 3.91G


    [root@CNGI-SIP6-BUPT ~]# pvcreate dev/sda3   ("/dev/sda3" 通过: fdisk -l 查看具体目录)

    Physical volume "/dev/sda3" successfully created


    新建卷组  ubuntu30
    vgcreate ubuntu30 /dev/sda3
    Volume group "ubuntu30" successfully created


    合并卷组,先查看一下当前有哪些卷组
    root@bogon:/home/roger# vgscan
    Reading all physical volumes.  This may take a while...
    Found volume group "vg_jimtest" using metadata type lvm2
    Found volume group "ubuntu30" using metadata type lvm2
    这里说明当前有bogon、ubuntu30两个卷组,bogon这个卷组是当时安装系统时自动建的,ubuntu20这个就是我们刚才建的卷组,现在将这两个卷组合并
    root@bogon:/home/roger# vgmerge vg_jimtest ubuntu30
    Volume group "ubuntu30" successfully merged into "vg_jimtest"

    [root@CNGI-SIP6-BUPT ~]# vgextend vg_jimtest /dev/sda3 (其中vg_jimtest是当前需要扩充的lvm组名,可以通过pvdisplay查看,例如我的是:vg_jimtest)
    Volume group "VolGroup" successfully extended
    You have new mail in /var/spool/mail/root
    [root@CNGI-SIP6-BUPT ~]# vgdisplay
    --- Volume group ---
    VG Name               VolGroup
    System ID
    Format                lvm2
    Metadata Areas        2
    Metadata Sequence No 4
    VG Access             read/write
    VG Status             resizable
    MAX LV                0
    Cur LV                2
    Open LV               2
    Max PV                0
    Cur PV                2
    Act PV                2
    VG Size               15.84 GB
    PE Size               32.00 MB
    Total PE              507
    Alloc PE / Size       252 / 7.88 GB
    Free PE / Size       255 / 7.97 GB
    VG UUID               3vSeag-Q74D-Gn1b-OHEq-zyH1-YgSO-ThhBCp
    主要查看Free PE / Size       255 / 7.97 GB,说明我们最多可以有7.97G的扩充空间。

    给根分区增加空间(注:所增加的空间,主要查看Free PE / Size )


    [root@CNGI-SIP6-BUPT ~]#lvextend -L +7.97G /dev/mapper/vg_jimtest-lv_root /dev/sda3  ("/dev/mapper/vg_jimtest-lv_root" 通过:df -l 查询 )
    Rounding up size to full physical extent 7.97 GB
    Extending logical volume lv_home to 11.94 GB
    Logical volume lv_home successfully resized


    最重要和激动人心的时刻来了:

    [root@jimtest ~]# resize2fs -p /dev/mapper/vg_jimtest-lv_root
    resize2fs 1.41.12 (17-May-2010)
    Filesystem at /dev/mapper/vg_jimtest-lv_root is mounted on /; on-line resizing required
    old desc_blocks = 1, new_desc_blocks = 2
    Performing an on-line resize of /dev/mapper/vg_jimtest-lv_root to 7340032 (4k) blocks.
    The filesystem on /dev/mapper/vg_jimtest-lv_root is now 7340032 blocks long.


    删除分区:

    fdisk /dev/sda (/dev/sda 通过 fdisk -l查询)

    创建分区后格式化分区:

    mkfs -t ext4 /dev/sda3


    加载分区:

    cd /

    mkdir data1

    mount -t ext4 /dev/sda2 /data1


    2.永久挂载
    首先我们得到到/dev/sda2这个分区的UUID,使用以下命令:
    blkid /dev/sda2
    然后 vim /etc/fstab,加入代码
    UUID=5a7e00a2-4964-4c7e-a9d3-9e43143810cb /data1 ext4 defaults        0      2

    补充知识:
    linux主流文件系统格式:ext4
    ext4的文件系统容量达到1EB,而文件容量则达到16TB


    来自:PC 广东省广州市
    上一篇: oracle 转换字符集
    您可能还喜欢这些:

    亲,沙发正空着,还不快来抢?

    评论审核已开启:即评论经审核才能正常显示! 记住我的个人信息 回复后邮件通知我