近日由于虚拟机下安装软件过多,时不时弹出磁盘空间不足的问题。查找了很多资料,都没有很好的解决办法。
朋友发来一个链接,还是老外有良心。翻译出来放在这里,根据我的实际需求进行了操作,达到了预期目的。
以防万一,在操作之前将虚拟机进行了备份。
由于安装时没有自己进行分区,磁盘大小也使用了默认的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