通过终端安装 zfs utils

通过终端安装 zfs utils

ubuntu 14.04 安装在 3x3TB 磁盘的 128Gb ssd zfs 池(“zfshome”)上,包含音频/视频/电视等。

我最初将它构建为一个 nas4free NAS,为家里的 Windows 机器提供服务。现在我试图将它变成一个媒体服务器,并让它一直开着,我想要 ubuntu 的稳定性,(现在它对普通用户来说更加用户友好...)在我看来,把 /home/user 放在 zpool 上是有意义的,(作为一个新手,我经常重新安装),但一周后我找不到明确的说明如何实现它,经过这么多尝试后我完全糊涂了。

任何帮助表示感谢,伊恩

答案1

  1. YMMV。请确保下面所说的任何内容对你来说都是有意义的。

  2. 确保login当 NAS 关闭时,您可以通过至少一个启用管理员的帐户(可以管理 ZFS)进行操作。

  3. 复制、通过tarrsync(不是cp)所有旧HOME目录(/home/you)到新HOME目录,安装一些临时位置行/media/$USER/newhome

  4. 备份,然后编辑/etc/fstab以将NFS相应NAS目录挂载为/home/you。另请参阅挂载。使用man fstab选项NFS。暂时不要挂载它。 man mountauto

  5. 小心地删除旧目录中的大部分文件/目录HOME,只留下足够的结构,以便login在发生故障时可以使用此处的文件mount

  6. logoutlogin验证您在步骤 4 中所做的事情。

  7. 如果一切正常,请NAS HOME通过以下方式挂载目录:

    sudo mount /home/you

  8. sudo shutdown -r now重新启动系统,让所有进程忘记旧的$HOME,然后重新开始/home/you安装。

答案2

如何将 /home 目录移动到 Linux Mint 19XFCE-64bit 上的 ZFS 池

参考: https://freedompenguin.com/articles/how-to/move-linux-home-zfs/

此过程已在 VirtualBox V5.2.22 中的 Linux Mint 19XFCE 64bit 客户机上进行了测试

主机系统 Linux Mint 18 KDE 64 位

  • 下面描述的任何内容均指客户操作系统。

  • 程序并非 100% 一步一步。有些步骤的描述给出了其总体含义,而不是

深入细节。

  • 每次提到“用户”这个词时,它都表示您的用户目录名称(例如,不要使用 /home/user/Documents,而要使用 /home/jonathan/Documents,其中 jonathan 是一个示例名称)

  • 以下步骤仅对单个用户有效。

  • 最后,但同样重要的是,请原谅我的英语。我是意大利人。

程序

通过终端安装 zfs utils

sudo apt install zfsutils-linux

通过使用 G-Parted:

将唯一可用的分区减少到合理的值(比如说 20-25 Gbyte)。

在上一步创建的可用空间上,创建一个未格式化的新分区。

通过文件浏览器,转到 /dev/disk/by-id/ 并记下第二个分区名称。该分区是刚刚创建的分区(未格式化),将托管专用于 /home 目录的 ZFS 池。在我的例子中,第二个分区名称是 ata-VBOX_HARDDISK_VB49b2d698-41fa84b3-part2 您将在下面的池创建语法中看到此名称。

现在我们使用刚刚创建的未格式化的分区 2 创建 zhome 池。

通过航站楼

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 数据集而不是重要目录是一件好事。因为它允许为每个目录拍摄特定的选择性快照。非常有用,只是提一下,对于每个虚拟机目录...

2) 文件浏览器将每个数据集视为一个普通目录。因此,我们可以在其中创建任何我们想要的子目录。但禁止以这种方式创建 ZFS 数据集:pool/dataset1/directory/dataset2

3)快照仅适用于数据集,不适用于目录……

现在让我们创建每个 ZFS 数据集,其名称与 /home/user 目录(文档、音乐等)完全相同。请注意:我将目录名称从意大利语翻译成了英语。请确保语法正确(文档、图片、音乐等)。

通过航站楼

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 备份并将其放入新的、空的、刚刚挂载的 /home 目录中。

通过航站楼

cd /
sudo rsync -avh --ignore-existing /tmp/user-bck/ /home/user/

给出选项 –ignore-existing 以避免覆盖同名 ZFS 数据集(文档、音乐等)上的目录。

现在重启系统

通过航站楼

sudo reboot

于 2018 年 11 月 21 日 22:30 进行测试。

问候

米歇尔

答案3

zstore 是池,ian 是用户1

以用户1身份登录;

  • 创建具有管理员权限的用户2

  • 创建新文件夹:sudo mkdir /temphome

  • 移动 user2 的主目录: sudo usermod -m -d /temphome/user2 user2

  • 重启

  • 以用户2身份登录

  • 移动 user1 的主目录: sudo usermod -m -d /temphome/user1 user1

  • 创建空数据集:sudo zfs create zstore/zhome

  • 由于 /home 现在是空的,请在 /home 中挂载新的数据集:sudo zfs set mountpoint=/home zstore/zhome

  • 将 user1 的主目录移回 /home : sudo usermod -m -d /home/user1 user1

  • 重启

  • 以用户1身份登录

  • 将 user2 的主目录从 temp 移回至 /home : sudo usermod -m -d /home/user2 user2

  • 整理: sudo rmdir /tmphome

全做完了

相关内容