摘自 :http://cache.baiducontent.com/c?m=9f65cb4a8c8507ed4fece7631046893b4c4380146d96864968d4e414c4224615172da2fa663f4344959e2d3956b21f0baca36d2c761e26b69fca894adcbe866d72c8713b214bda074f920eafba5153c337e751fede1ff0cdf02592dec5a3af4327b944040a9781894d731fdd1efa034795b19939550807bb9d2765894e7659df7413e01ca5b5256e76c7ac8a4b4cb268832157cce96eed6205b562e24c4b7a13b74cc05c027d6eb71930ff35785fd4b14ae75b2e0063eb08a4b9b0b5ef5f8dacfd30ebedcbde79c224bd94&p=863fc64ad49c0eb419bd9b7e0e159d&newp=c33ec64ad4db11a058ee97264f4a85231610db2151d4da1067&user=baidu&fm=sc&query=centos+%D0%E9%C4%E2%BB%FA%C0%A9%C8%DD+Re%2Dreading+the+partition+table+failed+with+error+16%3A+Device+or+resource+busy%2E&qid=a5323d5b000035f6&p1=1

遇到的情况是一模一样的,留着自己看看吧!

========================================================
背景:开发服务器是虚拟机,原来只规划了2G,后来发现硬盘不够用了,需要进行扩容。
参考文章:《实战Linux下VMware虚拟机根目录空间扩充》
http://blog.sina.com.cn/s/blog_709919050100wap1.html
注:请首先阅读参考文章,本文是在其基础之上,在不同环境中进行的案例。
同时,原文有几处地方没有交代的那么清楚,初学者可能会走弯路,在这里进行了相应补充。
========================================================
看到文章说必须基于LVM,那是不是呢?命令检验一下。据说centos默认安装也是LVM的。
[sss@localhost ~]$lvdisplay
 --- Logical volume ---
  LV Path                /dev/vg_vm/lv_root
  LV Name                lv_root
  VG Name                vg_vm
  LV UUID                bWyLlY-hYra-7hPc-2eU9-tXMH-FJFa-7ZLDoF
  LV Write Access        read/write
  LV Creation host, time vm.sss, 2015-01-05 03:29:55 +0800
  LV Status              available
  # open                 1
  LV Size                6.71 GiB
  Current LE             1718
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:0
  
  --- Logical volume ---
  LV Path                /dev/vg_vm/lv_swap
  LV Name                lv_swap
  VG Name                vg_vm
  LV UUID                oLj3cQ-USD7-JIGZ-HMJz-NlmA-aQf6-lECYyC
  LV Write Access        read/write
  LV Creation host, time vm.sss, 2015-01-05 03:29:56 +0800
  LV Status              available
  # open                 1
  LV Size                816.00 MiB
  Current LE             204
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:1
[sss@localhost ~]$sudo fdisk -l
 
Disk /dev/sda: 32.2 GB, 32212254720 bytes
255 heads, 63 sectors/track, 3916 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00036057

Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          64      512000   83  Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2              64        1045     7875584   8e  Linux LVM

Disk /dev/mapper/vg_vm-lv_root: 7205 MB, 7205814272 bytes
255 heads, 63 sectors/track, 876 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

Disk /dev/mapper/vg_vm-lv_swap: 855 MB, 855638016 bytes
255 heads, 63 sectors/track, 104 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

 
然后,在windows虚拟机管理软件上,给虚拟机扩容——前提是关闭虚拟机OS。
来个30G,当然,进去之后,可以看到总容量增加了。到32G了,还是没有发现新的分区,虚拟机软件也已经提醒了。
[sss@localhost ~]$ sudo fdisk /dev/sda
 
 
 
Command (m for help): w
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 tableThe new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)
Syncing disks.

最后一步出现这样的提示。
 
但是我们发现,fdisk -l,这个分区已经出来了。
   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          64      512000   83  Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2              64        1045     7875584   8e  Linux LVM
/dev/sda3            1045        3916    23066662   83  Linux
 
当然,这时候用ls /dev是看不到sd3的。因为还没格式化。
sudo mkfs -t ext3 /dev/sda3 现在也是报错的。
Could not stat /dev/sdb3之类的。
既然上次已经提示了要reboot,那就roboot一下吧。
[sss@localhost ~]$partprobe
还是出现同样的警告。难道还是不行?
Warning: WARNING: the kernel failed to re-read the partition table on /dev/sda (Device or resource busy).  As a result, it may not reflect all of your changes until after reboot.
管他呢,执行一下格式化吧。
[sss@localhost ~]$sudo mkfs -t ext3 /dev/sda3
居然OK了!这不吓唬人吗?
[sss@localhost ~]$ ll /dev/sda3
brw-rw----. 1 root disk 8, 3 Jan  6 10:33 /dev/sda3
嘿嘿,已经有了哦
然而,看看磁盘空间呢?怎么还是这几个分区呢
[sss@localhost ~]$ df -h
Filesystem                 Size  Used Avail Use% Mounted on
/dev/mapper/vg_vm-lv_root  6.7G  6.5G   83M  99% /
tmpfs                      495M   80K  495M   1% /dev/shm
/dev/sda1                  485M  326M  134M  71% /boot
 
sudo fdisk -l也可以发现,还是只有一个LVM的分区。
   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          64      512000   83  Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2              64        1045     7875584   8e  Linux LVM
/dev/sda3            1045        3916    23066662   83  Linux
 
 
[sss@localhost ~]$ sudo lvs
  LV      VG    Attr       LSize   Pool Origin Data%  Move Log Cpy%Sync Convert
  lv_root vg_vm -wi-ao----   6.71g                                            
  lv_swap vg_vm -wi-ao---- 816.00m  
 
 
[sss@localhost ~]$ sudo pvcreate /dev/sda3
  dev_is_mpath: failed to get device for 8:3
  Physical volume "/dev/sda3" successfully created
这里有一个failed,以为出问题了呢,结果下面又success,玩我呢?不管他了。因为一查,都是这样的提示,没有问题。
 
/dev/mapper/vg_vm-lv_root  6.7G  6.5G   83M  99% /
tmpfs                      495M   80K  495M   1% /dev/shm
/dev/sda1                  485M  326M  134M  71% /boot
 
/dev/mapper/vg_vm-lv_root这个应该就是LVM的组名,这里显示的不是sda2.
来扩充这个组吧。
[sss@localhost ~]$ df -h
Filesystem                 Size  Used Avail Use% Mounted on
/dev/mapper/vg_vm-lv_root  6.7G  6.5G   83M  99% /
tmpfs                      495M   80K  495M   1% /dev/shm
/dev/sda1                  485M  326M  134M  71% /boot
[sss@localhost ~]$ sudo vgextend /dev/mapper/vg_vm-lv_root /dev/sda3
  Volume group name vg_vm/lv_root has invalid characters
[sss@localhost ~]$ sudo vgextend /dev/mapper/vg_vm /dev/sda3       
  Volume group "vg_vm" successfully extended
 
原来这个组名,是-之前的字符串——这要是没有文章看着对比分析,谁知道啊?
 
[sss@localhost ~]$ sudo vgdisplay
  --- Volume group ---
  VG Name               vg_vm
  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               29.50 GiB
  PE Size               4.00 MiB
  Total PE              7553
  Alloc PE / Size       1922 / 7.51 GiB
  Free  PE / Size       5631 / 22.00 GiB
  VG UUID               8GwL0o-DTdc-Lmkc-gCCC-RBvv-yOQp-wMgpeq
 
 
[sss@localhost ~]$ sudo lvextend -L +22G /dev/vg_vm/lv_root /dev/sda3
  Extending logical volume lv_root to 28.71 GiB
  Insufficient free space: 5632 extents needed, but only 5631 available
估计是这其中用了一部分。22G没那么准了。那么就21.0G吧
[sss@localhost ~]$ sudo lvextend -L +21.9G /dev/vg_vm/lv_root /dev/sda3
  Rounding size to boundary between physical extents: 21.90 GiB
  Extending logical volume lv_root to 28.61 GiB
  Logical volume lv_root successfully resized
 
文中所说的vim /etc/fstab这一个步骤,没太看明白。
里面的内容是否有改变?因为看到少了一个mapper
我没有管他,并没有对这个文件进行修改,然后继续往下。
 
[sss@localhost ~]$ sudo e2fsck -f /dev/vg_vm/lv_root
e2fsck 1.41.12 (17-May-2010)
/dev/vg_vm/lv_root is mounted.
e2fsck: Cannot continue, aborting.
 
不知为何报错。但是这只是一个检查命令,继续往前吧。
[sss@localhost ~]$ sudo resize2fs  /dev/vg_vm/lv_root
resize2fs 1.41.12 (17-May-2010)
Filesystem at /dev/vg_vm/lv_root is mounted on /; on-line resizing required
old desc_blocks = 1, new_desc_blocks = 2
Performing an on-line resize of /dev/vg_vm/lv_root to 7500800 (4k) blocks.
The filesystem on /dev/vg_vm/lv_root is now 7500800 blocks long.

[sss@localhost ~]$ df -h
Filesystem                 Size  Used Avail Use% Mounted on
/dev/mapper/vg_vm-lv_root   29G  6.5G   22G  24% /
tmpfs                      495M   80K  495M   1% /dev/shm
/dev/sda1                  485M  326M  134M  71% /boot

 
可以看到,这个逻辑卷已经成功的扩容,根目录又可以装更多东西了。yeah!
==========================================================================

centos 6.4 扩容的更多相关文章

  1. 【转载】CentOS LVM磁盘扩容

    转自:http://blog.sina.com.cn/s/blog_8882a6260101cpfs.html EXSI5.1主机有一个linux虚拟机,系统是centos运行httpd服务,因为是多 ...

  2. virt-manager中为centos 7.2 扩容根分区

    1. 打开virt-manager,添加一块磁盘. Add Hardware --> 选中Storage --> Manager (操作参考下图) 点击Manager之后,弹出Choose ...

  3. CentOS 磁盘在线扩容

    场景介绍: 操作系统Centos7.x 系统有一块vdisk,容量为20G,共分为3个区(swap和boot分区为标准分区xfs文件系统,根分区为LVM分区,xfs文件系统) 业务需求:在VM系统不关 ...

  4. centos虚拟机存储扩容

    在vSphere Web Client上面创建的虚拟机,用了一段时间后存储无法满足需求,需要将原来的存储300G扩容到500G 点此编辑即可修改磁盘2的储存大小,但是修改此配置后,虚拟机centos是 ...

  5. centos系统磁盘扩容

    1.查看磁盘空间大小,使用df -h 命令. 2. 增加磁盘空间,例如下图使用VM虚拟机增加的方式.物理机直接安装挂载上去. 3. 使用fdisk /dev/sda, 创建新分区. 4.重启Linux ...

  6. centos /data目录扩容

    /data盘被日志撑死了,必须扩容 有一块现成的100G的/dev/sdb盘,但是mount到了/data/test目录下,而且还有应用程序在上面进行读写操作 1.先查看哪些应用程序 在占用磁盘 #f ...

  7. Win7 + VirtualBox + CentOS(无桌面), 扩容

    http://www.2cto.com/os/201401/269730.html 对于目前的网络开发者来说,比较好的搭档就是Win7+VirtualBox+CentOS的组合,既可以发挥Linux强 ...

  8. Vmware centos 虚拟机 磁盘扩容

    一,lvm ext4 扩容 1,首先关闭虚拟机,在vSphere Client 将硬盘大小增加或者新增一块硬盘 (从原来10G增加到50G) 2,开机 此时,df -hT只显示原来的磁盘大小 使用 f ...

  9. CentOS下面磁盘扩容处理

    1. 给虚拟机增加一块硬盘: 过程不表 2. 增加了硬盘之后需要重启一下 查看磁盘 ls /dev/sd* 3. 使用  gdisk 处理磁盘 注意 这里面fdisk 貌似没法处理成 LVM 必须使用 ...

随机推荐

  1. C C语言中 *.c和*.h文件的区别!

    一个简单的问题:.c和.h文件的区别学了几个月的C语言,反而觉得越来越不懂了.同样是子程序,可以定义在.c文件中,也可以定义在.h文件中,那这两个文件到底在用法上有什么区别呢? 2楼:子程序不要定义在 ...

  2. Mockito中的@Mock和@Spy如何使用

    相同点 spy和mock生成的对象不受spring管理 不同点 1.默认行为不同 对于未指定mock的方法,spy默认会调用真实的方法,有返回值的返回真实的返回值,而mock默认不执行,有返回值的,默 ...

  3. redis集群+JedisCluster+lua脚本实现分布式锁(转)

    https://blog.csdn.net/qq_20597727/article/details/85235602 在这片文章中,使用Jedis clien进行lua脚本的相关操作,同时也使用一部分 ...

  4. 9 java 笔记

    1 所有的java对象都可以和字符串进行连接运算 2 在java中判断两个变量是否相等时:==运算符适用于基本类型的判断 3 JVM常量池保证相同的字符串直接量只有一个,不会产生多个相同的副本 4 O ...

  5. How to: Compile Linux kernel 2.6

      Compiling custom kernel has its own advantages and disadvantages. However, new Linux user / admin ...

  6. java-消息队列相关-activeMQ

    ,1,如何防止activeMQ崩溃导致消息丢失呢? 第一点,首先消息需要使用持久化消息,服务挂掉,重启服务后消息依然可以消费,不会丢失: 第二点,ActiveMQ采用主从模式搭建集群,比如搭建3台主从 ...

  7. Thinkphp清除缓存文件

    Thinkphp的缓存在开发中是非常烦人的,因为有的时候因为缓存的问题而出现的错误是非常难找的.删除缓存更是麻烦,还要去文件夹下删除.如果是linux开发服务器的话还要登陆服务器进行删除.所以这个时候 ...

  8. [易学易懂系列|rustlang语言|零基础|快速入门|(27)|实战4:从零实现BTC区块链]

    [易学易懂系列|rustlang语言|零基础|快速入门|(27)|实战4:从零实现BTC区块链] 项目实战 实战4:从零实现BTC区块链 我们今天来开发我们的BTC区块链系统. 简单来说,从数据结构的 ...

  9. JAVA NIO 文件部分

    NIO java使用NIO的目的是为了提升性能,实际上老的io程序也已经优化过了,速度也有相应的提升. NIO主要有三大核心部分:Channel(通道),Buffer(缓冲区), Selector.传 ...

  10. Cobbler——无人值守安装多种版本多种配置操作系统

    Cobbler Web 图形界面也能实现类似的导入功能,可以参见下一节举了一个Cobbler Web的用法: cobbler 添加网络同步仓库(Reposync用法)