为桌面工作站 (HDD+SSD) 对 /home 进行分区

为桌面工作站 (HDD+SSD) 对 /home 进行分区

我刚刚将我妻子的家用电脑从 Windows 10 换成了 Ubuntu 18.04,到目前为止,她很喜欢这种转变。这是一台只支持 Ubuntu 的机器(没有双启动,只有一个操作系统发行版,可能需要为某些特定于 Windows 的应用程序设置虚拟机)。

最后要弄清楚和设置的事情是如何处理这两个驱动器(480GBb SSD,1TB HDD)。尝试在启用 LVM 的情况下进行安装,但遇到了问题lvmetad,不得不使用标准ext4分区(即仅/efi/SSD 上,ext4HDD 上有一个未安装的分区,其中包含她的用户数据存档)。她有近 500GB 的考古研究数据(许多机密/专有照片、.pdf 和其他数据文件),这显然会压垮 SSD。

我正在尝试弄清楚如何设置,以便/home保留在 ssd 上(为了速度等),而大部分存档在 HDD 上。但我不确定我是否只想安装 HDD(例如,作为/archive)并链接到/home,因为我希望推送到 HDD 的所有内容也完全属于她的用户空间(即,不仅仅是任何其他用户帐户可访问/可见的通用存储)。理想情况下,我想要在 HDD 上创建一个子空间,并让~/home对文件系统管理不感兴趣并需要它“正常工作”的人可以使用和理解它,以便她可以获取她的数据。

到目前为止,我见过的所有双驱动器解决方案都只是将 HDD 安装为符号链接在下的大容量存储/home,在两者之间设置/home为 LVM 伪 RAID(人们对此的看法各不相同,但这是否是一个好主意,lvmetad目前无论如何都阻止了它),或者设置一个实际的RAID(我不想进入)。

不幸的是,所有这些都超出了我对 Linux 文件系统的理解,而且非常可能我只是没有正确理解这一切。

所需设置:

  • 允许设置多用户系统,使用\homeSSD 和 HDD 上的个人用户访问大文件存储
  • 硬盘上的用户文件和目录仅供该用户访问,并链接到用户的/home
  • /home/[user]/[extra storage][hdd mount point]/[user]在链接到仅对 [用户] 可见/可访问的SSD 上~/[extra storage]
  • 配额不是必需的,但可以存储硬盘上的空间

基本上,在大容量存储设备上分离并保护各个用户共享 - 扩展用户的主目录 - 而无需将所有内容推送到/home第二台设备。

有没有办法设置我所描述的内容,或者有人可以指出我对用户文件系统结构的想法哪里错了?

答案1

以下步骤描述了如何在硬盘上安装分区/mnt/archive,然后添加绑定挂载到两个用户的主目录,爱丽丝鲍勃。主目录本身仍然位于另一个分区上。

所有命令都必须以用户身份发出root

  1. 确定archive分区的 UUID:

    lsblk -fs
    NAME      FSTYPE      LABEL       UUID                                 MOUNTPOINT
    sda5      ext4        slash       467ddc36-vvvv-xxxx-yyyy-zzzzzzzzzzzz /
    └─sda                                                                  
    sda6      ext4        home        a87c2c2d-vvvv-xxxx-yyyy-zzzzzzzzzzzz /home
    └─sda                                                                  
    sdb8      ext4        archive     291bd44c-vvvv-xxxx-yyyy-zzzzzzzzzzzz 
    └─sdb                                                                  
    ...
    

    在我的例子中,我在上有/和,还有一个标记为 的未挂载分区。为了便于理解,我们假设是 SSD ,是 HDD。/homesdaarchivesdb8sdasdb

  2. 将档案分区挂载到一个空目录中,例如/mnt/archive

    mkdir /mnt/archive
    mount UUID=291bd44c-vvvv-xxxx-yyyy-zzzzzzzzzzzz /mnt/archive
    chown root:root /mnt/archive
    chmod 750 /mnt/archive
    
  3. /mnt/archive在下面(即在硬盘上)为用户创建用户特定的文件夹爱丽丝鲍勃并调整权限,以便只有他们可以访问这些目录。请注意,这些目录现在位于archiveHDD 上的分区上:

    mkdir /mnt/archive/alice
    chown alice:alice /mnt/archive/alice
    chmod 750 /mnt/archive/alice
    
    mkdir /mnt/archive/bob
    chown bob:bob /mnt/archive/bob
    chmod 750 /mnt/archive/bob
    
  4. archive在主目录中创建文件夹。不用担心,因为这些目录归 拥有root。这不会造成任何影响,因为爱丽丝不应该放任何东西在里面目录。该目录/home/alice/archive仅作为实际绑定挂载的位置/mnt/archive/alice,挂载后,权限和所有权/mnt/archive/alice适用。

    mkdir /home/alice/archive
    mkdir /home/bob/archive
    
  5. 绑定挂载 /mnt/archive/alice/home/alice/archive

    mount -o bind /mnt/archive/alice /home/alice/archive
    mount -o bind /mnt/archive/bob /home/bob/archive
    
  6. 满意后,添加以下行以/etc/fstab在启动时自动挂载分区:

    # The /archive partition
    UUID=291bd44c-vvvv-xxxx-yyyy-zzzzzzzzzzzz /mnt/archive  ext4 defaults  0  2
    
    # bind mounts for alice and bob:
    /mnt/archive/alice /home/alice/archive  none  bind  0  0
    /mnt/archive/bob   /home/bob/archive    none  bind  0  0
    

之前绑定挂载已经完成了,爱丽丝只会看到由 在她的主目录中。该目录是空的,她不能(也不应该)将文件放入其中:

alice@ubuntu:~$ ll
total 16
drwxr-xr-x 2 root  root  4096 Jan 25 12:51 archive
-rw-r--r-- 1 alice alice 8980 Jan 25 12:43 examples.desktop

之后绑定挂载已经完成了 (mount -o bind /mnt/archive/alice /home/alice/archive), 爱丽丝将会在她的主目录中看到该目录/mnt/archive/alice,包括以下权限/mnt/archive/alice

alice@ubuntu:~$ ll
total 16
drwxr-x--- 2 alice alice 4096 Jan 25 13:06 archive
-rw-r--r-- 1 alice alice 8980 Jan 25 12:43 examples.desktop

她可以在该目录中做任何她喜欢的事情archive,所有的事情都会发生在硬盘驱动器的分区上。


要撤消上述步骤,请使用以下命令:

# undo bind-mounts:
umount /home/alice/archive
umount /home/bob/archive

# unmount actual partition:
umount /mnt/archive

相关内容