近日由于虚拟机下安装软件过多,时不时弹出磁盘空间不足的问题。查找了很多资料,都没有很好的解决办法。
朋友发来一个链接,还是老外有良心。翻译出来放在这里,根据我的实际需求进行了操作,达到了预期目的。
以防万一,在操作之前将虚拟机进行了备份。
由于安装时没有自己进行分区,磁盘大小也使用了默认的20G。后来发现果然悲剧。
使用df -h命令查看具体使用情况
1
2
3
4
5
6
7
8
9
|
@ubuntu:~$ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 19G 17G 1020M 95% /
none 4.0K 0 4.0K 0% /sys/fs/cgroup
udev 745M 4.0K 745M 1% /dev
tmpfs 151M 1.3M 150M 1% /run
none 5.0M 0 5.0M 0% /run/lock
none 755M 220K 755M 1% /run/shm
none 100M 48K 100M 1% /run/user
|
使用root权限 fdisk -l查看
在虚拟机的设置——>硬盘——>扩展 选项,选择需要扩展到的容量,这里我是从20G扩展到40G。
设置完成后发现依然无法使用,而是在扩展分区里。
1
2
3
4
5
6
7
8
9
10
|
Disk /dev/sda: 42.9 GB, 42949672960 bytes
255 heads, 63 sectors/track, 5221 cylinders, total 83886080 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 identifier: 0x000ea50f
Device Boot Start End Blocks Id System
/dev/sda1 * 2048 39845887 19921920 83 Linux
/dev/sda2 39847934 41940991 1046529 5 Extended
/dev/sda5 39847936 41940991 1046528 82 Linux swap / Solaris
|
具体思路是将分区先删除,然后再重新进行分区。注意,这里使用fdisk -l查看的信息建议记录下来,后面进行重新分区时会使用到。
使用free -m命令查看
1
2
3
4
5
|
bay@ubuntu:~$ free -m
total used free shared buffers cached
Mem: 1508 1065 443 5 74 419
-/+ buffers/cache: 572 936
Swap: 1021 0 1021
|
我们可以看到交换分区的大小,先将交换分区关掉使用命令
1
2
3
4
5
6
|
root@ubuntu: # swapoff -a
root@ubuntu: # free -m
total used free shared buffers cached
Mem: 1508 1075 433 5 73 419
-/+ buffers/cache: 581 926
Swap: 0 0 0
|
这时候可以看到swap的分区大小已经为0了。
接下来的步骤就是删除掉 /dev/sda1 和 /dev/sda2。使用fdisk /dev/sda删除分区
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
root@ubuntu: # fdisk /dev/sda
Command (m for help): p
Disk /dev/sda: 42.9 GB, 42949672960 bytes
255 heads, 63 sectors/track, 5221 cylinders, total 83886080 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 identifier: 0x000ea50f
Device Boot Start End Blocks Id System
/dev/sda1 * 2048 39845887 19921920 83 Linux
/dev/sda2 39847934 41940991 1046529 5 Extended
/dev/sda5 39847936 41940991 1046528 82 Linux swap / Solaris
Command (m for help): d
Partition number (1-5): 1
Command (m for help): d
Partition number (1-5): 2
Command (m for help): p
Disk /dev/sda: 42.9 GB, 42949672960 bytes
255 heads, 63 sectors/track, 5221 cylinders, total 83886080 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 identifier: 0x000ea50f
Device Boot Start End Blocks Id System
|
删除旧的分区之后,就开始进行创建新分区了,注意这时候让之前保存的信息就派上用场了。
1
2
3
4
5
6
7
8
9
|
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): 1
First sector (2048-83886079, default 2048):
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-83886079, default 83886079): 82869552
|
注意这是时候可能会有人疑惑,这个大小该如何设置。
这个大小是总的大小减去Swap的大小:83886080 - 1046528 = 82839552。这里的1046528 就是Swap的大小。
接着将分区的事情做完:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
Command (m for help): n
Partition type :
p primary (1 primary, 0 extended, 3 free)
e extended
Select (default p): p
Partition number (1-4, default 2): 2
First sector (82839553-83886079, default 82839553):
Using default value 82839553
Last sector, +sectors or +size{K,M,G} (82839553-83886079, default 83886079):
Using default value 83886079
Command (m for help): p
Disk /dev/sda: 42.9 GB, 42949672960 bytes
255 heads, 63 sectors/track, 5221 cylinders, total 83886080 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 identifier: 0x000ea50f
Device Boot Start End Blocks Id System
/dev/sda1 2048 82839552 41418752+ 83 Linux
/dev/sda2 82839553 83886079 523263+ 83 Linux
|
这个时候分区大小是正确的了,但是ID还是同一个值。在这里我们将交换分区的ID修改为82.
1
2
3
4
|
Command (m for help): t
Partition number (1-4): 2
Hex code ( type L to list codes): 82
Changed system type of partition 2 to 82 (Linux swap / Solaris)
|
使用w进行保存
1
2
3
4
5
6
7
|
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 table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)
Syncing disks.
|
将虚拟机进行重启。
交换分区使用UUID进行挂载。在创建新的分区之后,UUID将会不匹配,在reboot之后将没有交换分区可以使用。这里有两种方式进行处理
1)在 /etc/fstab 中使用新的UUID
2)在新的分区上使用旧的UUID。这里使用第二种方法。
查看UUID:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
|
root@ubuntu:/home/bay # awk '/swap/ { print $1 }' /etc/fstab
#
UUID=990ae69c-2bbe-425f-bb8f-91200f70c9b9
[html] view plain copy
root@ubuntu: # swapoff -a
root@ubuntu: # free -m
total used free shared buffers cached
Mem: 1508 1171 337 6 191 424
-/+ buffers/cache: 555 953
Swap: 0 0 0
root@ubuntu: # dd if=/dev/zero of=/dev/sda2
dd: writing to ‘/dev/sda2': No space left on device
1046528+0 records in
1046527+0 records out
535821824 bytes (536 MB) copied, 1.89975 s, 282 MB/s
root@ubuntu: # mkswap -U 990ae69c-2bbe-425f-bb8f-91200f70c9b9 /dev/sda2
Setting up swapspace version 1, size = 523256 KiB
no label, UUID=990ae69c-2bbe-425f-bb8f-91200f70c9b9
root@ubuntu: # swapon -a
root@ubuntu: # free -m
total used free shared buffers cached
Mem: 1508 717 790 6 6 164
-/+ buffers/cache: 546 961
Swap: 510 0 510
root@ubuntu: # df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 19G 17G 1023M 95% /
none 4.0K 0 4.0K 0% /sys/fs/cgroup
udev 745M 12K 745M 1% /dev
tmpfs 151M 1.3M 150M 1% /run
none 5.0M 0 5.0M 0% /run/lock
none 755M 152K 755M 1% /run/shm
none 100M 48K 100M 1% /run/user
root@ubuntu: # resize2fs /dev/sda1
resize2fs 1.42.9 (4 -Feb -2014)
Filesystem at /dev/sda1 is mounted on /; on -line resizing required
old_desc_blocks = 2, new_desc_blocks = 3
The filesystem on /dev/sda1 is now 10354688 blocks long.
root@ubuntu: # df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 39G 17G 21G 45% /
none 4.0K 0 4.0K 0% /sys/fs/cgroup
udev 745M 12K 745M 1% /dev
tmpfs 151M 1.3M 150M 1% /run
none 5.0M 0 5.0M 0% /run/lock
none 755M 152K 755M 1% /run/shm
none 100M 48K 100M 1% /run/user
|
dd命令仅仅是保证在分区开始的地方没有数据。
以上所述是小编给大家介绍的VMware下ubuntu扩展磁盘空间的方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对服务器之家网站的支持!
原文链接:http://blog.csdn.net/quietly_water/article/details/58592229