为何要启用挂载的虚拟硬盘的 discard 功能?虚拟硬盘若是存在于SSD之上,就会在运行一段时间以后出现写入性能下降,因此有必要定期通过 fstrim 命令来优化。但是,如果你运行 fstrim -v / 命令,会出现以下错误:
fstrim: /: the discard operation is not supported
这是因为,VirtualBox 默认在将虚拟硬盘分配给虚拟机时没有使用 discard 选项,因此需要手动启用。先在该虚拟机中移除该虚拟硬盘,然后在终端中运行如下命令:
vboxmanage storageattach "虚拟机名称" --storagectl "SATA" --port 0 --discard on --type hdd --medium "虚拟硬盘路径.vdi"
有人会问,主机已经支持 discard 以及SSD的trim功能了,还要在虚拟机中启用trim吗?我认为是需要的,因为虚拟硬盘其实是主机上SSD中的一个文件,这个文件在主机 host 上是大小不变的,虚拟机 guest 中的删除操作对于 host 主机来说它根本不知道,只有虚拟机中的操作系统知道哪个文件删除了哪个文件创建了。
Leave a Reply