VMware下ubuntu扩展磁盘空间

近日由于虚拟机下安装软件过多,时不时弹出磁盘空间不足的问题。查找了很多资料,都没有很好的解决办法。

朋友发来一个链接,还是老外有良心。翻译出来放在这里,根据我的实际需求进行了操作,达到了预期目的。

以防万一,在操作之前将虚拟机进行了备份。

         由于安装时没有自己进行分区,磁盘大小也使用了默认的20G。后来发现果然悲剧。

使用df -h命令查看具体使用情况

[html]  view plain  copy
  1. @ubuntu:~$ df -h  
  2. Filesystem      Size  Used Avail Use% Mounted on  
  3. /dev/sda1        19G   17G 1020M  95% /  
  4. none            4.0K     0  4.0K   0% /sys/fs/cgroup  
  5. udev            745M  4.0K  745M   1% /dev  
  6. tmpfs           151M  1.3M  150M   1% /run  
  7. none            5.0M     0  5.0M   0% /run/lock  
  8. none            755M  220K  755M   1% /run/shm  
  9. none            100M   48K  100M   1% /run/user  
使用root权限 fdisk -l查看

在虚拟机的设置——>硬盘——>扩展 选项,选择需要扩展到的容量,这里我是从20G扩展到40G。

设置完成后发现依然无法使用,而是在扩展分区里。

[html]  view plain  copy
  1. Disk /dev/sda: 42.9 GB, 42949672960 bytes  
  2. 255 heads, 63 sectors/track, 5221 cylinders, total 83886080 sectors  
  3. Units = sectors of 1 * 512 = 512 bytes  
  4. Sector size (logical/physical): 512 bytes / 512 bytes  
  5. I/O size (minimum/optimal): 512 bytes / 512 bytes  
  6. Disk identifier: 0x000ea50f  
  7.   
  8.    Device Boot      Start         End      Blocks   Id  System  
  9. /dev/sda1   *        2048    39845887    19921920   83  Linux  
  10. /dev/sda2        39847934    41940991     1046529    5  Extended  
  11. /dev/sda5        39847936    41940991     1046528   82  Linux swap / Solaris  
具体思路是将分区先删除,然后再重新进行分区。注意,这里使用fdisk -l查看的信息建议记录下来,后面进行重新分区时会使用到。

使用free -m命令查看

[html]  view plain  copy
  1. bay@ubuntu:~$ free -m  
  2.              total       used       free     shared    buffers     cached  
  3. Mem:          1508       1065        443          5         74        419  
  4. -/+ buffers/cache:        572        936  
  5. Swap:         1021          0       1021  
我们可以看到交换分区的大小,先将交换分区关掉使用命令

[html]  view plain  copy
  1. root@ubuntu:# swapoff -a  
  2. root@ubuntu:# free -m  
  3.              total       used       free     shared    buffers     cached  
  4. Mem:          1508       1075        433          5         73        419  
  5. -/+ buffers/cache:        581        926  
  6. Swap:            0          0          0  
这时候可以看到swap的分区大小已经为0了。

接下来的步骤就是删除掉  /dev/sda1  和 /dev/sda2。使用fdisk /dev/sda删除分区

[html]  view plain  copy
  1. root@ubuntu:# fdisk /dev/sda  
  2.   
  3. Command (m for help): p  
  4.   
  5. Disk /dev/sda: 42.9 GB, 42949672960 bytes  
  6. 255 heads, 63 sectors/track, 5221 cylinders, total 83886080 sectors  
  7. Units = sectors of 1 * 512 = 512 bytes  
  8. Sector size (logical/physical): 512 bytes / 512 bytes  
  9. I/O size (minimum/optimal): 512 bytes / 512 bytes  
  10. Disk identifier: 0x000ea50f  
  11.   
  12.    Device Boot      Start         End      Blocks   Id  System  
  13. /dev/sda1   *        2048    39845887    19921920   83  Linux  
  14. /dev/sda2        39847934    41940991     1046529    5  Extended  
  15. /dev/sda5        39847936    41940991     1046528   82  Linux swap / Solaris  
  16.   
  17. Command (m for help): d  
  18. Partition number (1-5): 1  
  19.   
  20. Command (m for help): d  
  21. Partition number (1-5): 2  
  22.   
  23. Command (m for help): p  
  24.   
  25. Disk /dev/sda: 42.9 GB, 42949672960 bytes  
  26. 255 heads, 63 sectors/track, 5221 cylinders, total 83886080 sectors  
  27. Units = sectors of 1 * 512 = 512 bytes  
  28. Sector size (logical/physical): 512 bytes / 512 bytes  
  29. I/O size (minimum/optimal): 512 bytes / 512 bytes  
  30. Disk identifier: 0x000ea50f  
  31.   
  32.    Device Boot      Start         End      Blocks   Id  System  
删除旧的分区之后,就开始进行创建新分区了,注意这时候让之前保存的信息就派上用场了。

[html]  view plain  copy
  1. Command (m for help): n  
  2. Partition type:  
  3.    p   primary (0 primary, 0 extended, 4 free)  
  4.    e   extended  
  5. Select (default p): p  
  6. Partition number (1-4, default 1): 1  
  7. First sector (2048-83886079, default 2048):   
  8. Using default value 2048  
  9. Last sector, +sectors or +size{K,M,G} (2048-83886079, default 83886079): 82869552  
注意这是时候可能会有人疑惑,这个大小该如何设置。

这个大小是总的大小减去Swap的大小:83886080 - 1046528 = 82839552。这里的1046528 就是Swap的大小。

接着将分区的事情做完:

[html]  view plain  copy
  1. Command (m for help): n  
  2. Partition type:  
  3.    p   primary (1 primary, 0 extended, 3 free)  
  4.    e   extended  
  5. Select (default p): p  
  6. Partition number (1-4, default 2): 2  
  7. First sector (82839553-83886079, default 82839553):   
  8. Using default value 82839553  
  9. Last sector, +sectors or +size{K,M,G} (82839553-83886079, default 83886079):    
  10. Using default value 83886079  
  11.   
  12. Command (m for help): p  
  13.   
  14. Disk /dev/sda: 42.9 GB, 42949672960 bytes  
  15. 255 heads, 63 sectors/track, 5221 cylinders, total 83886080 sectors  
  16. Units = sectors of 1 * 512 = 512 bytes  
  17. Sector size (logical/physical): 512 bytes / 512 bytes  
  18. I/O size (minimum/optimal): 512 bytes / 512 bytes  
  19. Disk identifier: 0x000ea50f  
  20.   
  21.    Device Boot      Start         End      Blocks   Id  System  
  22. /dev/sda1            2048    82839552    41418752+  83  Linux  
  23. /dev/sda2        82839553    83886079      523263+  83  Linux  
这个时候分区大小是正确的了,但是ID还是同一个值。在这里我们将交换分区的ID修改为82.

[html]  view plain  copy
  1. Command (m for help): t  
  2. Partition number (1-4): 2  
  3. Hex code (type L to list codes): 82  
  4. Changed system type of partition 2 to 82 (Linux swap / Solaris)  
使用w进行保存

[html]  view plain  copy
  1. Command (m for help): w  
  2. The partition table has been altered!  
  3.   
  4. Calling ioctl() to re-read partition table.  
  5.   
  6. WARNING: Re-reading the partition table failed with error 16: Device or resource busy.  
  7. The kernel still uses the old table. The new table will be used at  
  8. the next reboot or after you run partprobe(8) or kpartx(8)  
  9. Syncing disks.  
将虚拟机进行重启。

交换分区使用UUID进行挂载。在创建新的分区之后,UUID将会不匹配,在reboot之后将没有交换分区可以使用。这里有两种方式进行处理

1)在 /etc/fstab 中使用新的UUID

2)在新的分区上使用旧的UUID。这里使用第二种方法。

查看UUID:

[html]  view plain  copy
  1. root@ubuntu:/home/bay# awk '/swap/ { print $1 }' /etc/fstab  
  2. #  
  3. UUID=990ae69c-2bbe-425f-bb8f-91200f70c9b9  
[html]  view plain  copy
  1. root@ubuntu:# swapoff -a  
  2. root@ubuntu:# free -m  
  3.              total       used       free     shared    buffers     cached  
  4. Mem:          1508       1171        337          6        191        424  
  5. -/+ buffers/cache:        555        953  
  6. Swap:            0          0          0  
  7. root@ubuntu:# dd if=/dev/zero of=/dev/sda2  
  8. dd: writing to ‘/dev/sda2’: No space left on device  
  9. 1046528+0 records in  
  10. 1046527+0 records out  
  11. 535821824 bytes (536 MB) copied, 1.89975 s, 282 MB/s  
  12. root@ubuntu:# mkswap -U 990ae69c-2bbe-425f-bb8f-91200f70c9b9 /dev/sda2  
  13. Setting up swapspace version 1, size = 523256 KiB  
  14. no label, UUID=990ae69c-2bbe-425f-bb8f-91200f70c9b9  
  15. root@ubuntu:# swapon -a  
  16. root@ubuntu:# free -m  
  17.              total       used       free     shared    buffers     cached  
  18. Mem:          1508        717        790          6          6        164  
  19. -/+ buffers/cache:        546        961  
  20. Swap:          510          0        510  
  21. root@ubuntu:# df -h  
  22. Filesystem      Size  Used Avail Use% Mounted on  
  23. /dev/sda1        19G   17G 1023M  95% /  
  24. none            4.0K     0  4.0K   0% /sys/fs/cgroup  
  25. udev            745M   12K  745M   1% /dev  
  26. tmpfs           151M  1.3M  150M   1% /run  
  27. none            5.0M     0  5.0M   0% /run/lock  
  28. none            755M  152K  755M   1% /run/shm  
  29. none            100M   48K  100M   1% /run/user  
  30. root@ubuntu:# resize2fs /dev/sda1  
  31. resize2fs 1.42.9 (4-Feb-2014)  
  32. Filesystem at /dev/sda1 is mounted on /; on-line resizing required  
  33. old_desc_blocks = 2new_desc_blocks = 3  
  34. The filesystem on /dev/sda1 is now 10354688 blocks long.  
  35.   
  36. root@ubuntu:# df -h  
  37. Filesystem      Size  Used Avail Use% Mounted on  
  38. /dev/sda1        39G   17G   21G  45% /  
  39. none            4.0K     0  4.0K   0% /sys/fs/cgroup  
  40. udev            745M   12K  745M   1% /dev  
  41. tmpfs           151M  1.3M  150M   1% /run  
  42. none            5.0M     0  5.0M   0% /run/lock  
  43. none            755M  152K  755M   1% /run/shm  
  44. none            100M   48K  100M   1% /run/user  

dd命令仅仅是保证在分区开始的地方没有数据。

原文链接:https://hexeract.wordpress.com/2012/04/30/how-to-expand-the-root-filesystem-of-a-11-10-ubuntu-running-inside-vmware-player/
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值