Freebsd увеличение размера диска
Была поставлена задача: сделать backup-сервер. Правда, денег выдилили не очень много, поэтому сколько дали на столько и собрали. «Железной» базой послужил SATA RAID от Areca ARC1220 на 8 портов, «софтовой» — FreeBSD. Возникло несколько вопросов: какую выбрать разметку дисков/файловую систему и что надо будет сделать, когда закончится место?
На первый вопрос особых вариантов не было: MBR не может адресовать более 2 ТиБ, а массив уже был больше этого. ZFS потому, что хотелось поиметь все прелести данной ФС. Потому остановился на схеме GPT+ZFS (в силу ряда причин ZFS + raw disk не рассматривался). Но суть топика о другом.
CLI> set password=0000
GuiErrMsg: Success.
CLI> vsf modify vol=1 capacity=2
GuiErrMsg: Success.
10. Устанавливаем sysutils/gdisk
На amd64 правим Makefile. Порт помечен как работающий только на i386 — это не так.
Partition table scan:
MBR: protective
BSD: not present
APM: not present
GPT: present
Found valid GPT with protective MBR; using GPT.
Command (? for help): v
Problem: The secondary header's self-pointer indicates that it doesn't reside
at the end of the disk. If you've added a disk to a RAID array, use the 'e'
option on the experts' menu to adjust the secondary header's and partition
table's locations.
Identified 1 problems!
Command (? for help): x
Expert command (? for help): e
Relocating backup data structures to the end of the disk
Expert command (? for help): w
Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING
PARTITIONS!!
Do you want to proceed, possibly destroying your data? (Y/N): y
OK; writing new GUID partition table (GPT).
Warning: The kernel may continue to use old or deleted partitions.
You should reboot or remove the drive.
The operation has completed successfully.
Получилось!
P.S. Ну и в конце, как обычно в подобных HOWTO:… вы всё делаете на свой страх и риск.
Что побудило написать шпаргалку. Живут у меня на виртуалке несколько машин. Когда-то были нарезаны диски, а время идёт и под файлы требуется всё больше, больше, БОЛЬШЕ и БОЛЬШЕ. И уже не в первый раз приходится увеличивать размер раздела и файловой системы.
Итак, задача. На витруальной машине потребовалось увеличить размер раздела с файловой системой UFS. Рассматриваемый случай простой - под файловую систему отдан весь виртуальный диск. Целиком. Да и к тому же, не системный.
ЗДЕСЬ НАМЕРЕННО НИ СЛОВА НЕ СКАЗАНО О РЕЗЕРВНЫХ КОПИЯХ. ПОТЕРИ ДАННЫХ НЕ ИСКЛЮЧЕНЫ И ВЫ ОБЯЗАНЫ САМОСТОЯТЕЛЬНО ОБДУМАТЬ ЭТОТ ВОПРОС НА СЛУЧАЙ, ЕСЛИ ЧТО-ТО ПОЙДЁТ НЕ ТАК.
Напоследок
Несмотря на многократное успешное и беспроблемное использование данного метода лично я не могу гарантировать, что в каждом конкретном всё пройдёт гладко. Имейте под руками актуальную резервную копию данных раздела перед выполнением подобных работ. Удачи!
Если в логе постоянно сыпятся ошибки "filesystem full" - это означает, что закончилось место на вашем разделе файловой системы. Вариантов для решения проблемы всего два: удалить ненужные файлы, освободив таким образом место, или расширить дисковое пространство.
В случае расширения диска сперва понадобится увеличить размер вашего HDD в виртуальной среде, RAID-массиве или на системе хранения данных, смотря, что вы используете. Далее действуем следующим образом:
1. Загружаемся в режиме "Single User" (выбор №2 в загрузочном меню).
2. Командой "ls /dev" проверяем, как называется у нас жёсткий диск.
3. Далее смотрим сколько занимают текущие данные на диске "da0" и сколько свободного места не разбито: "gpart show da0".
4. Добавляем всё свободное пространство в активный геом "freebsd": "gpart resize -i 1 da0" и затем сохраняем изменения: "gpart commit da0s1".
5. Выполним "gpart show da0" и увидим, что теперь свободное пространство отсутствует, а наш активный геом увеличился в размере.
6. Командой "gpart show da0s1" отображаем состав геома "freebsd". Видим, что в нашем примере он состоит из двух разделов: основного и свопа.
Чтобы увеличить основой раздел "freebsd-ufs", необходимо удалить сначала своп. Затем его нужно будет пересоздать заново.
7. Удаляем второй раздел геома, являющийся свопом: "gpart delete -i 2 da0s1".
8. Расширяем основной раздел: "gpart resize -i 1 -a 4k -s 14G da0s1", указывая какого размера он должен стать.
9. Теперь остаётся только создать своп на оставшемся свободном месте: "gpart add -t freebsd-swap -a 4k da0s1".
10. Заключительный штрих - расширяем файловую систему на основном разделе командой: "growfs /dev/da0s1a".
После выполненных шагов перезагружаемся в обычном режиме.
Данная инструкция создавалась по файловой системе UFS. Что касается ZFS, то последовательность действий примерно такая же:
1. Загружаемся в режиме "Single User" и выполняем "ls /dev", чтобы узнать имена дисков и разделов.
2. Просматриваем количество доступного места: "gpart show da0". В этом случае расширяемый раздел является последним, поэтому при добавлении свободного места не требуется лишних манипуляций со свопом.
3. Расширяем геом "freebsd-zfs": "gpart resize -i 3 da0". Проверяем, добавилось ли место: "gpart show da0".
4. Командой "zpool list" просматриваем, какие пулы существуют в системе и какого они размера.
5. Расширяем необходимый пул: "zpool online -e zroot da0p3". Затем проверяем, корректно ли увеличился размер пула: "zpool list".
Данный факт, казалось бы, был всего нюансом (т.к. это был VPS сервер на выделенной машине VMWare ESXi).
Увеличить "физически" жесткий диск на виртуальной машине, как все понимают не предоставило проблем.
Но я и подумать не мог, что столкнусь с трудностями переопределения разметки тома файловой системы FreeBSD (UFS).
Как оказалось, Acronis - не умеет работать с этим типом файловой системы. И его дург Gparted (который можно скачать в LiveCD) тоже отказался понимать его (хотя должен, судя по списку поддерживаемых файловых систем).
Почему Gparted не понравился мой HDD, я разбираться не стал и сразу начал крутить маны по самой FreeBSD, результат приведен ниже.
Советую сразу перезагрузить систему в однопользовательском режиме (Single user), однако некоторые комманды становятся доступными если установить флаг:
Изменить разметку разделов
После изменения разметки диска, нам нужно изменить разметку разделов, тут приходит на помощь утилита gpart.
В приведенном выше листинге, я удалил раздел подкачки и растянул основной раздел на все свободное место.
Содержание
Изменить разметку диска
И так, если был изменен HDD (например в виртуальной машине или добавлен HDD в раид массив), то необходимо обновить структуру конца диска, делается это утилитой gdisk:
В приведенном выше листинге выполняются следующие команды:
Комментарии (6)
Спасибо!
Готовлюсь к похожей операции.
Только один вопрос - а удаленный радел подкачки восстанавливать не надо?
Раздел подкачки - на ваше усмотрение. Создавайте если памяти мало (я в любом случае создаю).
Но данные из раздела подкачки - восстанавливать не надо.
Олег, добрый день. А как можно уменьшит диск?
забыл swapoff -a указать еще
стоит FreeBSD на Hyper-V, расширил диск с 30 до 100, но фряха видит прежний размер
ни как не могу увеличить. Подскажите как пожалуйста.
На одной из виртуальных машин, где крутился Linux (Centos), необходимо было увеличть объем диска. Читаем дальше, как я это делал.
Вначале смотрим объем, который уже есть:
Итак, на машине в разделе / 12 Гбайт. В свойствах виртуальной машины увеличиваем объем жесткого диска до 30 Гб. Смотрим, где прибавилось:
fdisk -l
Disk /dev/sda: 32.2 GB, 32212254720 bytes
255 heads, 63 sectors/track, 3916 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0003e6f5Device Boot Start End Blocks Id System
/dev/sda1 * 1 64 512000 83 Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2 64 2089 16264192 8e Linux LVMDisk /dev/mapper/vg_webconf-lv_root: 12.4 GB, 12423528448 bytes
255 heads, 63 sectors/track, 1510 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000Disk /dev/mapper/vg_webconf-lv_swap: 4227 MB, 4227858432 bytes
255 heads, 63 sectors/track, 514 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
/sbin/fdisk /dev/sda
WARNING: DOS-compatible mode is deprecated. It’s strongly recommended to
switch off the mode (command ‘c’) and change display units to
sectors (command ‘u’).
Смотрим, какие разделы есть на диске
Command (m for help): p
Disk /dev/sda: 32.2 GB, 32212254720 bytes
255 heads, 63 sectors/track, 3916 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0003e6f5Device Boot Start End Blocks Id System
/dev/sda1 * 1 64 512000 83 Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2 64 2089 16264192 8e Linux LVM
Нам нужна вторая партиция, ее надо расширить. Сначало удаляем ее:
Command (m for help): d
Partition number (1-4): 2
Потом создадим новую:
Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 2
First cylinder (64-3916, default 64): Оставляем по умолчанию, жмем клавишу Enter
Using default value 64
Last cylinder, +cylinders or +size (64-3916, default 3916): Оставляем по умолчанию, жмем клавишу Enter
Using default value 3916
Меняем тип файловой системы на LVM:
Command (m for help): t
Partition number (1-4): 2
Hex code (type L to list codes): 8e
Changed system type of partition 2 to 8e (Linux LVM)
Записываем таблицу разделов на диск:
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.
Для применения настроек перезагружаемся:
reboot
Проверим статус группы томов командой vgdisplay:
Что бы расширить том до максимума воспользуемся командой:
Еще раз проверим статус группы томов командой vgdisplay:
Видим, что появилось свободное пространство на томе. Следующей командой увеличиваем размер логического тома на все доступное дисковое пространство:
Еще раз проверим статус группы томов командой vgdisplay:
Как видим, группе было выделено все доступное дисковое пространство, но операционная система по-прежнему отображает только старые значения размера файловой системы. Для того чтобы мы могли полностью использовать новое дисковое пространство, нам необходимо изменить размер смонтированной корневой файловой системы на величину размера первого логического тома:
Изменить размер файловой системы
После изменения разметки разделов, необходимо изменить размер файловой системы, утилита growfs.
И в заключение - обязательно проверьте диск на ошибки:
Удачной Вам работы с дисками! И не забывайте главное правило - ЗАБЭКАПЬСЯ!
Источник : Google , Uni x -форумы и отдельно хочется отметить "Моя дикая страничка"
Ресайз диска
Для увеличения размера диска машину придётся остановить, отключить диск от машины и изменить размер диска средствами виртуализатора. Затем подключаем диск обратно к машине и запускаем её штатными средствами. Если придётся работать с системным диском, то можно загрузить машину с образа и выполнить следующие операции непосредственно из окна/консоли этой самой машины. По большому счёту, не имеет значения, к какой именно машине подключен диск на время внесения правок. Можно и системный диск подключить к другой (технологической) машине. Вариантов - есть, если поискать.
Ресайз раздела
Наш диск /dev/ada1. Останавливаем демоны, использующие данную ФС, отмонтируем, если она смонтирована. Как вариант, можно перейти в однопользовательский режим (добро пожаловать в нативную консоль) и отмонтировать ФС.
В общем, после освобождения (размонтирования) ФС уже можно с ней работать. Для начала смотрим, что имеем:
Так, ещё раз, по другому, поконкретнее:
Старый размер диска 30 гигабайт (уж, поверьте), новый - 68 гигабайт. И статус - повреждено. Последнее - нормально и лечится так:
Что видим - в конце диска появлось 38 гигабайт свободного места.
Ещё раз, подробно:
Что, собственно, изменилось? А изменился физический размер диска. Соответственно, изменился и номер последнего сектора. Теперь GPT в курсе этих изменений. Потому и "появилось" свободное место.
Из этих данных нам для следующего шага потребуется ещё индекс изменяемого раздела. В данном случае это 1.
Маленький нюанс - наша система FreeBSD версии 10.1. В последних версиях реализован ресайз разделов GPT простыми средствами. Раньше было всё плохо. Итак, даём команду изменить размер первого раздела. При отсутствии аргумента -s под раздел будет использовано всё доступное пространство. Поехали:
Смотрим, что получилось:
Ресайз файловой системы
Переходим к последней части. Что имеем (в человекопонятном виде):
Файловая система имеет размер 29 гигабайт (некоторая часть от старых 30GB приныкана под служебные нужды).
Теперь увеличим размер ФС (тут можно было добавить ключик -y, но так показательнее):
Задача решена, имеем ФС размером 66 гигабайт (не забываем про нычку). Монтируем нашу ФС на место. Или, если была загрузка с внешнего носителя, перезагружаем машину.
Читайте также: