程序员计算机的分区

程序员计算机的分区

我有一台笔记本电脑,操作系统为 Ubuntu 22.04.2 LTS,配备 130 GB SSD 和 1 TB HDD 存储。我正在寻找分区来有效地加速我的笔记本电脑。我主要使用笔记本电脑使用 Python 和 C++(视觉计算)进行编程,此外还进行一些文字处理和上网。更系统地说,我想我的东西可以分为以下几类:

  • IDE
  • 编译库
  • 其他低级编程实用程序
  • 编程项目
  • 码头工人
  • 图像或数据帧等数据
  • pdf 和 libreoffice 文件
  • 网络浏览器

我应该如何组织笔记本电脑的分区?

我想到了以下几点

SDD 上的分区

  1. 开机
  2. 积极使用编译库、编程项目、IDE 和 Docker
  3. 积极使用的数据

HDD 上的分区

  1. /home 包含 pdf 和 libreoffice 文件
  2. 其他不需要快速运行的应用程序,例如 libreoffice 和 firefox
  3. 不积极使用的库和数据

这样的划分有意义吗?

答案1

我正在寻找分区来有效地加速我的笔记本电脑。

分区本身并不会使任何东西变得更快。

除了启动所需的不可避免的分区之外,没有任何理由使用分区来管理数据 - 对于您实际想要实现的目标来说,它们是不必要的严格复杂化:在 SSD 和硬盘驱动器上存储一些数据,以某种方式反映您的用例。

这样的划分有意义吗?

不,可悲的是。

您的用例描述了三种数据:

  1. 启动所需的数据
  2. 需要快速且频繁访问的数据
  3. 不经常访问的数据

一般来说,您无法仅根据位置来判断哪些系统库属于第 2 组或第 3 组 - 您的编译器和您使用的所有库与您不经常使用的程序和库位于完全相同的位置。

因此,没有分区/卷管理方案帮助你!

首先:我不知道你的预算。但是:一个 1 TB SATA SSD 的成本约为 50 {€,$}(SATA,速度更快的 M.2/NVMe SSD 通常价格大致相同),512 GB 的价格为 25 欧元。因此,也许这个问题实际上可以通过花钱解决这个问题并用更大的SSD替换你的SSD,并将你的HDD减少为存储猫的图片来更好地解决;或者将您的 HDD 替换为另一块 SSD,并将两个带有 LVM 的 SSD 用作带条带化的大型 SSD(执行不是忘记定期进行备份)。
如今,硬盘驱动器和笔记本电脑是一种罕见的组合——无论是出于功率还是可靠性方面的原因,甚至不考虑速度方面。

现在,如果您的 SSD 已经相当快了(与硬盘驱动器的速度相比),并且您没有预算购买另一块 SSD:

您可能希望将 SSD 设置为缓存在较慢但较大的硬盘前面。 Linux 可以做到这一点,开箱即用:bcache是一种可以使用快速块设备的机制(例如,SSD 上四个分区中的最后一个,第一个仍然是/boot/efivfat/uefisys,第二个通常是/boot 和第三个是交换/休眠数据,您在笔记本电脑上肯定需要它)来“缓冲”即将写入较慢 HDD 的数据,并保留经常读取的数据,这样它就不会每次都从硬盘加载。

这个想法是,你让系统而不是在哪个目录中(/home、/usr/lib、/home/oldprojects 或其他目录)检测并管理自身哪些数据是经常需要的。

然后,在“加速”的块设备上,您将不是进行分区(没有分区的理由),您只需设置一个 LVM 物理卷,并在其上设置一个 LVM 卷组。您也可以只在上面有一个分区,用于存储所有数据(除 /boot 之外),因为将数据放入不同的文件系统主要用于块设备备份目的,并且现在对速度没有明显的优势。然而,使(缓存的)系统成为 LVM 物理卷意味着更大的灵活性,而无需牺牲性能。我强烈推荐它,普遍。您将不会错过不再需要处理分区的情况:)

因此,与本指南中提出的方案类似,安装支持 bcache 的 Ubuntu 20.04(快照:

  • 让SSD成为/dev/ssd,有分区的/dev/ssd1, ssd2, …, ssdN

  • 让硬盘成为/dev/hdd

  • 固态硬盘:

    • /dev/ssd1/boot/efi,VFAT,1GB 用于 UEFI(对于这个来说足够大了
    • /dev/ssd2: /boot, ext4, 4GB 再也不用担心这个问题
    • /dev/ssd3:交换分区,交换区,2×RAM大小,用于休眠
    • /dev/ssd4:缓存/dev/bcache0,占用 SSD 的其余部分
  • 硬盘

    • /dev/hdd1/dev/bcache0:整个磁盘的后备存储
  • /dev/bcache0:LVM物理卷(新卷组中只有一个,暂且称之为vg0

  • /vg0:包含所有数据的 LVM 卷组

    • /dev/vg0/root:系统音量/; ext4或XFS(或任何你喜欢的),无论你需要GB(可以在系统稍后运行时轻松增长,可以与整个硬盘驱动器一样大)

这看起来有点复杂,但实际上,您需要通过该bcache层才能使用 SSD 分区作为硬盘驱动器上存储内容的缓存,而 LVM 卷组只是为了不让您陷入困境。稍后或在备份期间或更换故障硬盘时。

上面链接的指南说(我相信这仍然是正确的)Ubuntu 在安装过程中需要进行一些欺骗,以便bcache在其启动映像中包含对 的支持。但它确实看起来相当良性。

相关内容