我怎样才能让 ubuntu 将所有内容安装在 /home 而不是根目录上?

我怎样才能让 ubuntu 将所有内容安装在 /home 而不是根目录上?

我正在尝试在笔记本电脑上双启动 ubuntu,由于我的 SSD 空间不足,我已在 SSD 中为根目录分配了 20 GB,在 HDD 中为主目录分配了 120 GB。我只在 SSD 上安装了根目录以加快启动时间,我的主要目标是将 90% 的文件安装在 HDD 中。

但是,似乎所有东西都安装在 ubuntu 的根分区中,而我却想将大多数程序(包括使用 apt-get 安装的程序)安装到我的 HDD 中。我只希望将最重要的文件安装在 SSD 中。

有没有办法更改 ubuntu 中软件的安装位置?或者,在安装 ubuntu 期间,我可以只将必要的文件分配给 SSD,而将其他所有内容安装在 HDD 上吗?

编辑:看来我的问题表述错误了。我的意思是我想利用 SSD 的效率和 HDD 的大容量,这样我就能在笔记本电脑上更快地运行 Linux。

答案1

我怎样才能让 ubuntu 将所有内容安装在 /home 而不是根目录上?

你不需要,除非你对如何以不同于惯例的方式配置 Linux 系统有深入的了解。

然而,你轻松配置 Linux 系统,将系统文件放置在另一个驱动器上,即您的情况中的 HDD 而不是 SSD。符号链接已经可以解决问题 - 系统文件结构的多个目录可以通过这种方式重定向到 HDD。

不过,也不是最佳选择。为了提高性能 - 快速启动、快速响应系统和快速加载程序 - 最好将所有系统文件保留在 SSD 上。如果您将/home目录安装在另一个驱动器上,20 GB 已经足以容纳 Linux 操作系统,但这仍然取决于您安装了多少个程序,以及您是否将应用程序安装为 snap 或 flatpak 而不是常规 APT 包。

  • 您可以将交换文件移出到其他驱动器,特别是如果您有 8 GB 或更多内存。但是,如果您需要交换,交换速度会变得明显变慢。
  • 确保定期清理旧内核,每个内核占用几百兆字节。该命令sudo apt autopurge将删除不再需要的所有库,但也会删除所有旧内核,只保留一个:保留一个旧内核。这有助于在根分区上保留足够的可用空间。
  • 现在有多个应用程序以 AppImage 形式提供。您可以将它们放置在您想要的位置。这是减少您需要在系统文件区域中安装的软件包数量的另一种方法。
  • 如果有需要,并且您经常使用 snap,那么链接 snap 的系统文件(/snap//var/snap//var/lib/snapd/)仍然是可行的。但是,冷启动时间会比使用 SSD 时更严重。

答案2

正如多次指出的那样,你的想法可能不会像你想象的那么有效……但是……它并不偏僻或不合逻辑。通常只是出于其他原因才这么做的。

(为你辩护)我使用的系统包含 elasticsearch 和数据库软件等,这些软件上不断积累了大量索引和日志。是的,处理这种情况的理想方法是负责任地处理日志或索引,但如果系统陷入错误状态,则无法弥补这一点。我还在一个 /home 有自己的分区的系统上工作,原因很简单,因为无法预测“用户”会释放什么破坏……所以是的,我们希望为这些分区(甚至是磁盘)单独设置一个分区,以免根磁盘面临填满和锁定生产机器的风险。

我认为你措辞的方式已经引起了一些人的警惕(你也必须意识到你不是唯一一个寻求信息并阅读这个问题/答案/评论的人)。但据我所知,你的目标只是充分利用 SSD 上有限的空间来运行你的操作系统,同时将你能利用的资源最大化地放在 HDD 上。如果这是真的,那肯定不是你的问题措辞 [目前] 所暗示的。(它还表明你可能还不太理解 /home 的概念)

因此,如果我的解释是正确的,那么您可以尝试我在评论中描述的方法。在安装过程中(当系统询问您希望如何配置安装时,选择“其他内容”):

只需在您的 SSD 上创建一个分区,并在那里指定您的“/”挂载点。

然后在硬盘上创建几个分区。我个人认为 /home、/usr、/bin、/sbin、/snap 和 /var 大约有 6 个分区。

这里我做了一些你想做的事情。我把“/”放在一个驱动器上的分区 (/dev/sdb1) 上,把 /home 放在另一个驱动器上的另一个分区 (/dev/mmcblk1p3) 上。然后开始为 /usr 创建另一个分区... 请注意,其中一些目录名称是预加载的选项,因此这意味着以这种方式工作。 在此处输入图片描述 (我的描述严格来说只是一个例子,为了说明可以使用多个驱动器,也为了说明下拉选择...我只是选择了我可以使用的分区...我知道布局没有意义)

这对你来说将是一次反复试验的过程。

如果您sudo du -hd 1 /在现有系统上执行此操作,您将了解目录文件大小的使用情况。然后,您可以使分区大小与您看到的大小成比例。现在您的大驱动器上有分区,所以我不会太担心它们的大小过大,再次,反复试验......(特别是如果您愿意给交换 6 Gigs!,我个人认为这太过分了)。您只需使用一些逻辑,知道整个系统通常存储在您之前安装的 20G 分区上。(......但我可以说我的 /snap 目录中有 9G)

我并不期望由此带来任何明显的性能提升……但这是需要您自己去弄清楚和试验的。我不会引导其他人采用这种设置……但在您(原帖作者)的情况下,如果您脑子里有逻辑并且想要测试它,那么这对您来说是一个很好的科学项目,希望您能从这些课程中受益。

相关内容