Преди време бях инсталирал FreeBSD на една тестова виртуална машина (Hyper-V), която в последствие се наложи да вкарам в употреба. Както се очакваше, в един момент дисковото пространство се оказа, че е малко и се наложи да увелича размера на диска. Тук ще опиша стъпките по ресайзване след като бях увеличил размера на диска в Hyper-v:
Първо се ориентираме в дяловете (партишъните) на диска:
root@freebsd:/root# gpart show da0 => 3 130023413 da0 GPT (62G) 3 130 1 freebsd-boot (65K) 133 2097152 2 freebsd-swap (1.0G) 2097285 125829115 3 freebsd-ufs (60G) 127926400 2097016 - free - (1.0G)
Тук забелязваме, че суоп дяла е преди freebsd-ufs, което за мен е много добре – няма да се налага да трия суопа и след това да го създавам наново.
Ако диска е форматиран с GPT схема на дяловете е възможно да бъде показан като “corrupted”, но не е драма – оправя се с:
root@freebsd:/root# gpart recover da0
В моят случай, а и в случаите, когато суоп дяла е преди ufs дяла изпълняваме следната команда:
root@freebsd:/root# gpart resize -i 3 -a 4k -s 60G da0
Където -i указва дяла, който ще преоразмеряваме (в моят случай 3), По избор подреждането на дяла се указва с -a (в случая 4k), а новият размер на дяла се указва с -s (в случая 60GB) и накрая е името на диска (da0).
И накрая разширяваме файловата система (в моя случай UFS) за да може да използва новия капацитет:
root@freebsd:/root# growfs /dev/gpt/rootfs
И всичко е готово.
Но ако при Вас, суоп дяла е след freebsd-ufs, преди да изпълним командата gpart resize -i 3 -a 4k -s 60G da0 трябва да минем през:
root@freebsd:/root# swapinfo root@freebsd:/root# swapoff /dev/da0p3 root@freebsd:/root# gpart delete -i 3 da0
Първата команда ще покаже къде е монтиран суоп дяла (в примера е дял 3). Следващата команда ще изключи суопа и третата команда ще изтрие суоп дяла (в случая 3). Тук много внимавайте, защото може да изтриете freebsd-ufs дяла и тогава може да Ви спаси само рестор от бекъп!
Ако след gpart delete командата, получите отговор table ‘da0’ is corrupt, изпълнете командата:
root@freebsd:/root# gpart recover da0
След gpart resize -i 3 -a 4k -s 60G da0 трябва да изпълните:
root@freebsd:/root# gpart add -t freebsd-swap -a 4k da0 root@freebsd:/root# swapon /dev/da0p3 root@freebsd:/root# gpart show da0
Първата команда възстановява суоп дяла, втората го включва, а с третата се убеждаваме, че всичко е наред.