将 /home 拆分到多个分区

将 /home 拆分到多个分区

我的笔记本电脑上有 512 GB 的 SSD 和 1 TB 的 HDD。我已经在这台机器上安装了 Windows 10,我即将同时安装 Ubuntu 18.04。SSD 中有 214 GB 的未分配空间,HDD 中有 488 GB 的未分配空间,我可以将其用于 Ubuntu。

我计划从 SSD 中划出 100 GB 用于/。现在,我对 有点困惑/home。我想将 SSD 中剩余的未分配空间和 HDD 中所有未分配的空间用于/home。我有两个选择:

1)将SSD空间挂载为,/home并在里面创建一个挂载点/home,称为sub_home挂载HDD空间。

2)将 HDD 空间挂载为,/home并在里面创建一个挂载点/home,称为sub_home挂载 SSD 空间。

但我想确保我能够利用 SSD 的速度,我不确定如果我选择第二个选项,我是否能够做到这一点。同时,如果我选择第一个选项,Ubuntu 文件夹(例如Documents、等DownloadsPictures将在 SSD 中创建,我希望避免这种情况。请提供指导。请注意,首要任务是 SSD 的速度。

另外,是否有可能将其中一个指定为/home并将另一个安装在/和 之外/home?这种方法会产生任何问题吗?除了外部驱动器和 SD 卡外,我从未使用过/和之外的任何挂载点。/home

编辑1:我认为我需要根据评论澄清这个问题。我不打算将 SSD 用于常见的 Ubuntu/home文件夹,例如DocumentsDownloadsPictures。我打算用它来保存机器/深度学习数据集、gazebo模拟模型、ROS文件等。我认为这些文件可能会受益于速度优势。

答案1

Linux 文件系统的优点在于你可以挂载任何设备,任何您喜欢的地方。比如,如果您拥有大型数据集,大到无法通过可用 RAM 有效缓存,那么您可以在树上的任何位置选择任意名称的文件夹。

系统中已经存在的一些文件夹非常适合特定任务。例如,我经常在 /srv 上安装大数据驱动器。为了符合要求,发行版包含此文件夹,但在过去十年中,除了我自己的目的之外,我并没有看到它被广泛使用。

举例来说:假设您的 SSD 驱动器是,并且您对其进行了分区,使得SSD 上/dev/sda有大约 100 GB 的主分区,并且您决定将分区后的驱动器上剩余的大约 400GB用于数据存储并安装在您的 /etc/fstab 文件中,如下所示:/dev/sda1//dev/sda2/srv

# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
# / was on /dev/sda1 during installation
UUID=06a31723-1f61-4bae-ae5d-403cd35d0adc /               ext4    errors=remount-ro 0       1
# /home was on /dev/sdb1 during installation
UUID=a2a0bb88-9faf-4e83-91cc-f687e1b4525a /home           ext4    defaults        0       2
UUID=7a6cc92c-4c0d-42e2-baac-373287cf5b80 /srv      ext4    defaults    0   2       
# swap was on /dev/sdc2 during installation
UUID=f0f7785c-25b5-4770-b2b3-fd618ebf58c7   swap    swap    defaults    0   0

安装程序非常擅长允许您为默认挂载点指定特定分区,但您也可以在任何地方创建自己的分区并通过 /etc/fstab 挂载它们。完全可以将不同的驱动器/分区挂载在/、、、、、等处。/SSD/HDD/bin/opt/home/home/Documents/srv/ /srv/data

限制驱动器数量的唯一因素是放置驱动器的空间和运行驱动器所需的功率。如果您有 50 个托架和可容纳 10 个外部驱动器的桌面空间,则可以将它们全部安装在树上的任何位置。还有一些方法可以让多个驱动器显示为 1 个,但我不会深入讨论这一点,因为看起来您希望对读取和写入哪个设备进行更多的控制,而这种方法却无法做到这一点。

编辑:关于`Nix 目录结构有一篇不错的文章这里。

如果这个答案有任何不清楚的地方,请给我留言,我会尽力详细说明。

答案2

我曾经mhddfs让多个物理磁盘显示为一个,这可能适合你想要做的事情。还有其他工具mergerfs,,, unionfsaufs

因此,您可以将一个磁盘安装为,/media/ssdhome将另一个磁盘安装为/media/hddhome,然后将它们合并为/home。然后在每个磁盘中,您可以创建指向另一个名为 sub_home 的磁盘的符号链接,或者在创建新文件时仅使用 /media/ 路径。

相关内容