-
Notifications
You must be signed in to change notification settings - Fork 0
/
VMRezie
229 lines (185 loc) · 10 KB
/
VMRezie
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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
#Resize VM
# D:\000.2016\WorkArea\openconnect-12.04.5-bigdata-9.2> "C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" modifyhd openconnect-12.04.5-bigdata-9.2.vdi --resize
200000
BoxManage internalcommands setvdiuuid disk2.vdi
VBoxmanage modifyhd MyLinux.vdi --resize 100000
or
BoxManage internalcommands sethduuid disk2.vdi
VBoxmanage modifyhd MyLinux.vdi --resize 100000
#Follow below steps:
https://hexeract.wordpress.com/2012/04/30/how-to-expand-the-root-filesystem-of-a-11-10-ubuntu-running-inside-vmware-player/
HOW TO EXPAND THE ROOT FILESYSTEM OF A 12.04 UBUNTU RUNNING INSIDE VMWARE PLAYER
Yesterday, I ran into the problem that I was missing enough disk space to upgrade my virtualised Ubuntu from 11.10 to 12.04. At least ‘do-release-upgrade’ told me so prior to having 100% disk full errors.
As I do not know of any magic tricks to cheat ‘do-release-upgrade’ I decided to expand the root file system.
For this article I have used a fresh installation/setup of Ubunutu 12.04 to show the steps required. Although VMWare Player recommends 20GB when installing Ubuntu 12.04, I have reduced this to 10GB. The VMWare Player version used for this demonstration was 4.0.2 build-591240.
For all following steps, Terminal (xterm) is required,
Checking the filesystem setup:
cruz@ubuntu:~$ sudo bash
[sudo] password for cruz:
root@ubuntu:~# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 9.0G 2.7G 5.9G 32% /
udev 488M 4.0K 488M 1% /dev
tmpfs 199M 800K 198M 1% /run
none 5.0M 0 5.0M 0% /run/lock
none 497M 76K 496M 1% /run/shm
root@ubuntu:~#
Checking the partition layout:
root@ubuntu:~# fdisk -l /dev/sda
Disk /dev/sda: 10.7 GB, 10737418240 bytes
255 heads, 63 sectors/track, 1305 cylinders, total 20971520 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: 0x00001dec
Device Boot Start End Blocks Id System
/dev/sda1 * 2048 18874367 9436160 83 Linux
/dev/sda2 18876414 20969471 1046529 5 Extended
/dev/sda5 18876416 20969471 1046528 82 Linux swap / Solaris
root@ubuntu:~#
Make a note of how many blocks the Linux swap is using, in this case it is 1046528. If the Linux swap had been on its own device (/dev/sdb for example) things would have been a lot easier as we would not need to worry about the swap partition at all and could just extend /dev/sda. In this example, the Linux swap is also located in /dev/sda and thus also requires relocation.
At first, shut down the Linux from within
root@ubuntu:~# shutdown -h now
Then expand the hardisk via “Virtual Machine -> Virtual Machine Settings -> Harddisk(SCSI) -> Utilities -> Expand”. For this example, the maximum disk size was set to 15GB. If this step completes successfully, start the virtual machine.
For new partitions to be created/setup up, all old partitions have to be deleted.
To be able to delete the swap partition the swap has to be turned off:
cruz@ubuntu:~$ sudo bash
[sudo] password for cruz:
root@ubuntu:~# free -m
total used free shared buffers cached
Mem: 992 924 67 0 43 426
-/+ buffers/cache: 454 537
Swap: 1021 0 1021
root@ubuntu:~# swapoff -a
root@ubuntu:~# free -m
total used free shared buffers cached
Mem: 992 924 67 0 43 426
-/+ buffers/cache: 454 537
Swap: 0 0 0
root@ubuntu:~#
The next step involves deleting both /dev/sda1 and /dev/sda2. It is very important to make a note of the start of the partition, in this example 2048!
root@ubuntu:~# fdisk /dev/sda
Command (m for help): p
Disk /dev/sda: 16.1 GB, 16106127360 bytes
255 heads, 63 sectors/track, 1958 cylinders, total 31457280 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: 0x00001dec
Device Boot Start End Blocks Id System
/dev/sda1 * 2048 18874367 9436160 83 Linux
/dev/sda2 18876414 20969471 1046529 5 Extended
/dev/sda5 18876416 20969471 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: 16.1 GB, 16106127360 bytes
255 heads, 63 sectors/track, 1958 cylinders, total 31457280 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: 0x00001dec
Device Boot Start End Blocks Id System
Command (m for help):
Do not quit fdisk just yet! New partitions have to be created.
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-31457279, default 2048):
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-31457279, default 31457279): 30410751
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):
Using default value 2
First sector (30410752-31457279, default 30410752):
Using default value 30410752
Last sector, +sectors or +size{K,M,G} (30410752-31457279, default 31457279):
Using default value 31457279
You might notice, the end of the first primary partition is not 31457279 but 30410751. This number was calculated by subtracting the amount of blocks used by the swap from the block count of the new disk (in our example: 31457279-1046528 = 30410751).
The primary partition is now correct but the swap partition is not. The type of the partition should not be “83” but “82” (marking it as a partition for the Linux swap)
Command (m for help): p
Disk /dev/sda: 16.1 GB, 16106127360 bytes
255 heads, 63 sectors/track, 1958 cylinders, total 31457280 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: 0x00001dec
Device Boot Start End Blocks Id System
/dev/sda1 2048 30410751 15204352 83 Linux
/dev/sda2 30410752 31457279 523264 83 Linux
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)
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.
root@ubuntu:~#
Reboot the virtual machine from within:
root@ubuntu:~# shutdown -r now
The swap partition will be mounted using an UUID identifier. After creating a new partition for swap the UUID will not match and upon reboot, no swap will be available. At this point two possibilites are available: Either enter the new UUID into the /etc/fstab or just “slap” the old UUID onto the new partition. I chose the latter.
For some odd/strange reason, Ubuntu actually finds the swap after reboot, although the UUID does not (yet) match. Testing this on a plain Debian system did not have the same results. My wild guess is that it did somehow find the “chunk” of swap space within the new /dev/sda1 and used that. As this could not have been used by data anyway, no damage should occur but in any case setting up swap properly is the way to go.
The awk command is to show the UUID which is used for mkswap.
The dd is just to make sure that there is no data (usable by the kernel) at the beginning of the partition.
cruz@ubuntu:~$ sudo bash
[sudo] password for cruz:
root@ubuntu:~# awk '/swap/ { print $1 }' /etc/fstab
#
UUID=8bb62351-4436-47df-92fe-af2865f03461
root@ubuntu:~# swapoff -a
root@ubuntu:~# free -m
total used free shared buffers cached
Mem: 992 695 296 0 23 325
-/+ buffers/cache: 346 645
Swap: 0 0 0
root@ubuntu:~# dd if=/dev/zero of=/dev/sda2
dd: writing to `/dev/sda2': No space left on device
1046529+0 records in
1046528+0 records out
535822336 bytes (536 MB) copied, 11.9388 s, 44.9 MB/s
root@ubuntu:~# mkswap -U 8bb62351-4436-47df-92fe-af2865f03461 /dev/sda2
Setting up swapspace version 1, size = 523260 KiB
no label, UUID=8bb62351-4436-47df-92fe-af2865f03461
root@ubuntu:~# swapon -a
root@ubuntu:~# free -m
total used free shared buffers cached
Mem: 992 693 298 0 23 325
-/+ buffers/cache: 345 646
Swap: 510 7 503
root@ubuntu:~#
The final and easiest step is to resize the filesystem :)
root@ubuntu:~# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 9.0G 2.8G 5.8G 33% /
udev 488M 4.0K 488M 1% /dev
tmpfs 199M 788K 198M 1% /run
none 5.0M 0 5.0M 0% /run/lock
none 497M 200K 496M 1% /run/shm
root@ubuntu:~# resize2fs /dev/sda1
resize2fs 1.42 (29-Nov-2011)
Filesystem at /dev/sda1 is mounted on /; on-line resizing required
old_desc_blocks = 1, new_desc_blocks = 1
Performing an on-line resize of /dev/sda1 to 3801088 (4k) blocks.
The filesystem on /dev/sda1 is now 3801088 blocks long.
root@ubuntu:~# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 15G 2.8G 11G 21% /
udev 488M 4.0K 488M 1% /dev
tmpfs 199M 788K 198M 1% /run
none 5.0M 0 5.0M 0% /run/lock
none 497M 200K 496M 1% /run/shm
root@ubuntu:~#
Happy upgrading :)