目前网上很多与 SSD 相关的说明都说你应该在你的 GRUB_CMDLINE_LINUX 中添加allow- discards和 root_trim=yes。我还没有找到一个说明为什么你应该这样做,即这些参数到底做了什么(如果有的话!)。关于这个的文档在哪里,它对这两个参数的用途有什么说明?
从内核 3.1 开始,dm-crypt 设备可选择(不是默认情况下)支持块丢弃 (TRIM) 命令。如果要启用此操作,则必须在每次激活时使用 --allow-discards 手动启用它
Run Code Online (Sandbox Code Playgroud)cryptsetup luksOpen --allow-discards /dev/sdb test_disk
但是传递给内核时是一样的吗(通过 GRUB_CMDLINE_LINUX)?
编辑: Kernel.org 的内核参数列表(目前至少是 2013 年 1 月)没有这些选项中的任何一个。
根据我的理解,引导参数root_trim=yes是 Gentoo 特定的。其中genkernel有一个脚本,用于查找参数并--allow-discards使用 cryptsetup设置选项(请参阅他们的git 存储库)。此外,我发现许多 Ubuntu 或 Debian 用户的报告说它在没有root_trim参数的情况下工作。我在 Ubuntusupdate-initramfs脚本中也没有发现任何行。
所以总而言之,它不是引导参数,而是cryptsetup. 的文档--allow-discards可以在cryptsetup(8)的联机帮助页中找到:
--allow-discards
允许对设备使用丢弃 (TRIM) 请求。此选项仅与create、luksOpen或loopaesOpen 相关。警告:在启用此选项之前,请仔细评估特定的安全风险。例如,如果可以在设备上轻松找到丢弃的块,则允许在加密设备上丢弃可能会导致有关密文设备的信息(文件系统类型、已用空间等)泄漏。
需要内核版本 3.1 或更高版本。对于旧版本,该选项被忽略。
基于这篇关于 TRIM & dm-crypt 的博客,TRIM 是一种操作,其中上层(例如文件系统)通知设备哪些扇区不再使用(不再包含有效数据)并且设备不需要保留该数据内容.
在 Linux 术语中,此操作称为丢弃。在 SCSI 世界中,它被称为 UNMAP 命令。
丢弃操作可以用于两个目的:thin Provisioning(通知数据区可以返回到分配池)和用于SSD操作优化。
丢弃对于 SSD 优化最有用,因为内部架构使用比扇区更大的块,并且必须在执行写入操作之前擦除这些块。关于不需要保存数据的扇区的信息非常有用,因为文件系统将能够更有效地组织块,从而最大限度地减少数据碎片并增加磁盘寿命。
| 归档时间: |
|
| 查看次数: |
7568 次 |
| 最近记录: |