... с расширением дисков на файловом сервере FreeBSD 9.0. Т.е. на первый взгляд никакого секаса не планировалось:
gpart resize -i номер раздела имя провайдера
growfs имя устройства
все. На второй все оказалось несколько занятней. Фрюха старая как не скажу что и обновлялась с FBSD 7.0, т.е. схема разбиения дисков - ну нифига не GPT, а BSD Slice\Partition, файловая система ессно, UFS с наворотами в виде SU+Journal. Размер 1,5 Тб и с бэкапом все не так, чтобы очень - ну, понятно чем пахнет, да?
gpart resize - ошибка. Ага. Ожидалось. Надо заресайзить слайс fdisk'ом. Уйблин... какой же он родом из 90х, а? Не, в начале 200х мы конечно всей этой арифметикой с вычислением количества секторов занимались - но блин же блин! Винты в то время были хорошо если на гиг, секторов этих - МАЛО, а сейчас 2Тб в сумме и сектора как бы не по 2К... ачешуеть. Посчитал, перепроверил, посчитал еще раз, забил - стрррашно! Отменил, повторил, проверил, забыл одну лишнюю цифру отменил еще раз, write! А вот фиг. Ну да, ну да - слайс используется.
sysctl kern.geom.debugflags=16 - дети-не-делайте-так-fdisk-write!
ОК. Reboot.
Три минуты ужаса - работает. gpart show - ага, slice расширен, unpartitioned отсутствует, зато есть свободное место внутри slice'а. Отмонтируем будущий расширяемый раздел - тот который g и /home
Запускаем bsdlabel - здравствуй, vi! Видим партицию c - whole drive DO NOT EDIT - это они зря, место явно нихрена не все, надо править. Страшна... правим.
Следом смотрим размер последнего раздела - будем увеличивать его, считаем, еще раз считаем, перепроверяем, write? Авотфиг! Нет прав доступа к разделу.
Гм. А! sysctl kern.geom.debugflags=16
Повторяем. write? Опять фиг.
Гм. Ну, reboot что ли. Single-user-mode-service-sshd-start цепляемся, bsdlabel-повторить - хрен. Нучоооазаааанааафик...
Гуглим. Думаем. Гуглим. От нефиг делать gpart resize -i 7 хренак! работает.
reboot. Три минуты ужаса, gpart show - ага. Раздел расширился.
Ну, дальше просто! growfs - авотхрен! В разделе есть живые снапшоты. snapshot list - ну, да. Есть 100 Гб в сумме почти. Ок. mount - rm -f /home/.snap/* - пять минут полет нормальный, десять минут - полет нормальный полчаса... нифига не нормальный! Смотрим - оп-па! Консолька по сети отпала. Ок, то же самое из-под screen'a - пять минут, десять минут... двад... ок! Готово!
umount - growfs - вот тебе адреса новых секторов с супеблоком, пять минут... оп-па. Ошибка. rdfs: failed negative block number. Гм. Что-то пошло не так. Выйдем и зайдем по новой - growfs... Хрен! Само по себе не пропало, чапай думу думать будем, а пока - reboot и еще раз! Не-а. Гм. Гугль не гуглится толком, проблемы с расширением аж 16Тб, какой-то патч... ладно, смотрим в исходники - ага. Ну, понятно. Под число секторов отдано длинное целое и на 2Тб переполнение, с появлением знака. Патч... не-а. Не подходит. Тут понимать что написЯно нужно, да править ручками.
Нуууу... лаааааадно. Попробуем уменьшить размер, что ли? Если ему два Тб не нравятся? А, стоп! А сколько ему понравится? 2кб блок, длинное целое... это что же - меньше 1,5 Тб? Данунах!
Э... Ну, вроде позднее про ошибки не пишут - давайте так, FreeBSD 11 Memstick на флешку, грузимся с неё и алга! Сказано - сделано, пишем, грузим, алга? growfs - success а не секас! Работает, в смысле.
fsck - Use Journal - версия журнала не соответствует, запускаем полную... стоп-стопэ!
reboot - fsck - use... Хвала Аллаху, милостивому и милосердному, хвала хвала и трижды хвала, аминь!
Да шоб я! Да еще раз!

@темы: Работа, FreeBSD