Мы — долго запрягаем, быстро ездим, и сильно тормозим.
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
www.lissyara.su
—> статьи
—> FreeBSD
|
|
1.2. Удаляем раздел[ы]:
|
1.3. Уничтожаем существующую таблицу разделов (в данном случае - MBR):
|
1.4. Создаём таблицу GPT:
|
1.5. Создаём разделы. Создаваемый раздел характеризуется тремя параметрами: смещение начального блока LBA, размер и тип. Доступный для использования блок LBA можно определить по выводу команды gpart show ad4. В первом столбце строки с записью "- free -" выводится номер блока, с которого начинается неиспользуемое пространство.
Для упрощения манипулирования разделами стоит присваивать GPT разделам метки. Например, если в дальнейшем будет необходимость создавать RAID-массивы средствами ZFS (RAIDZ).
Так же обращаю внимание, что с появлением новых жёстких дисков, имеющих размер кластера 4кБ необходимо следить, чтобы начальный и конечный сектора (блоки) были выравнены по 4кБ. При этом не стоит забывать, что для внешних (относительно жёсткого диска) систем контроллер последнего эмулирует размер сектора всё таким же 512 байтным. В случае не выравненности разделов возникает проблема сильного снижения скорости передачи данных с активным использованием жёсткого диска в процессе работы.
1.5.а. Создаём раздел для загрузчика. Тут есть несколько тонкостей.
Первое: размер раздела для загрузчика не должен быть больше 545 кБ, иначе при загрузке появится сообщение "Boot loader too large" и загрузка остановится.
Второе: по умолчанию началом первого раздела за GPT является 34 блок, но если в качестве целевого жёсткого диска будет использоваться жёсткий диск с 4кБ секторами, то в качестве первого блока для раздела freebsd-boot необходимо использовать не 34, а 40 блок (т.е. сделать необходимое выравнивание).
Необходимо сделать выравнивание начала раздела, чтобы было кратно 4кБ. Контроллер жёсткого диска для системы всё равно представляется "винтом" с 512 кБайтным блоком, и сам осуществляет трансляцию 4кБ <-> 512Б. Поэтому, например, по умолчанию, за GPT начинается раздел с 34 блока, т.е. с 17 кБайта (напомню, что блок для системы выглядит всё равно как 512 б), а кратным 4кБ будет 40 блок или 20-й кБайт.
В приницпе, для UFS такого выравнивания было бы достаточно (у неё фиксированный разбмер собственного блока, равный 16кБ), а вот с ZFS, имеющей переменный (не фиксированный) размер блока - несколько сложнее. Поэтому ей лучше, чтобы жёсткий диск представлялся реальными (в данном случае - 4кБ) блоками, а ведь современные HDD с 4кБ блоками для системы представляются всё так же с 512Б блоками - трансляция осуществляется контроллером "винта".
Для такой обратной трансляции используется специальный GEOM класс NOP, управляемый через утилиту gnop. Вот как это сделано у levsha: в /etc/rc.d/ создаётся скрипт gnop:
|
Данному скрипту даются соответствующие права:
|
Для использования этого скрипта используется /etc/rc.conf:
|
Этот "велосипед" требуется для того, чтобы ZFS вся система (ОС и компьютер) работала оптимально: у ZFS размер собственного блока не фиксирован и ориентируется на размер блока "винта", т.е. в любом случае на 512 байт (т.к. "винт" всегда это рапортует).
Между тем попалась информация, что в Windows 7 сделано выравнивание первого раздела в 2048 блоков, т.е. в 1МБ. Но сам это не проверял: нету у меня Вантуза. :)
Загрузочный раздел начинается по смещению 34 блока от начала диска - сразу после таблицы GPT. Его размер задаём в 256 блоков, это составляет 128кБайт (). В принципе для моих целей достаточно и 32кБайт, но я сделал с запасом. Тип раздела "freebsd-boot" означает, что этот раздел выделен специально под загрузчик FreeBSD:
|
Параметр -b указывает смещение начального блока создаваемого раздела, а -s - его размер (дополнения к цифрам k, m, g означают, что размер задан не в блоках, а в кило-, мега-, гигабайтах). Уже начиная с версии 8.0-BETA1 в параметрах утилиты gpart можно опускать эти параметры, а так же использовать суффиксы для указания размера создаваемого раздела.
По-умолчанию, смещение начального блока берётся минимальным возможным. И если в случае жёсткого диска с 512 Б секторами в этом случае можно не указывать «-b 34», то в случае 4кБ секторов необходимо указать в обязательном порядке «-b 40». При создании остальных разделов тоже надо помнить о выравнивании. Здесь же в дальнейшем будет всё приводиться для обычных (пока ещё) жёстких дисков с 512Б секторами.
Размер, если не указан - всё оставшееся свободное пространство. Например, та же команда для создания загрузочного раздела выглядела бы вот так:
|
Где «boot0» - фиксированная «метка» GPT-раздела, по которой он так же будет доступен, как и по обычному идентификатору (в моём случае /dev/ipsd0p1). Такая же метка может быть дана любым другим разделам. Доступен данный идентификатор будет после перезагрузки в каталоге /dev/gpt:
|
1.5.б. Создаём раздел для swap-а.
Можно создать swap и на ZFS, но тогда не будет возможности записи дампа ядра при kernel panic. Размер раздела будет 4 ГБ, в блоках это = 1024*1024*2*4 (в 1кБ два блока). Тип раздела — freebsd-swap:
|
1.5.в. Создаём раздел для ZFS пула, отведя ему остатки. Тип раздела — freebsd-zfs. Начало и конец раздела можно не указывать, если под него выделяется всё оставшееся место на жёстких дисках, как в моём случае.
|
Итоговая таблица GPT будет такой:
|
Можно вывести и по указанным идентификаторам:
|
Недавно в утилиту gpart была добавлена новая функциональность: возможность резервного копирования и восстановления таблицы разделов: gpart backup/restore.
2. Создание файловых систем
Сразу отмечу, что «файловой системой» и «dataset-ом» в контексте ZFS в разных источниках называют одно и тоже.
2.1. Для работы с разделами с ZFS необходимо подгрузить соответствующие модули ядра.
|
Каталог /mnt2/ является симлинком на /dist/, поэтому здесь и далее вместо /mnt2/ можно напрямую указывать /dist/.
2.2. Созданные на этапе "Разметка диска" разделы для системы представляются следующим образом:
|
Третий раздел - созданный нами freebsd-zfs. На нём и создадим пул командой zpool:
|
Если понадобится создавать пул на "зеркале", то это можно сделать либо сразу объединив диски/разделы (три варианта):
|
либо создав как обычно, на одном диске/разделе, и потом присоединив второй (три соответствующих варианта):
|
После создания пула его корень будет смонтирован в /mnt. Осталось указать, что этот пул будет загрузочным (через свойство bootfs):
|
Если ранее на этом разделе был ZFS-пул (назовём его oldzpool) и его надо пересоздать, то предварительно удалим. Если пул был root-овым, то простой импорт
|
или принудительный
|
приведёт к «поломке» загруженной системы. В этом случае на ввод любой команды выведется следующее (в общем виде):
|
Поэтому "старые" пулы необходимо монтировать принудительно в отдельную директорию, например, в /mnt_old/:
|
Стоит уточнить, что надо обязательно указывать для монтирования каталог, причём отличный от того, куда смонтирован активный пул (если он есть).
Остаётся удалить пул:
|
Определённые в пуле файловые системы будут так же утеряны (удалены).
Дальнейшие действия по созданию файловый систем производятся командой zfs.
2.3. Укажем алгоритм подсчёта контрольных сумм:
|
В ZFS поддерживается три алгоритма для подсчёта контрольных сумм: fletcher2, fletcher4, sha256.
2.4. Теперь можно создать дополнительные разделы. Предварительно я устанавливаю свойство atime=off для корневой системы, чтобы оно унаследовалось всеми вновь создаваемыми файловыми системами:
|
Для информации:
a) сжатие может быть установлено в состояние on, off, lzjb, gzip, gzip-N (где N представляет целое от 1 (быстрое сжатие) до 9 (лучшее сжатие, по умолчанию gzip значит gzip-6);
b) сжатие вызывает некоторую задержку при доступе к файлам (как при записи, так и при чтении), поэтому режим сжатия рекомендуется использовать для файловых систем нечастого использования.
Если swap создавать не в виде отдельного GPT-раздела, а внутри ZFS пула: то сделать это можно таким образом:
|
При этом стоит не забывать, что при этом не будет возможности получить crash dump ядра в случае необходимости.
Посмотрим результат (мы не делали swap на ZFS):
|
Для чего создано так много отдельных файловых систем:
- различные свойства для файловых систем, например, компрессия для /usr/src, /usr/ports и /var/crash;
- большая гибкость при планировании резервного копирования, например, для /var/db, /usr/home и /usr/local можно создавать снэпшоты по отдельному расписанию;
иногда возникает необходимость смонтировать /usr/obj в другое место (например, в chroot другой системы).
Для просмотра свойств созданных файловых систем можно воспользоваться командой:
|
А если необходимо глянуть все свойства, в том числе и наследуемые:
|
Свойства dataset-а (например, compression), наследуются вложенными dataset-ами.
Свойства можно посмотреть и по другому:
|
3. Установка системы
3.1. Устанавливаем защитный Protected MBR (pmbr) от программ, не знающих GPT, и GPART загрузчик gptzfsboot:
|
3.2. Установим систему в созданный пул systor:
|
ВАЖНО ДЛЯ i386 СБОРКИ: В этой версии FreeBSD в строке цикла for не надо указывать lib32. Так же было зачемено, что почему-то при отработке ./install.sh на ports система замирает секунд на 15 (хотя по "Num lock", например, реагирует) и вываливается с трапом. Поэтому при установке i386 версии системы лучше не указывать ports для установки: потом легко можно поставить с того же диска или через portsnap, например.
3.3. Для датасета systor/var/empty установим режим "только чтение":
|
3.4. Переключимся в режим (chroot) для ZFS-пула /systor:
|
3.5. Создадим /etc/rc.conf:
|
В данном примере re0, re1 — сетевые интерфейсы в новой системе.
3.6. Создадим /boot/loader.conf:
|
3.7. Установим системный загрузчик с поддержкой ZFS.
"В состав базовой системы добавлен zfsloader, который позволяет загружать систему с ZFS-разделов (для использования загрузчика zfsloader необходимо установить загрузочный код zfsboot или gptzfsboot);" (выдержка из описания к 8.1-RELEASE). Т.е. загрузчик в комплекте 8.1-RELEASE уже поддерживает ZFS в полном объёме.
В для более старых версий системы необходимо скомпилировать загрузчик с поддержкой ZFS:
|
3.8. Зададим пароль root-а:
|
3.9. Установим локальную временную зону:
|
3.10. Создадим бинарную базу почтовых алиасов /etc/mail/aliases.db:
|
3.11. Создадим для новых пользователей профиль "по умолчанию":
|
3.12. Выйдем из режима chroot:
|
3.13. Создадим zpool.cache, в котором содержится информация о созданном пуле ZFS. Он нужен для того, чтобы свежеустановленная система сразу нашла ZFS пул без предварительного его импорта командой zpool import:
|
4. Завершение установки
4.1. Создадим файл /etc/fstab:
|
Для подключения swap-партиции можно воспользоваться прямым указанием номера партиции на устройстве:
|
А можно воспользоваться возможностями GPT:
|
Т.е. можно воспользоваться созданной ранее GPT-меткой:
|
Или же воспользоваться GPT-идентификатором, что позволит в дальнейшем забыть о необходимости редактирования /etc/fstab при изменении именования диска (при подключении "винчестера" к другому SAS/SCSI/SATA/PATA-порту или при использовании, например, экспериментального AHCI-драйвера):
|
4.2. Отмонтируем все ZFS файловые системы:
|
4.3. Сменим точки монтирования файловых систем:
|
4.4. Выйдем из Fixit режима, возвратившись в sysinstall. Удалим установочный DVD с FreeBSD и произведём загрузку установленной системы.
5. Выделение памяти для ZFS
При загрузке ядро будет выводить предупреждения, что необходимо сконфигурировать переменными ядра распределение памяти для работы ZFS.
Мои настройки /boot/loader.conf для машины с 2 ГБ памяти:
|
Если всё таки устанавливается версия i386, то для более правильной настройки стоит получше изучить ZFS, в особенности в части тюнинга.
Например, для домашнего сервера (Pentium 4 2.66GHz / 1280 MB), куда amd64 не устанавливалась в виду отсутствия поддержки 64битных расширений, пришлось ставить i386 сборку, а для ZFS задать такие параметры памяти:
|
Есть важное уточнение (опять же - для i386): если выставляется kmem более 512 Мб, то система падает в "кернел паник" с "руганью" на kmem_suballoc. Суть в том, что по умолчанию указать можно не более 512 Мб, а для бОльших значений (до 1Гб) необходимо пересобрать ядро с параметром:
|
По умочанию KVA_PAGES=256, что и является причиной ограничения.
6. Параметры монтирования
В процессе эксплуатации система, где установлена FreeBSD, так или иначе будет подвергаться различным воздействиям: положительным (например, настройка, обработка информации) и отрицательным (какие-либо ошибки, попытки взлома (особенно, если система будет иметь выход в сеть Интернет) или что-то ещё).
Для защиты от негативных воздействий (тем более - умышленных) на уровне файловой системы (идея и для UFS и для ZFS едина) можно воспользоваться таким свойством, как "read only" (только чтение).
В следующей таблице для всех датасетов ZFS, из ранее созданных по данной статье, указаны режимы монтирования, рекомендованные для использования FreeBSD в активном режиме:
|
RO - только чтение, RW - чтение и запись, Ex - запуск
7. Обновление ZFS
15 сентября 2010 г. в восьмую ветку FreeBSD был добавлен исходный код 15-й версии ZFS (точнее: 15-й версии пул и 4-й версии датасетов).
Просмотреть текущие версии пула и датасетов можно так:
|
Если ставить изначально систему с ZFS более ранней версией и затем обновиться, то необходимо будет обновить версии пула и датасетов:
|
Обновление произойдёт без каких-либо дополнительных действий в процессе работы системы.
В дополнении к этому: в 15-й версии используется библиотека python для поддержки подкоманд утилиты zfs (zfs allow, zfs unallow, zfs groupspace, zfs userspace), поэтому требуется её установить:
|
Возможно в будущих релизах системы эту библиотеку интегрируют в дистрибутив, но пока - ручками. :)
8. Решение мелких проблем
ПРОБЛЕМА №1:
При загрузке с диска (LiveFS или установочного) возможно появление ошибки на этапе загрузки ядра (у меня проявилось на сервере IBM x346, когда к нему подключил DVD-дисковод):
|
Данная проблема может быть решена установкой параметра DMA в загрузчике (loader prompt):
|
Для постоянного применения данного параметра его необходимо прописать в файл /etc/sysctl.conf.
ПРОБЛЕМА №2:
Если по какой-либо причине (например, для корректировки /boot/loder.conf, иначе система не загружается - как раз мой случай) для доступа к данный на ZFS пуле пришлось его монтировать с ключём -R (принудительное монтирование пула в заданный каталог)
|
, то потребуется восстановить файл /boot/zfs/zpool.cache, т.к. сбросилось свойство пула cachefile, что видно при просмотре свойств пула:
|
Но это не самая простая (и не очевидная) задача. Надо сделать:
первое: смонтировать корень данного пула (его точка монтирования изменилась на none и поэтому при импорте он стал недоступен):
|
второе: обновить файл zpool.cache инициализацией соотв.значения свойства cachefile:
|
Всё: после перезагрузки восстановленный пул будет испортирован корректно.
ПРОБЛЕМА №3:
Был момент, когда SATA кабель одного из "винтов" выскочил из материнки, а я не заметил. В итоге всё загрузилось нормально и работало (два диска gpt/disk0 и gpt/disk1 в зеркале (домашний сервер), но при просмотре статуса zpool status заметил, что один "винт" не доступен.
Вернув кабель назад в разъём после загрузки увидел, что ZFS зафиксировала несовпадение контрольных сумм:
|
Для коррекции зафиксированных несовпадений контрольных сумм CKSUM сделал проверку (в нотации ZFS - очистку (scrubbing)) изменений:
|
Если же возникла необходимость извлечь, например, сбойный диск, то в указанном варианте это можно было бы сделать так:
|
Это можно делать как при работе системы (а после выключения удалить "винт" физически из системы), так и после физического отключения/удаления диска.
Заключение
Сервер установлен, можно продолжать настройку и установку ПО.
Если у читателей есть предложения/вопросы/конструктивная_критика - прошу их высказать в комментариях. :) В данной статье использованы ранее найденные по этой теме материалы, но постарался учесть изменения, присущие последним изменениям в системе.
P.S. Уже после установки нашёл ссылку, где предложен скрипт для установки и настройки ZFS.
P.P.S. Ещё прислали ссылку на переработанный специально дистрибутив, "заточенный" для установки системы: mfsBSD. Туда интегрирован патч для ZFS v.15 (был и с интегрированным v.28, но по какой-то причине его убрали).
Спасибы
Огромное спасибо Andrey V.Elsukov aka bu7cher за терпеливые ответы на множество вопросов. :)
А так же участникам freebsd@conference.jabber.ru.
Дополнительная информация
1. Руководство FreeBSD. Глава 19. Поддержка файловых систем;
2. Использование gpart;
3. Изучаем ZFS;
4. ZFS — новый взгляд на файловые системы;
5. ZFS-Only FreeBSD;
6. ZFS и FreeBSD: советы и подсказки;
7. Тестируем ZFS, моделируем отказы дисков;
8. Увеличичения размера ZFS пула;
9. Тестирование поведения RAID-Z массива во FreeBSD при полном отказе одного из дисков;
10. Руководство по администрированию файловых систем ZFS Solaris (PDF, рус);
11. Solaris ZFS Administration Guide (PDF, eng);
12. Архитектура ZFS (PDF);
13. "Дневник" Jeff Bonwick - одного из разработчиков ZFS;
14. Шпаргалка по ZFS.
Примечание: [11] новее, чем [10], но на английском.
размещено: 2010-12-05,
последнее обновление: 2016-12-03,
автор: Fomalhaut
gonzo111, 2010-12-05 в 1:11:41
вроде неплохое хауту :)
1 ссылку на форум сделай для обсуждения
в "разделе про сайт"
2 не понял зачем это
Укажем алгоритм подсчёта контрольных сумм
# zfs set checksum=fletcher4 systor ?????
gonzo111, 2010-12-05 в 1:21:28
3) я вот читаю статьи и везде все одно и тоже делают -ставят сжатие на ports,у меня это вызывает улыбку - нахрена сжимать несчастные 300мб какой профит??? да еще и получить лишние тормоза при установке из портов...:)
Fomalhaut, 2010-12-05 в 13:28:42
gonzo111: Ссылку на форум добавил. Там же и ответ на остальное. :)
gx, 2010-12-05 в 17:44:47
Нужно добавить линк на оф. вики - это я так понял первоисточник.
Так посмотриш на это, аж страшно станет - столько команд...
Есть ради чего мучаться?
Fomalhaut, 2010-12-05 в 18:16:30
gx: Нет, первоисточником была статья всё того же bu7cher на opennet-ом ВиКи, с чьего разрешения я и использовал её для написания своего обновлённого варианта. Конечно, читалось много другим материалов, в том числе и с официальных ВиКи. Перечислять всё - много, да и всего прочитанного не вспомню, хотя в черновиках собирал ссылки: с десятка два набралось. :)
А "мучаться" есть ради чего (по крайней мере для меня): разобраться в GPT и gpart, деталях создания и обслуживания ZFS и пр. Т.к. в будущем хочу домашнюю систему целиком перевести на FreeBSD, а домашний архив - на ZFS и GLI (такая вот паранойя :D ).
Ludenus, 2010-12-07 в 22:00:46
Большое спасибо.
Сделано полное исследование: постановка задачи, даны ссылки и успешно установленная система. Важно, что задача заключаласть не просто в написании непроходимого скрипта, но в полном "разборе полетов" и обобщении существующих рекомендаций.
Я бы эту работу отнес не к HOWTO, а к рекомендациям best practice.
Fomalhaut, 2010-12-08 в 9:52:20
Ludenus: Спасибо. Но всё равно уже немного подправил от первоначального варианта: были исправления/уточнения/дополнения. :)
Nirnroot, 2010-12-21 в 12:03:32
Лучше подождать девятки. По моим тестам, там повысилась скорость и вдвое упало потребление памяти. А 8ку нужно обновить, чтобы приплыл патч на металинк - ускорит систему, особенно загруженную.
Fomalhaut, 2010-12-22 в 3:13:30
Nirnroot: Лучше, наверное, будет обновиться с 8.2 до 9.0 по выходу последней. :)
Систему я уже обновил до 8.2-PRERELEASE, а вод до 9.0-CURRENT - не охота: CURRENT он и есть CURRENT - для разработчиков, а не для активного использования.
i, 2010-12-28 в 8:47:37
>установлено 2 SCSI жёстких диска по 72Гб, объединённых в \"зеркало\" на RAID-контроллере
а зачем, если через zfs собирать зеркало правильнее?
>zpool create systor mirror ipsd0p3 ipds1p3
хотя эта строка намекает, что таки нет железного зеркала и оно делается ZFS-ом.
Не понятно как у тебя на самом деле сделно...
Fomalhaut, 2010-12-28 в 10:32:48
i: Ну можно почитать внимательней: по поводу этой строки написано буквально следующее: "...Если понадобится создавать пул на "зеркале", то это можно сделать...". Ключевое слово: ""если": кому-то понадобится сделать именно такой вариант.
По поводу аппаратного RAID-а уже обмусоливалось на форуме, где эта статья обсуждалась: вот ссылка.
i, 2010-12-28 в 15:24:19
читать до просветления:
http://blogs.sun.com/bonwick/ru/
Fomalhaut, 2010-12-29 в 11:07:24
i: Давайте обсуждение данного вопроса перенесём всё таки на форум.
Серёжа, 2011-02-07 в 17:53:16
Fomalhaut, 2011-02-07 в 19:48:53
Серёжа:
Я знаю про эту сборку: ссылка есть в статье.
ttys, 2011-02-22 в 11:59:57
10. Руководство по администрированиюфайловых систем ZFS Solaris (PDF);
сцылка битая
Fomalhaut, 2011-02-22 в 14:17:51
ttys: Ораклясты (эти... нехорошие люди) закрывают доступ то к одному, то к другому. :(
Все ссылки на момент написания/редактирования статьи были рабочими.
P.S. Надо будет выложить этот документ куда-нибудь.
ttys, 2011-02-22 в 14:20:28
ложи в ftp://ftp.lissyara.su/
=)
reva, 2011-03-06 в 11:53:38
Добрый день, хочу обратить на возможные проблемы с которыми столкнулся при реализации выше описанного:
1. Описанная выше схема не работает для FreeBSD 8.2 p0 - перепробовал все варианты установки из раздела http://wiki.freebsd.org/ZFS но загрузить систему не получается.
2. FreeBSD 8.1 работает великолепно, однако есть проблема с zfs mirror boot (Если физически отключить первый диск из mirror пула zfs, то со второго нельзя загрузиться). Описание проблемы и решения можно найти тут http://forums.freebsd.org/showthread.php?t=16535
Fomalhaut, 2011-03-06 в 19:19:31
reva: Очень странно: я ставил с 8.2-RC3 - проблем не видел. Причём ставил на zfs mirror: на этой системе сейчас и работаю.
Дёргал (случайно) винт, о чём написал в "ПРОБЛЕМА №3". Причём отключался именно первый (у меня disk0), но заметил это не сразу: система загрузилась и работала.
Но сигнал принял: проверю после праздников на работе: мне как раз надо в виртуалке поставить систему. Зеркало там не надо, но для эксперимента сделать не мешает. :)
Boba, 2011-03-10 в 18:35:22
В пункте 3.1 наверно все таки не ad0, а для рассматриваемого примера ipsd0?
Fomalhaut, 2011-03-17 в 8:28:53
Boba: Исправил - спасибо за сообщение. :)
5chme1, 2011-11-05 в 17:21:46
Сейчас можно с диска PC-BSD поставить FreeBSD, в том числе и с ZFS
link, 2012-05-05 в 9:31:43
_http://blogs.sun.com/bonwick/ru/
переехал на
https://blogs.oracle.com/bonwick/ru/
ttys, 2012-05-05 в 13:35:32
404 Not Found!
Sorry, that page does not exist. Please try another location or you can search...
linx, 2013-04-29 в 13:06:03
LOLO, 2013-10-03 в 23:44:10
АФТАР ЕБЛАН
salimk, 2013-10-23 в 15:43:23
Здравствуйте товарищщи!
Для Sun Fire (sparc64):
1. Разметка диска
sunlabel -B da0
gpart destroy -F da0
gpart create -s vtoc8 da0
gpart add -s 512M -t freebsd-ufs /dev/da0
gpart add -s 4G -t freebsd-swap /dev/da0
gpart add -t freebsd-zfs /dev/da0
##2.2
zpool create -f -m /mnt zroot /dev/da0d
Далее делаем все также
3. Установка системы
пункт 3.1 не делаем
mkdir /mnt/bootdir
newfs -m 0 /dev/da0a
mount /dev/da0a /mnt/bootdir
далее делаем все также
##3.5
echo 'zfs_enable="YES"' > /etc/rc.conf
echo 'zfs_load="YES"' > /boot/loader.conf
echo 'vfs.root.mountfrom="zfs:zroot"' >> /boot/loader.conf
echo 'vfs.zfs.prefetch_disable="1"' >> /boot/loader.conf
echo 'console="ofw"' >> /boot/loader.conf
mv boot bootdir/
ln -s bootdir/boot /boot
chflags -h sunlink /boot
работает 100%
gpart show da0
=> 0 71087625 da0 VTOC8 (33G)
0 1044225 1 freebsd-ufs (509M)
1044225 4192965 2 freebsd-swap (2G)
5237190 65850435 4 freebsd-zfs (31G)
ttys, 2016-01-08 в 16:43:00
Всё: после перезагрузки восстановленный пул будет испортирован корректно.
Этот информационный блок появился по той простой причине,
что многие считают нормальным, брать чужую информацию не уведомляя автора
(что не так страшно), и не оставляя линк на оригинал и автора — что более существенно.
Я не против распространения информации — только за. Только условие простое — извольте
подписывать автора, и оставлять линк на оригинальную страницу в виде прямой, активной, нескриптовой,
незакрытой от индексирования, и не запрещенной для следования роботов ссылки.
Если соизволите поставить автора в известность — то вообще почёт вам и уважение.
© lissyara 2006-10-24 08:47 MSK
Комментарии пользователей [29 шт.]