Новости
Руководства и FAQ
База знаний
Ссылки
Как здесь писать
В статье Установка FreeNAS на USB-накопитель или карту Compact Flash описывалось как записать на flash диск или flash карту дистрибутив FreeNAS. В Lunix\BSD это делается с помощью программы dd или её аналога Phydiskwrite в Windows. Такой подход к сожалению не позволяет использовать оставшееся свободное место на диске, а embedded версия FreeNAS занимает всего 71 мегабайт(версия 0.7.2.6694). В результате все оставшееся место на flash диске простаивает.
В данной статье я описал свой путь по задействованию оставшегося места на диске. В Вашем случае все цифры в вычислениях будут другими, будьте внимательны, проверяйте все перед тем как вносить их.
Данная статья переработанная версия FreeBSD: ручная разметка диска (Алексей Федорчук)©.
Для выполнения любых действий Вам требуется подключиться любым доступным способ к FreeNAS, например по ssh, c правами root.
Flash диск с установленной FreeNAS по умолчанию определяется как /dev/da0. Для определения его размера нам потребуется утилита fdisk.
Введем:
freenas:~# fdisk /dev/da0
Получим, что-то вроде:
******* Working on device /dev/da0 ******* parameters extracted from in-core disklabel are: cylinders=245 heads=64 sectors/track=32 (2048 blks/cyl) parameters to be used for BIOS calculations are: cylinders=245 heads=64 sectors/track=32 (2048 blks/cyl) Media sector size is 512 Warning: BIOS sector numbering starts with sector 1 Information from DOS bootblock is: The data for partition 1 is: <UNUSED> The data for partition 2 is: <UNUSED> The data for partition 3 is: <UNUSED> The data for partition 4 is: sysid 165 (0xa5),(FreeBSD/NetBSD/386BSD) start 0, size 50000 (24 Meg), flag 80 (active) beg: cyl 0/ head 0/ sector 1; end: cyl 1023/ head 254/ sector 63
В этом выводе утилиты fdisk вторая и третья строчки говорят о геометрии диска (количество цилиндров, головок, секторов на трек, блоков на цилиндр) записанной на нём самом. Вторая пара строк говорит о геометрии определённой BIOS. В идеале цифры должны быть равны. Если это не так, то лучше отказаться от дальнейшего прочтения этой статьи и поискать информацию по исправлению подобной проблемы иначе Вы можете потерять данные со своего flash диска.
Следующая информация говорит нам о созданных слайсах на диске, но нам это не интересно у нас он один.
Для того, чтобы убедиться, что BIOS определил верную геометрию диска, подсчитаем на калькуляторе его объем с помощью полученных данных. Умножим cylinders*heads*sectors/track - получим блоки, блок равен 512 байтам. Следовательно, умножим получившийся ответ на 512. Получим объём диска в байтах. Что бы было понятнее переведем их в Килобайты разделив на 1024 и в мегабайты повторив деление, если нужно получить Гигабайта разделите еще раз.
245 * 64 * 32 = 501760 blocks
501760 * 512 = 256 901 120 Bytes
256 901 120 / 1024 = 250 880 KiloBytes
250 880 / 1024 = 245 MegaBytes
Как видно объём моей флешки равен 245 мегабайтам, что я считаю верным.
Перед внесением изменений на диск надо размонтировать разделы этого диска. У нас он один.
freenas:~# umount /cf
Далее нам потребуется утилита bsdlabel. Запускается она так же как и предыдущая с указанием устройства.
Введем:
freenas:~# bsdlabel /dev/da0
Получим, что-то вроде:
# /dev/da0: 8 partitions: # size offset fstype [fsize bsize bps/cpg] a: 147152 16 4.2BSD 2048 16384 9200 c: 147168 0 unused 0 0 # "raw" part, don't edit bsdlabel: partition c doesn't cover the whole unit! bsdlabel: An incorrect partition c may couse problem for standard system utilities
Для дальнейшего понимания потребуется некоторая справка. По идеологии BSD на диске может быть максимум 8 разделов, но должно быть минимум два:
a - корневой раздел c - не являющийся разделом на самом деле, а описывающий весь объём диска.
Еще может быть b - раздел подкачки(swap) и 5 любых других но не swap - d, e ,f ,g ,h.
В предпоследней строке утилита предупреждает, что раздел c не занимает весь объем диска.
Помня, что блок равен 512 байтам можем посчитать, что раздел c примерно равен 85 мегабайтам.
Выше в выводе fdisk мы с вами считали объем всего диска, у меня он получился 501760 блоков. Очевидно, что размер раздела c нам следует исправить на это число. Так же нам сразу нужно посчитать геометрию нового раздела, который мы собираемся создать. Это делается просто, складываются вместе size и offset предыдущего раздела, т.е. a.
147152 + 16 = 147168 - на столько мы должны отступить от начала диска для создания нового раздела иначе новый раздел ляжет поверх корневого, в результате мы получили offset нового диска.
Для определения объёма нашего нового раздела нам нужно сложить все size и все offset предыдущих разделов и отнять от общего объёма диска, т.е. от size раздела c.
501760 - (147152 + 16) = 354592 блоков.
Для того, чтобы внести эти изменения нужно выполнить запуск утилиты bsdlabel c ключом e:
freenas:~# bsdlabel -e /dev/da0
Перед Вами откроется редактор nano с теми же строками из предыдущего вывода.
GNU nano 2.2.6 File: /tmp/EdDk.hSC0sHLyQf # /dev/da1: 8 partitions: # size offset fstype [fsize bsize bps/cpg] a: 147152 16 4.2BSD 2048 16384 9200 c: 147168 0 unused 0 0 # "raw" part, don't edit
Редактируем как простой текстовый файл. Меняем значение size раздела c на вычисленное нами ранее - 501760. Больше в этой строке ничего не трогаем.
И дописываем новую строчку в конце:
d: 354592 147168 4.2BSD
параметры файловой системы указывать не надо, они установятся в дальнейшем сами.
Нажимаем Ctrl+X для выхода, подтверждаем изменения клавишей Y и нажимаем Enter соглашаясь с именем файла. Проверяем внесены ли изменения:
freenas:~# bsdlabel /dev/da0 # /dev/da0: 8 partitions: # size offset fstype [fsize bsize bps/cpg] a: 147152 16 4.2BSD 2048 16384 9200 c: 501760 0 unused 0 0 # "raw" part, don't edit d: 354592 147168 4.2BSD freenas:~#
Проверяем, что нигде не ошиблись. Дополнительно посмотрим появилось ли новое устройство.
freenas:~# ls /dev/ | grep da
da0
da0a
da0c
da0d
Должно появиться новое устройство da0d, как у меня. Если выглядит как выше то вы создали новый раздел! Но радоваться пока рано, нам еще предстоит его отформатировать.
В качестве файловой системы я выбрал родную для FreeBSD UFS. Для форматирования нашего нового раздела вводим:
freenas:~# newfs -U /dev/da0d /dev/da0d: 173.1MB (354592 sectors) block size 16384, fragment size 2048 using 4 cylinder groups of 43.30MB, 2771 blks, 5568 inodes. super-block backups (for fsck -b #) at: 160, 88832, 177504, 266176
Всё, файловая система создана. Можно приступать к монтированию нового раздела.
Перед монтированием нового раздела надо подумать для чего он нам нужен в дальнейшем. Я использовал его для расширения возможностей embedded версии, что бы можно было устанавливать дополнения или вносить изменения как описано в статье Установка дополнений на embedded-версию.
Смонтируем ранее отключенный раздел:
freenas:~# mount /cf
Создадим каталог:
freenas:~# mkdir /mnt/opt
Смонтируем в него наш новый раздел:
freenas:~# mount /dev/da0d /mnt/opt
Поздравляю! Вы только, что задействовали всё не распределённое пространство на flash диске!
Осталось прописать сделать, чтобы раздел после перезагрузки монтировался сам. Идем в Web интерфейс.
Система » Дополнительно » Командные скрипты
Добавляем записи нажатием на плюсик:
| Команда | Тип |
|---|---|
| mkdir /mnt/opt | PostInit |
| mount /dev/da0d /mnt/opt | PostInit |
Обсуждение