使用 tmpfs
挂载关键命令
这个方法有以下优点:
-
简单直接:实现起来相对简单,不需要修改系统的核心组件。
-
可靠性高:因为命令和依赖项都加载在内存中,即使磁盘完全不可用,这些命令仍然可以执行。
-
低风险:相比修改
initramfs
或使用kexec
,这种方法对系统的其他部分影响最小。 -
易于管理:您可以轻松地更新或修改内存中的命令,而不需要重新配置整个系统。
-
灵活性:除了
reboot
命令,您还可以添加其他可能需要的紧急命令。
实施这个方法的步骤:
- 创建一个挂载点并设置
tmpfs
:
sudo mkdir /mnt/emergency
echo "tmpfs /mnt/emergency tmpfs defaults,size=50M 0 0" | sudo tee -a /etc/fstab
sudo mount -a
- 复制
reboot
命令及其依赖项到tmpfs
:
sudo cp /sbin/reboot /mnt/emergency/
sudo cp $(ldd /sbin/reboot | awk '{print $3}' | grep -v '^$') /mnt/emergency/
- 创建一个别名或脚本来使用这个内存中的
reboot
命令:
echo 'alias emergency_reboot="sudo LD_LIBRARY_PATH=/mnt/emergency /mnt/emergency/reboot -f"' >> ~/.bashrc
source ~/.bashrc
使用时,只需在终端中输入 emergency_reboot
即可触发重启,即使系统盘已经不可用。
注意事项:
- 确保在系统正常时测试这个命令,以验证其有效性。
- 考虑添加一些基本的安全检查,以防止意外触发重启。
- 记得定期检查和更新这个设置,特别是在系统更新后。
这个方法提供了一个很好的平衡:它足够强大以应对SSD掉盘的情况,同时又不会过度干扰系统的正常运行。