Solger писал(а):Код: Выделить всё
[root@mail /etc]# bsdlabel /dev/mirror/gm0s1
# /dev/mirror/gm0s1:
8 partitions:
# size offset fstype [fsize bsize bps/cpg]
a: 10179742 4194304 4.2BSD 0 0 0
b: 4194304 0 swap
c: 976751937 0 unused 0 0 # "raw" part, don't edit
d: 102349704 14374046 4.2BSD 0 0 0
e: 348085938 116723750 4.2BSD 0 0 0
f: 204785710 464809688 4.2BSD 0 0 0
g: 307156539 669595398 4.2BSD 0 0 0
смотрим выше и видим какая партиция за кем следует на слайсе:
Код: Выделить всё
d: 102349704 14374046 --> /tmp 47GB (41GB free)
e: 348085938 116723750 --> /var 161GB (61GB free)
f: 204785710 464809688 --> /usr 95GB (20GB free)
g: 307156539 669595398 --> /home 142GB (123GB free, 7GB -used)
home начинается с 669595398 и идет за usr (204785710+464809688), на home всего используется 7GB,
которые мы, ВРЕМЕННО, можем скопировать в /usr.
скопировали - путь открыт, bsdlabel - редактируем таблицу - увеличиваем в f: size
2097152 секторов = 1GB, хотите увеличить на 10Gb -> 2097152*10=20971520
было:
f: 204785710 - размер в секторах, начинается с сектора 464809688, после увеличения на 10GB (кстати, в bsdlabel
можно при редактировании задавать размер в MB, GB:
f: 225757230 464809688
g: * *
* - означает автоматически пересчитать размер и начало партиции g:
ну или можно самому посчитать начало: 225757230+464809688=690566918, вместо размера * (все что осталось)
g: * 690566918 ...
сохранили, вышли из редактора - если все правильно, bsdlabel запишет (man bsdlabel и не забыть про kern.geom.debugflags
теперь можно посмотреть bsdlabel, затем расширить growfs /dev/mirror/gm0s1f
и заново создать FS для g: -> newfs /dev/mirror/gm0s1g
Увы, на ходу сделать не получится - single user mode или с livecd(disc0)
Другой вариант:
Код: Выделить всё
/dev/mirror/gm0s1g 142G 7.1G 123G 5% /home
/dev/mirror/gm0s1f 95G 67G 20G 77% /usr
/home - 142GB
/usr - 95
делаем rsync /usr в /home - должны получить: /home/bin /home/games /home/include /home/lib и тд...
Важное: если у Вас что-то пишется в /usr в процессе работы - остановите эти сервисы и затем rsync
перегружается в single-user mode или с livecd(disc0) и меняем в /etc/fstab точки монтирования, было:
Код: Выделить всё
/dev/mirror/gm0s1g /home
/dev/mirror/gm0s1f /usr
делаем:
Код: Выделить всё
/dev/mirror/gm0s1g /usr
/dev/mirror/gm0s1f /home
выполняем fsck_ffs -fy для всех, монтируем и грузимся в multiuser (или просто перезагружаемся после редактирования fstab)
если все Ok, то /usr теперь будет 142GB, а в /home остался старый usr - удаляем и переносим туда то что было в home
понятно?
Важное: пропустить через мозк, а не тупо копировать, чтобы не ошибиться в вычислениях size и буквах партиций.