Мы — долго запрягаем, быстро ездим, и сильно тормозим.

FreeBSD
  настройка
  подсчёт трафика
  программы
  почтовые системы
  Шелезяки
  Мелочи
  Файловая система
  mount_nullfs
  badsect
  clri
  bsdlabel
  dump (rdump)
  dumpfs
  ffsinfo
  fsirand
  mount_nfs
  mount_smbfs
  swapon
  tunefs
  umount
  recovery files
  growfs
  Pax
  clonehdd
  Мониторинг RAID
  gstripe
  fusefs-ntfs
  UFS->ZFS
  RAID5
  freebsd lvm
  root ZFS, GPT
  FreeBSD on flash
  Восстановление ZFS
  Лечим FFS
  gmirror
  WWW
  Security
  system
  Games Servers
  X11
  Programming
Очумелые Ручки
OpenBSD
Cisco


www.lissyara.su —> статьи —> FreeBSD —> Файловая система —> growfs

Изменение размера партиции и раздела в FreeBSD.

Автор: LMik.


Возникла проблема - на большом рейд 5 массиве закончилось свободное место, забэкапить куда-либо 1.5ТБ данных не предоставилось возможности.

Внимательно посмотрев на рейд контроллер удалось установить что он умеет в рабочий массив добавлять диски :).

ftp# dmesg | grep da0
da0 at shasta0 bus 0 target 0 lun 0
da0: <Promise 7 Disk RAID5 1.10> Fixed Direct Access SCSI-2 device
da0: 1831087MB (3750067968 512 byte sectors: 255H 63S/T 233430C)

ftp# dmesg | grep shasta0
shasta0: <Promise Technology SuperTrak EX Series>
mem 0xf68ff000-0xf68fffff irq 16 at device 14.0 on pci3
shasta0: [GIANT-LOCKED]
da0 at shasta0 bus 0 target 0 lun 0

Вырубаем сервер, втыкаем дополнительный винт, включаем, понеслось,
более суток новый винт вливался в общее пространстово 5 рейда.

Для наглядности sysinstall --> fdisk смотрим:

Disk name:      da0                                    FDISK Partition Editor
DISK Geometry:  233430 cyls/255 heads/63 sectors = 3750052950 sectors (1831080MB)

Offset       Size(ST)        End     Name  PType       Desc  Subtype    Flags

         0         63         62        -     12     unused        0
        63 3125044125 3125044187    da0s1      8    freebsd      165
3125044188  625023780 3750067967        -     12     unused        0

The following commands are supported (in upper or lower case):

A = Use Entire Disk   G = set Drive Geometry   C = Create Slice   F = `DD' mode
D = Delete Slice      Z = Toggle Size Units    S = Set Bootable   | = Wizard m.
T = Change Type       U = Undo All Changes     W = Write Changes


Use F1 or ? to get more help, arrow keys to select.

Видим что у нас появилось свободное место после нашего слайса s1, копируем последний сектор(3750067967) идем дальше

Нужно отмонтировать все разделы с данного жеского диска и проверить их на ошибки fsck.

Дальше fdisk`om поправляем размер как видит его система.


ftp# fdisk -u /dev/da0
******* Working on device /dev/da0 *******
parameters extracted from in-core disklabel are:
cylinders=233430 heads=255 sectors/track=63 (16065 blks/cyl)

Figures below won't work with BIOS for partitions not in cyl 1
parameters to be used for BIOS calculations are:
cylinders=233430 heads=255 sectors/track=63 (16065 blks/cyl)

Do you want to change our idea of what BIOS thinks ? [n]
Media sector size is 512
Warning: BIOS sector numbering starts with sector 1
Information from DOS bootblock is:
The data for partition 1 is:
sysid 165 (0xa5),(FreeBSD/NetBSD/386BSD)
    start 63, size 3125044125 (1525900 Meg), flag 80 (active)
        beg: cyl 0/ head 1/ sector 1;
        end: cyl 989/ head 0/ sector 63
Do you want to change it? [n] y
Supply a decimal value for "sysid (165=FreeBSD)" [165]
Supply a decimal value for "start" [63]
Supply a decimal value for "size" [-1169923171] 3750067967
fdisk: WARNING: partition does not end on a cylinder boundary
fdisk: WARNING: this may confuse the BIOS or some operating systems
Correct this automatically? [n] y
fdisk: WARNING: adjusting size of partition to 3750052887
Explicitly specify beg/end address ? [n]
sysid 165 (0xa5),(FreeBSD/NetBSD/386BSD)
    start 63, size 3750052887 (1831080 Meg), flag 80 (active)
        beg: cyl 0/ head 1/ sector 1;
        end: cyl 981/ head 254/ sector 63
Are we happy with this entry? [n] y
The data for partition 2 is:
<UNUSED>
Do you want to change it? [n]
The data for partition 3 is:
<UNUSED>
Do you want to change it? [n]
The data for partition 4 is:
<UNUSED>
Do you want to change it? [n]
Partition 1 is marked active
Do you want to change the active partition? [n]

We haven't changed the partition table yet.  This is your last chance.
parameters extracted from in-core disklabel are:
cylinders=233430 heads=255 sectors/track=63 (16065 blks/cyl)

Figures below won't work with BIOS for partitions not in cyl 1
parameters to be used for BIOS calculations are:
cylinders=233430 heads=255 sectors/track=63 (16065 blks/cyl)

Information from DOS bootblock is:
1: sysid 165 (0xa5),(FreeBSD/NetBSD/386BSD)
    start 63, size 3750052887 (1831080 Meg), flag 80 (active)
        beg: cyl 0/ head 1/ sector 1;
        end: cyl 981/ head 254/ sector 63
2: <UNUSED>
3: <UNUSED>
4: <UNUSED>
Should we write new partition table? [n] y
fdisk: Geom not found

Смотрим что получилось

ftp# fdisk -s /dev/da0
/dev/da0: 233430 cyl 255 hd 63 sec
Part        Start        Size Type Flags
   1:          63  3750052887 0xa5 0x80

Поправляем размер партиции на наш новый "3750052887":

ftp# bsdlabel -e /dev/da0s1
# /dev/da0s1:
8 partitions:
#        size   offset    fstype   [fsize bsize bps/cpg]
  c: 3750052887        0    unused        0     0         # "raw" part, don't edit
  d: 3750052887        0    4.2BSD     2048 16384 28552

Хотя там и написано "raw" part, don't edit" надо в обеих строчках поменять размер.

ftp# growfs -y /dev/da0s1d
new file systemsize is: 937513221 frags
Warning: 81556 sector(s) cannot be allocated.
growfs: 1831040.7MB (3749971328 sectors) block size 16384, fragment size 2048
        using 9964 cylinder groups of 183.77MB, 11761 blks, 23552 inodes.
        with soft updates
super-block backups (for fsck -b #) at:
 -1170116480, -1169740128, -1169363776, 
----------------------------------------
Тут куча мусора про измененные сектора.
Ждем пока все пробежит и потом ещё достаточно долгое время в тишине,
но не паникуйте, growfs работает, просто молчит.
----------------------------------------

*Важное примечание: growfs не может работать с разделами дисков больше 2Тб.

Далее делаем нашему растянутому разделу fsck -y
и можем смело монтировать.[i]



размещено: 2008-01-04,
последнее обновление: 2008-06-10,
автор: LMik

оценить статью:

abigor, 2008-01-05 в 7:18:34

А где же в начале стать фраза что мол вы все делаете на свой страх и риск, и лучше сделать перед этим резервную копию?

KaMa-CyTpA, 2008-01-05 в 11:36:00

Да чего ты несёшь то?
Американизируй всё блин!!!
Вы вааще ребята на свой страх и риск делаете!
И компьютер включаете!
И ещё не забудь дописать с какого сайта взял.
Тут люди делом заняты а не мозго(клюйством)

barsykoff, 2008-01-09 в 17:14:31

Написано же, что невозможно сделать резерв на 1,5 Тб :)
Да и нафик оно надо - умные люди сами догадаются, что им делать

R@CCK@30B, 2008-02-11 в 16:27:03

Автор не упомянул, что RAID-массив железячный. Интересно посмотреть, как growfs работает с софтовыми райд-массивами.

LMik, 2008-02-11 в 19:06:19

Также думаю работает, growfs же уже в размеченой логически партиции работает, тут разници же нет железный он или нет.

Qtip, 2008-03-05 в 23:56:03

Сложно мля написал, надо самому тестить дабы понять, подробнее распиши.

LMik, 2008-03-06 в 7:38:04

В каком слове не понятно?

MedvedD, 2008-06-10 в 12:03:53

Сделал по этой же статье резайз слайса /usr, в однопользовательском режиме, всё получилось. единственное - на этапе bsdlabel надо подключить /tmp и /usr, после не забыть отмонтировать.

lissyara, 2010-03-22 в 15:57:07

Нормально написано.
Тока что делал на amd64 FreeBSD8 - было / и swap
бутился с LiveFS CD, снёс из сисисталла swap, переразметился, создал на остатке swap заново - полёт нормальный =)

ОЛОЛО, 2010-12-16 в 5:15:22

Тупейшая статья.
при чём тут райд и изменение размера раздела?
Нахрен нужна и что делает growfs ?

Бесмыссленный набор действий без обьяснений что и зачем делается.

Alex Keda, 2010-12-16 в 8:58:25

Очень хорошо изложено. Для понимания что делается и зачем - достаточно.
Если вам недостаточно - читайте man по используемым командам.

Алексей Бобок, 2011-03-12 в 15:49:48

2ОЛОЛО
Вы случаем не выпускник компьютерной академии "Шаг"?
Оттуда обычно выпускают людей, с подобной манерой поведения и уровнем профессионализма.

Gracer, 2011-07-28 в 3:54:27

Автору спасибо за хорошую статью, но под Vmware не прокатило. Кончилось место на почтовом серваке, забился /usr под завязку. Увеличить слайс удалось, а вот с bsdlabel -e ... облом вышел. Причем /usr был последним разделом - вообще красота. Но после редактирования размеров разделов система писала: bsdlabel: Class not found, а growfs отказалась расти, указывая, что размер раздела не изменился.
Видимо, еще какая-то хитрость нужна под виртуальные системы.

Dmitriy_K, 2011-11-14 в 3:22:20

Дополню по поводу "bsdlabel: Class not found".
Только что занимался добавлением дискового пространства в VMware. Добавлялся отдельный диск, но существо вопроса сохраняется и при попытках увеличения или добавления партиции. Трабл оказался актуальным для версий FreeBSD начиная с 8.0 (в версии 8.0 это точно есть). Объяснается это так:
http://freebsd.1045724.n5.nabble.com/GEOM-bsdlabel-regression-in-8-x-td3973903.html
This is because GEOM_BSD -> GEOM_PART_BSD change. bsdlabel(8) needs read-write access to the device. If it can't get that, it tries an alternative GEOM based method only supported by GEOM_BSD. The error message "Class not found" is printed because the "BSD" GEOM class doesn't exist. You might be able to do the changes with gpart(8).
Похоже, метки придётся назначать через gpart с опцией -l. Я пока это не пробовал, поскольку у меня было достаточно назначения по умолчанию.
Но на метках проблема не исчерпывается. Я столкнулся с тем, что в 8.0 нет нормального способа побороть ошибку "fdisk: invalid fdisk partition table found", выдаваемую fdisk (например, командой fdisk -s /dev/da1). Пока нашёлся только ненормальный. ;-(
После создания схемы диска (команда: gpart create -s bsd da1), перед тем как создавать партицию через gpart нужно выполнить команду: fdisk -I /dev/da1
Она выдаёт ошибку и ничего не меняет (не может отработать из-за ошибки "fdisk: Class not found"), но после неё ошибка fdisk пропадает и нормально отрабатывает команда: gpart add -b 34 -i 1 -t freebsd-ufs da1

Yaroslav, 2012-10-05 в 13:05:24

Чтобы удалось записать MBR, нужно изменить переменную:
# sysctl kern.geom.debugflags=16

Zezya, 2013-09-21 в 15:45:59

Спасибо за статью! Помогла оттолкнуться для решения своей задачи:
Увеличил диск на виртуалке proxmox для гостевой системы freebsd 9.1? там как водится GPT, поэтому манипуляции проводил через LIVE CD с утилитами gpart:
-recover (чтоб увиделось добавленное в секции free)
-delete (удалил SWAP, был последним мешал для расширения)
-resize (расширил последнюю, оставив место для SWAP)
-add (добавил SWAP)
ну и последний штрих growfs и  fsck. Всё работает!
И тут вопрос: Расширить можно только последний раздел?


Оставьте свой комментарий:
Ваше имя:   *
e-mail:  
жирный
наклонный
подчёркнутый
ссылка
цвет
Нынешний год:   *
 


Хостинг HOST-FOOD

2014-07-27, lissyara
gmirror

Удалённое создание софтверного зеркала средствами gmirror, на диске разбитом с использованием gpart. Использование меток дисков для монтирования разделов.
2013-08-20, zentarim
Scan+Print server FreeBSD 9

Настройка сервера печати и сервера сканирования под управлением операционной системы FreebSD 9 для МФУ Canon PIXMA MP540
2011-11-20, BlackCat
Разъём на WiFi-карту

Делаем съёмной несъёмную антену на WiFi-карте путём установки ВЧ-разъёма
2011-09-14, manefesto
Настройка git+gitosis

Настройка системы контроля версия исходного кода в связке git+gitosis+ssh
2011-08-14, zentarim
Wi-FI роутер + DHCP + DNS

Настройка Wi-Fi роутера на Freebsd 8 + DNS сервер + DHCP сервер: чтобы Wi-Fi клиенты были в одной подсети с проводными, проводные и беспроводные клиенты получали адреса автоматически по DHCP, кэширующ
2011-06-15, -ZG-
Охранная система на FreeBSD+LPT

В этой статье описана попытка реализации простой охранной системы на базе FreeBSD с подключением к ней охранных устройтсв на LPT порт и видеорегистрацией.
2011-03-13, terminus
ng_nat

Описание работы ng_nat, практическое использование, достоинства и недостатки в сравнении с ipfw nat
2011-02-20, Капитан
Nagios+Digitemp

Статья описывает создание системы оповещения о превышении температуры в специальных помещениях на основе Nagios с использованием программы Digitemp.
2011-02-17, Le1
Zyxel Configuration

Скрипт для массового изменения конфига свичей Zyxel. Берет из файла iplist список ip-шек, заходит последовательно на каждый и выполняет комманды из файла commands, записывая происходящее в лог файл.
2011-02-16, fox
hast carp zfs ucarp cluster

HAST (Highly Available Storage), CARP, UCARP, ZFS, Cluster настройка и одаптация плюс личные размышления…
2011-02-04, BlackCat
Восстановление ZFS

История о том, как был восстановлен развалившийся RAIDZ ZFS-пул (перешедший в FAULTED) с помощью скотча и подручных средств. Или о том, какие приключения ожидают тех, кто не делает резервных копий.
2011-02-03, Капитан
1-Wire

Статья описывает самостоятельное изготовление контроллера DS9097 для съёма показаний с датчиков температуры DS1820 с помощью программы Digitemp.
2011-01-28, Капитан
Температура в серверной

Статья описывает построение системы наблюдения за температурой в помещении серверной с использованием программы Digitemp и выводом графиков в MRTG
2011-01-21, m4rkell
Syslog server

Как то буквально на днях, у нас завалилось, что то в еве) или не в еве не суть. Суть в том, что когда захотели снять логи с хостов esx обнаружили, что хранят эти негодяи логии только за последнии сутк
2011-01-07, lissyara
Canon/gphotofs

Монтирование цифровых фотоаппаратов Canon (PTP) как файловой системы, автоматизация этого процесса через события devd и внешние скрипты.
2010-12-13, Al
IPSec

Описание принципов работы IPSEC и способов аутентификации.
подписка

    вверх      
Статистика сайта
Сейчас на сайте находится: 28 чел.
За последние 30 мин было: 90 человек
За сегодня было
19687 показов,
617 уникальных IP
 

  Этот информационный блок появился по той простой причине, что многие считают нормальным, брать чужую информацию не уведомляя автора (что не так страшно), и не оставляя линк на оригинал и автора — что более существенно. Я не против распространения информации — только за. Только условие простое — извольте подписывать автора, и оставлять линк на оригинальную страницу в виде прямой, активной, нескриптовой, незакрытой от индексирования, и не запрещенной для следования роботов ссылки.
  Если соизволите поставить автора в известность — то вообще почёт вам и уважение.

© lissyara 2006-10-24 08:47 MSK

Время генерации страницы 0.0445 секунд
Из них PHP: 35%; SQL: 65%; Число SQL-запросов: 77 шт.
У Вас отключено GZIP-сжатие в браузере. Размер страницы 112808