无需重启重新挂载文件系统
通常修改Linux文件系统挂载配置 /etc/fstab
会需要重启系统,但是实际上有一个简单的方法可以重新挂载所有 /etc/fstab
配置中的分区而无需重启系统:
mount -a
这个简单的命令会重新挂载分区,但是对于 noauto
选项无效。
举例,在 Linux固态驱动器(SSD) ,需要激活SSD上文件系统的 discard
选项
默认的
/etc/fstab
配置:/dev/disk/by-uuid/c22eff09-c2d2-45b4-82db-1ea988ca88ef / ext4 defaults 0 1
检查 mount 状态:
mount
输出显示:
/dev/sda2 on / type ext4 (rw,relatime)
检查TRIM:
lsblk --discard
显示:
NAME DISC-ALN DISC-GRAN DISC-MAX DISC-ZERO
sda 0 512B 2G 0
├─sda1 0 512B 2G 0
└─sda2 0 512B 2G 0
修改
/etc/fstab
添加discard
选项:/dev/disk/by-uuid/c22eff09-c2d2-45b4-82db-1ea988ca88ef / ext4 defaults,discard 0 1
然后执行
mount -a
命令会看到并没有任何输出信息,那么到底有没有生效呢?再次执行
mount
查看输出:/dev/sda2 on / type ext4 (rw,relatime)
果然没有生效
那么我们尝试:
mount -o remount -a
就会发现,原来对于已经挂载的根文件系统,默认是不能重新挂载的 mount -a
实际上是先卸载再挂载,所以提示:
mount: ???: operation failed: Device or resource busy.
mount: ???: operation failed: Device or resource busy.
...
在线添加mount参数
有没有办法即时生效呢?毕竟我们只是增加一个挂载参数而不是删除参数。方法是明确添加参数:
mount -o remount,discard /
此时没有任何信息输出,但是通过 mount
命令检查,可以看到 discard
参数添加:
/dev/sda2 on / type ext4 (rw,relatime,discard)
备注
上述在文件系统中添加 discard
将激活 持续性TRIM ,对于一些SATA设备可能会触发冻结问题(不支持queued TRIM),所以发行版通常不建议使用持续性TRIM。
在线删除mount参数
不需要的挂载参数可以反向去除,例如,上面的
discard
参数可以用nodiscard
来消除:mount -o remount,nodiscard /
然后再用 mount
命令检查可以看到 discard
参数消除:
/dev/sda2 on / type ext4 (rw,relatime)