Использование всего объёма flash памяти

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

В статье Установка 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
  • size - размер раздела в блоках
  • offset - смещение первого блока от начала диска, то есть нулевого сектора
  • fstype - тип файловой системы
  • [fsize bsize bps/cpg] - параметры файловой системы

Для дальнейшего понимания потребуется некоторая справка. По идеологии 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

Обсуждение

Введите ваш комментарий
If you can't read the letters on the image, download this .wav file to get them read to you.
 

  • Сохранить "Использование всего объёма flash памяти" на del.icio.us
  • Сохранить "Использование всего объёма flash памяти" на Digg
  • Сохранить "Использование всего объёма flash памяти" на Furl
  • Сохранить "Использование всего объёма flash памяти" на Reddit
  • Сохранить "Использование всего объёма flash памяти" на Ask
  • Сохранить "Использование всего объёма flash памяти" на BlinkList
  • Сохранить "Использование всего объёма flash памяти" на blogmarks
  • Сохранить "Использование всего объёма flash памяти" на Google
  • Сохранить "Использование всего объёма flash памяти" на Ma.gnolia
  • Сохранить "Использование всего объёма flash памяти" на Netscape
  • Сохранить "Использование всего объёма flash памяти" на ppnow
  • Сохранить "Использование всего объёма flash памяти" на Rojo
  • Сохранить "Использование всего объёма flash памяти" на Shadows
  • Сохранить "Использование всего объёма flash памяти" на Simpy
  • Сохранить "Использование всего объёма flash памяти" на Socializer
  • Сохранить "Использование всего объёма flash памяти" на Spurl
  • Сохранить "Использование всего объёма flash памяти" на StumbleUpon
  • Сохранить "Использование всего объёма flash памяти" на Tailrank
  • Сохранить "Использование всего объёма flash памяти" на Technorati
  • Сохранить "Использование всего объёма flash памяти" на Live Bookmarks
  • Сохранить "Использование всего объёма flash памяти" на Wists
  • Сохранить "Использование всего объёма flash памяти" на Yahoo! Myweb
  • Сохранить "Использование всего объёма flash памяти" на BobrDobr
  • Сохранить "Использование всего объёма flash памяти" на Memori
  • Сохранить "Использование всего объёма flash памяти" на Faves
  • Сохранить "Использование всего объёма flash памяти" на Favorites
  • Сохранить "Использование всего объёма flash памяти" на Facebook
  • Сохранить "Использование всего объёма flash памяти" на Newsvine
  • Сохранить "Использование всего объёма flash памяти" на Yahoo! Bookmarks
  • Сохранить "Использование всего объёма flash памяти" на Twitter
  • Сохранить "Использование всего объёма flash памяти" на myAOL
  • Сохранить "Использование всего объёма flash памяти" на Slashdot
  • Сохранить "Использование всего объёма flash памяти" на Fark
  • Сохранить "Использование всего объёма flash памяти" на RawSugar
  • Сохранить "Использование всего объёма flash памяти" на LinkaGoGo
  • Сохранить "Использование всего объёма flash памяти" на Mister Wong
  • Сохранить "Использование всего объёма flash памяти" на Wink
  • Сохранить "Использование всего объёма flash памяти" на BackFlip
  • Сохранить "Использование всего объёма flash памяти" на Diigo
  • Сохранить "Использование всего объёма flash памяти" на Segnalo
  • Сохранить "Использование всего объёма flash памяти" на Netvouz
  • Сохранить "Использование всего объёма flash памяти" на DropJack
  • Сохранить "Использование всего объёма flash памяти" на Feed Me Links
  • Сохранить "Использование всего объёма flash памяти" на funP
  • Сохранить "Использование всего объёма flash памяти" на HEMiDEMi
ispolzovanie_vsego_objoma_flash_pamjati.txt · Последние изменения: 2011/07/11 17:17 — crazydemon
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0