====== Управление файловыми системами в FreeBSD ======
===== Получить информацию о подключенных дисках =====
# dmesg
===== Анализ разделов на диске =====
# gpart show ada0
# fdisk -s /dev/ad0
===== Монтирование файловых систем в ручную =====
# mount
# mount -t cd9660 /dev/cd0 /mnt
# mount_cd9660 /dev/cd0 /mnt
===== Добавление дисков в FreeBSD =====
* [[https://ru.wikipedia.org/wiki/Таблица_разделов_GUID|Таблица разделов GUID]]
* [[https://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/disks-adding.html|Adding Disks]]
* [[http://www.freebsd.org/doc/ru/books/handbook/disks-adding.html|Добавление дисков]]
==== Удалить таблицу разделов ====
* [[Команда dd#Удаление таблицы разделов]]
==== Создать таблицу разделов ====
# gpart destroy -F ada1
# gpart create -s GPT ada1
# gpart show
==== Создать раздел ====
# gpart add -t freebsd-ufs ada1
# gpart show
==== Создать файловую систему ====
# newfs -U /dev/ada1p1
==== Смонтировать раздел ====
# mkdir /disk2
# mount /dev/ada1p1 /disk2
# umount /disk2
==== Добавить соответствующую запись в файл /etc/fstab ====
# cat /etc/fstab
...
/dev/ada1p1 /disk2 ufs rw 2 2
==== Использование уникальных идентификаторов дисков ====
# glabel status
# cat /etc/fstab
...
/dev/gptid/e98b1341-74ed-11e6-a00d-080027ec1031 /disk2 ufs rw 2 2
===== Использование шифрованных разделов в FreeBSD =====
* [[http://www.freebsd.org/doc/ru/books/handbook/disks-encrypting.html|Шифрование дисковых разделов]]
==== Подготовка к использованию ====
[[Управление файловыми системами в FreeBSD#Добавление дисков в FreeBSD]] (до создания раздела, включительно)
# kldload geom_bde
# cat /boot/loader.conf
...
geom_bde_load="YES"
# mkdir /etc/gbde
freebsd10# setenv D ada1p1
freebsd8# setenv D ad1s1e
==== Инициализация ====
# gbde init /dev/${D} -i -L /etc/gbde/${D}.lock
==== Подключение ====
# gbde attach /dev/${D} -l /etc/gbde/${D}.lock
# newfs -U -O2 /dev/${D}.bde
# mount /dev/${D}.bde /disk2
==== Отключение ====
# umount /disk2/
# gbde detach /dev/${D}
===== Зеркалирование корневого раздела =====
* [[https://www.freebsd.org/doc/handbook/geom-mirror.html|RAID1 - Mirroring]]
===== Использование ZFS =====
* [[http://wolandblog.com/601-zfs-novyj-vzglyad-na-fajlovye-sistemy/|ZFS — новый взгляд на файловые системы]]
* [[https://www.freebsd.org/doc/ru/books/handbook/filesystems-zfs.html|Файловая система ZFS - Handbook]]
* [[https://www.freebsd.org/doc/handbook/zfs.html|The Z File System (ZFS) - Handbook]]
==== Инициализация ZFS ====
# cat /etc/rc.conf
...
zfs_enable=yes
==== Создание/удаление/просмотр пулов ====
# gpart create -s GPT ada1
# gpart add -t freebsd-ufs ada1
# zpool destroy mypool
# zpool create mypool ada1p1
или
# zpool create mypool gptid/4249d14d-74f2-11e6-89b1-080027ec1031
# zpool list
# zpool status -v
# mount
# df -h
==== Использование snapshot ====
# cp /etc/rc.conf /mypool/
# zfs snapshot mypool@snapshot1
# zfs list -t snapshot
# rm /mypool/rc.conf
# zfs rollback mypool@snapshot1
==== Преобразование пула в RAID1 ====
# gpart create -s GPT ada2
# gpart add -t freebsd-ufs ada2
# zpool attach mypool ada2p1 ada1p1
или
# zpool attach mypool gptid/4249d14d-74f2-11e6-89b1-080027ec1031 gptid/ba4ba7c0-74f3-11e6-89b1-080027ec1031
# zpool status -v
останавливаем систему
удаляем первый диск
загружаемся, проверяем состояние
# zpool status -v
# zpool detach mypool 13589062874312055627
останавливаем систему
добавляем новый диск
# gpart backup ada2 | gpart restore -F ada1
# zpool attach mypool ada2p1 ada1p1
# zpool status -v
==== Использование ZFS на корневом разделе ====
=== Обновление системы ===
# zfs snapshot zroot/ROOT/default@before_upgrade
# zfs list -t snapshot
* [[Обновление системы и базового ПО в FreeBSD]]
* [[Обновление дополнительного ПО в FreeBSD]]
# zfs rollback zroot/ROOT/default@before_upgrade
=== Создание/использование SOFT RAID1 для корневого раздела ===
# gpart backup ada0 | gpart restore -F ada1
# zpool attach zroot ada0p3 ada1p3
# gpart bootcode -b /boot/pmbr -p /boot/gptzfsboot -i 1 ada1
# cat /etc/fstab
...
/dev/ada1p2 none swap sw 0 0
# swapon -aL
Halt, delete firsh disk and make second disk primary master
# zpool status -v
# gpart backup diskid/DISK-VBc63c941f-c4c37902 | gpart restore -F ada1
# zpool attach zroot diskid/DISK-VBc63c941f-c4c37902p3 ada1p3
# gpart bootcode -b /boot/pmbr -p /boot/gptzfsboot -i 1 ada1
# zpool detach zroot 9955499194019161705
===== Дополнительная информация =====
* [[http://www.freebsd.org/doc/ru/books/handbook/quotas.html|Квотирование файловых систем]]
* [[https://www.freebsd.org/doc/en/books/handbook/disks-virtual.html|Memory Disks]]