diff --git a/pages/ExpandFreeBSDDisk.md b/pages/ExpandFreeBSDDisk.md new file mode 100644 index 0000000..355e5f6 --- /dev/null +++ b/pages/ExpandFreeBSDDisk.md @@ -0,0 +1,167 @@ +# Expanding a FreeBSD FileSystem on a VM + +If a VM is getting a bit tight for disk space, you can expand the size of a drive. This example is the more difficult one of expanding the primary drive. The example uses the instance name work0psg.com, which should be replaced by your own, of course. + +## Tell Ganeti to Grow the Disk + +First you need to make the Ganeti disk allocation larger. + +``` +gnt-instance grow-disk work0.psg.com 0 100G +``` + +grows the priimary drive by 100G. + +This allocates more disk in Ganeti and creates a larger partition. But it does not tell FreeBSD that the disk is bigger. + +Also, like many gnt-instance modify commands, it will not take effect until the next Ganeti start, not reboot within the VM, but a real Ganeti instance reboot or shutdown/start. + +## It is Best to do this in Single User + +Boot into single user + +``` +Enter full pathname of shell or RETURN for /bin/sh: +``` + +## Set-Up + +Confirm the disk is allocated as expected. Note that the new allocation will not show yet. + +``` +:/# gpart show vtbd0 +=> 34 209715133 vtbd0 GPT (200G) [CORRUPT] + 34 128 1 freebsd-boot (64K) + 162 201326464 2 freebsd-ufs (96G) + 201326626 8388540 3 freebsd-swap (4.0G) + 209715166 1 - free - (512B) +``` + +Everything says to turn swap off, but I think it is normall off in single user + +``` +:/# swapoff /dev/vtbd0p3 +swapoff: /dev/vtbd0p3: Invalid argument +``` + +## Get FreeBSD to See the New Space + +Tell gpart to find the new space + +``` +:/# gpart recover vtbd0 +vtbd0 recovered +``` + +Now we can see the new space + +``` +:/# gpart show vtbd0 +=> 34 419430333 vtbd0 GPT (200G) + 34 128 1 freebsd-boot (64K) + 162 201326464 2 freebsd-ufs (96G) + 201326626 8388540 3 freebsd-swap (4.0G) + 209715166 209715201 - free - (100G) +``` + +## Get Swap Out of the Way and Expand the Partition + +Get the swap partition out of the way + +``` +:/# gpart delete -i 3 vtbd0 +vtbd0p3 deleted + +:/# gpart show vtbd0 +=> 34 419430333 vtbd0 GPT (200G) + 34 128 1 freebsd-boot (64K) + 162 201326464 2 freebsd-ufs (96G) + 201326626 218103741 - free - (104G) +``` + +Grow the data partition, being sure to leave room for the swap partition + +``` +:/# gpart resize -i 2 -a 4k -s 196G vtbd0 +vtbd0p2 resized +``` + +See that it grew. + +``` +:/# gpart show vtbd0 +=> 34 419430333 vtbd0 GPT (200G) + 34 128 1 freebsd-boot (64K) + 162 411041790 2 freebsd-ufs (196G) + 411041952 8388415 - free - (4.0G) +``` + +## Make a Swap Partition + +Recreate a swap partiton + +``` +:/# gpart add -t freebsd-swap -a 4k vtbd0 +vtbd0p3 added +``` + +See that it is as expected + +``` +:/# gpart show vtbd0 +=> 34 419430333 vtbd0 GPT (200G) + 34 128 1 freebsd-boot (64K) + 162 411041790 2 freebsd-ufs (196G) + 411041952 8388408 3 freebsd-swap (4.0G) + 419430360 7 - free - (3.5K) +``` + +Turn swap on, but probably not needed in single user + +``` +:/# swapon /dev/vtbd0p3 +``` + +## Tell FreeBSD to Expand the FileSystem to Fill Partition + +The last move is to tell FreeBSD to detect the larger space and grow the file system to fill it + +``` +:/# growfs /dev/vtbd0p2 +It's strongly recommended to make a backup before growing the file system. +OK to grow filesystem on /dev/vtbd0p2, mounted on /, from 96GB to 196GB? [Yes/No] Yes +super-block backups (for fsck_ffs -b #) at: + 201352064, 202634560, 203917056, 205199552, 206482048, 207764544, 209047040, + 210329536, 211612032, 212894528, 214177024, 215459520, 216742016, 218024512, + 219307008, 220589504, 221872000, 223154496, 224436992, 225719488, 227001984, + 228284480, 229566976, 230849472, 232131968, 233414464, 234696960, 235979456, + 237261952, 238544448, 239826944, 241109440, 242391936, 243674432, 244956928, + 246239424, 247521920, 248804416, 250086912, 251369408, 252651904, 253934400, + 255216896, 256499392, 257781888, 259064384, 260346880, 261629376, 262911872, + 264194368, 265476864, 266759360, 268041856, 269324352, 270606848, 271889344, + 273171840, 274454336, 275736832, 277019328, 278301824, 279584320, 280866816, + 282149312, 283431808, 284714304, 285996800, 287279296, 288561792, 289844288, + 291126784, 292409280, 293691776, 294974272, 296256768, 297539264, 298821760, + 300104256, 301386752, 302669248, 303951744, 305234240, 306516736, 307799232, + 309081728, 310364224, 311646720, 312929216, 314211712, 315494208, 316776704, + 318059200, 319341696, 320624192, 321906688, 323189184, 324471680, 325754176, + 327036672, 328319168, 329601664, 330884160, 332166656, 333449152, 334731648, + 336014144, 337296640, 338579136, 339861632, 341144128, 342426624, 343709120, + 344991616, 346274112, 347556608, 348839104, 350121600, 351404096, 352686592, + 353969088, 355251584, 356534080, 357816576, 359099072, 360381568, 361664064, + 362946560, 364229056, 365511552, 366794048, 368076544, 369359040, 370641536, + 371924032, 373206528, 374489024, 375771520, 377054016, 378336512, 379619008, + 380901504, 382184000, 383466496, 384748992, 386031488, 387313984, 388596480, + 389878976, 391161472, 392443968, 393726464, 395008960, 396291456, 397573952, + 398856448, 400138944, 401421440, 402703936, 403986432, 405268928, 406551424, + 407833920, 409116416, 410398912 +``` + +And Bob's your uncle! + +``` +:/# df -h +Filesystem Size Used Avail Capacity Mounted on +/dev/vtbd0p2 190G 86G 89G 49% / +devfs 1.0K 1.0K 0B 100% /dev +``` \ No newline at end of file