Рассказы о ZFS. Её команды: перемонтирование

После создания файловых систем и задания всех необходимых их свойств наступает психологический момент для перемонтирования их по месту «постоянной прописки» — то есть в каталог /home. Что потребует некоторых подготовительных действий.

Поскольку предполагается, что все новообразованные файловые системы должны быть полностью доступны обычному пользователю (то есть мне, любимому), перво-наперво следует изменить атрибуты из принадлежности — ведь создавались они от имени администратора и принадлежат юзеру по имени root. Для чего даю команду:

# chown -R alv:users /tank/home/*

Теперь нужно скопировать конфиги из каталога /home/alv в /tank/home/alv:

# cp -Rp /home/alv/.* /tank/home/alv/

Не забыв про опцию -p для сохранения владельца, группы и так далее. Впрочем, я восстановил их из резервной копии — архива tar.gz, что также гарантирует сохранение всех атрибутов файлов.

Все предыдущие операции можно было выполнять, получив права администратора с помощью команды su (или, при желании sudo). Причём где угодно — в текстовом виртуальном терминале или в терминальном окне Иксового сеанса (например, в konsole KDE). Теперь же потребуется переавторизоваться в «голой» консоли, например, в окне приглашения к авторизации KDM.

Монтирование файловых систем ZFS в каталог с любым содержимым невозможно, так что требуется очистить каталог /home от следов прежней жизнедеятельности пользователя таким образом:

# rm -Rf /home/alv

При хоть одном активном пользовательском процессе в ответ на это последует сообщение об ошибке. Так что, возможно, перед этим придётся убить все реликтовые процессы, запущенные в Иксах от имени пользователя. Сначала выявляем их командой

# ps aux | grep alv

обращая внимание на идентификаторы процессов(PID). А затем последовательно мочим их в сортире

# kill -9 ####

Выполнив все указанные действия, определяем для набора данных tank/home свойство mountpoint, что и осуществит перемонтирование:

# zfs set mountpoint=/home tank/home

Теперь остаётся только с помощью команд

# ls /tank

и

# ls -al /home

убедиться, что первый каталог опустел, а во втором появились новые подкаталоги, причём с атрибутами принадлежности и доступа, какими нужно:

drwxr-xr-x 26 alv users 48 Sep 23 14:27 alv/
drwxr-xr-x  4 alv users  4 Sep 22 02:00 media/
drwxr-xr-x 11 alv users 11 Sep 22 02:23 other/
drwxr-xr-x 18 alv users 18 Sep 22 02:28 proj/
drwxr-xr-x  3 alv users  3 Sep 22 02:05 test/

А команда

# mount | grep /home

покажет нам новые точки монтирования файловых систем:

tank/home on /home type zfs (rw,noatime,noxattr)
tank/home/alv on /home/alv type zfs (rw,noatime,noxattr)
tank/home/media on /home/media type zfs (rw,noatime,noxattr)
tank/home/other on /home/other type zfs (rw,noatime,noxattr)
tank/home/proj on /home/proj type zfs (rw,noatime,noxattr)
tank/home/test on /home/test type zfs (rw,noatime,noxattr)

Как я уже говорил в рассказе о включении ZFS, при использовании пакетов из репозитория munix9 на этом дело с подготовкой файловых систем ZFS к практической работе можно считать законченным: при перезагрузке машины все они будут благополучно смонтированы в автоматическом режиме. Пакеты же из ghaskins потребуют ещё одного деяния — создания в каталогах
/etc/init.d/rc3.d
и /etc/init.d/rc5.d символических ссылок на файл /etc/init.d/zfs:

# cd /etc/init.d/rc3.d
# ln -s ../zfs K01zfs
# ln -s ../zfs S01zfs
# cd /etc/init.d/rc5.d
# ln -s ../zfs K01zfs
# ln -s ../zfs S01zfs

Что обеспечит корректное монтирование и размонтирование файловых систем при загрузке системы и её останове.


Назад | Рассказы о ZFS | Вперёд