Как переместить /home/user в пул zfs?
Ubuntu 14.04 установлен на 128Gb SSD-пуле zfs ("zfshome") на дисках 3x3 ТБ, содержащих аудио / видео / ТВ и т. д.
Первоначально я построил это как NAS NASAFree, обслуживающее мои оконные коробки по всему дому. Сейчас я пытаюсь превратить его в медиасервер, и, будучи всегда включенным, хотел стабильности Ubuntu (теперь, когда это более удобно для пользователя, с точки зрения обычных пользователей...) Мне кажется, что установка / home / user на zpool имела смысл (будучи новичком, я часто переустанавливаю), но через неделю я не могу найти четких инструкций, как этого добиться, и после этого многие попытки полностью сбиты с толку.
Любая помощь приветствуется, Ян
3 ответа
Как переместить каталог / home в пул ZFS в Linux Mint 19XFCE-64bit
Ссылка: https://freedompenguin.com/articles/how-to/move-linux-home-zfs/
Эта процедура была протестирована на гостевой Linux Mint 19XFCE 64bit внутри VirtualBox V5.2.22
Хост-система Linux Mint 18 KDE 64 бит
Все, что описано ниже, относится к гостевой ОС.
Процедура не на 100% пошаговая. Описаны некоторые шаги, дающие их глобальное значение, а не
вдаваясь в глубокие детали.
Каждый раз, когда будет упоминаться слово "пользователь", оно означает ВАШЕ имя каталога пользователя (например, вместо / home / user / Documents put / home / jonathan / Documents, где jonathan - пример имени)
Следующая процедура действительна для одного пользователя.
Последнее, но не менее важное, простите мой английский. Я итальянец.
Процедура
установка утилит zfs терминалом
sudo apt install zfsutils-linux
Используя G-Parted:
Уменьшите единственное доступное разделение до разумного значения (скажем, 20-25 Гбайт).
На свободном месте, созданном предыдущим шагом, создайте новый раздел НЕ отформатированный.
В браузере файлов перейдите в /dev/disk/by-id/ и запишите имя второго раздела. Такой раздел является только что созданным (НЕ отформатированным), в котором будет размещен пул ZFS, выделенный для каталога / home. В моем случае второе имя раздела было ata-VBOX_HARDDISK_VB49b2d698-41fa84b3-part2. Такое имя вы увидите в синтаксисе создания пула здесь ниже.
Теперь мы создаем пул zhome, используя раздел 2 НЕ отформатированный, который мы только что создали.
По терминалу
zp=zhome
sudo zpool create -o ashift=12 -o autoexpand=on -o autoreplace=on -O atime=off -O compression=lz4 $zp /dev/disk/by-id/ata-VBOX_HARDDISK_VB49b2d698-41fa84b3-part2
Подробное значение различных параметров можно найти в справочной статье, упомянутой в начале.
Теперь мы должны сделать резервную копию каталога / home / user / во временный каталог, такой как / tmp / user-bck /
По терминалу
sudo rsync -avh /home/user/ /tmp/user-bck/
Теперь мы должны стереть каталог / home, я не знаю почему, но для успешного выполнения команды нужно дать дважды (первый раз, когда он предупреждает: "каталог не пустой"...)
По терминалу
sudo rm -r -f /home
sudo rm -r -f /home
НЕКОТОРЫЕ ЗАМЕЧАНИЯ
1) хорошо, если вместо важных каталогов есть наборы данных ZFS. Это потому, что это позволит делать выборочные снимки SPECIFIC для каждого каталога. ОЧЕНЬ полезно, просто чтобы упомянуть, в случае каждой директории виртуальной машины...
2) Каждый набор данных рассматривается файловым браузером как НОРМАЛЬНЫЙ каталог. Таким образом, внутри него мы можем создавать любые подкаталоги, которые мы хотим. НО ЗАПРЕЩАЕТСЯ создавать набор данных ZFS следующим образом: pool / dataset1 / directory / dataset2
3) Снимки применяются только к наборам данных, а НЕ к каталогам...
Теперь давайте создадим КАЖДЫЙ набор данных ZFS с ТОЧНЫМ именем, совпадающим с именем / home / user directory (Documents, Music и т. Д.). Будьте осторожны: я перевел названия каталогов с итальянского на английский. Пожалуйста, убедитесь в синтаксисе (документы, картинки, музыка и т. Д.)
По терминалу
sudo zfs create -o sharesmb=off $zp/home
sudo zfs create $zp/home/user
sudo zfs create $zp/home/user/Documents
sudo zfs create $zp/home/user/Pictures
sudo zfs create $zp/home/user/Music
sudo zfs create $zp/home/user/Video
sudo zfs create $zp/home/user/Models
sudo zfs create $zp/home/user/Download
sudo zfs create $zp/home/user/Desktop
Теперь мы даем (немедленную и постоянную) инструкцию ZFS о точке монтирования пула zhome/home. Монтирование выполняется немедленно и будет выполняться при каждой загрузке.
По терминалу
sudo zfs set mountpoint=/home $zp/home
Теперь мы должны восстановить / home / user резервную копию и поместить ее в новый, EMPTY, только что смонтированный, каталог / home.
По терминалу
cd /
sudo rsync -avh --ignore-existing /tmp/user-bck/ /home/user/
Опция –ignore-существующие задана, чтобы избежать перезаписи каталогов в одноименных наборах данных ZFS (Документы, Музыка и т. Д.)
Теперь перезагрузите систему
По терминалу
sudo reboot
Испытано 21 ноября 2018 года, руда 22:30.
С уважением
Michele
YMMV. Убедитесь, что все сказанное ниже имеет смысл для вас.
Убедитесь, что вы можете
loginчерез хотя бы одну учетную запись с поддержкой администратора (может управлять ZFS), когда NAS не работает.Копировать через
tarили жеrsync(неcp) все твои старыеHOMEкаталог (/home/you) к новомуHOMEдиректория, смонтированная временная строка места/media/$USER/newhome,Сделайте резервную копию, затем отредактируйте
/etc/fstabвNFSсмонтировать соответствующийNASкаталог как/home/you, Увидетьman fstabоколоNFSмонтирует,man mount, тоже. Использоватьautoвариант. НЕ устанавливайте его пока.Тщательно удалите большинство файлов / каталогов в вашем старом
HOMEкаталог, просто оставляя достаточно структуры, чтобы вы моглиloginс файлами здесь, на случай, еслиmountвыходит из строя.logoutа такжеloginчтобы проверить, что вы сделали в шаге 4.Если все в порядке, установите
NASHOMEкаталог через:sudo mount / home / you
sudo shutdown -r nowперезагрузить систему, заставить все процессы забыть о вашей старой$HOMEи начать с/home/youустановлен.
zstore - это пул, ian - это пользователь1
вошли как user1 делать;
..... создать user2 с правами администратора..... создать новую папку sudo mkdir /temphome .... переместить дом пользователя user2..... sudo usermod -m -d /temphome/user2 user2 ..reboot... ... войти в систему как user2.... переместить дом пользователя user1 sudo usermod -m -d / temphome / user1 user1
... создать пустой набор данных sudo zfs создать zstore / zhome..as / home теперь пусто, смонтировать новый набор данных в /home sudo zfs установить точку монтирования =/home zstore/zhome ... переместить дом пользователя user1 обратно в / home sudo usermod - m -d / home / user1 user1... reboot.. войдите как user1... переместить дом пользователя user2 из temp обратно в / home sudo usermod -m -d / home / user2 user2... убрать sudo rmdir / tmphome
все сделано,