前言
最近入了N1的坑,刷了armbian系统,做emby服务器,然后就遇到了个大坑
我的移动硬盘是东芝的,自带休眠,一开始正常使用,过后就发现会掉盘
体现在ls命令上 ls: reading directory '.': Input/output error
使用lsblk命令发现sda会变sdb,sdc….
百度一圈,都是在/etc/fstab 加入uuid识别挂载,但是这样不管用啊,还是掉盘,一掉盘得手动重新挂载或者重启n1
暂时解决办法
由于不知道到底是什么原因导致的,只能写个小脚本解决,
思路:
每30秒ls检查一次,ls失败则自动挂载
添加uuid识别挂载:
lsblk查看分区信息
如图,我的是sda-sda1,挂载点是/mnt/sda1blkid查看分区uuid
如图,我硬盘标签的是LABEL="TOSHIBA"
uuid是UUID="D282A4C682A4B081"
格式是TYPE="ntfs"
在fstab添加uuid识别挂载
编辑/etc/fstab
vi编辑或者winscp登陆n1直接编辑文件
最后一行加入uuid= /mnt/sda1 auto defaults 0 0
保存后执行mount -a
制作shell脚本自动检测掉盘重新挂载
检测脚本
automount.sh ->不会用的可以创建txt文本然后修改为.sh,再用winscp上传至/home下1
2
3
4
5
6
7
8
if ls '/mnt/sda1' 2>&1
then
echo "mounted"
else
echo "not mounted"
mount -a
fi每30秒执行
由于cron定时任务最低1分钟执行,所以得再写一个脚本停顿30秒再执行
keep.sh1
2
3
4
5
6
date +'%Y-%m-%d %H:%M:%S'
/home/automount.sh
sleep 30
date +'%Y-%m-%d %H:%M:%S'
/home/automount.sh
上面两个脚本都放在/home下
赋予权限
1
2chmod 777 -R /home/automount.sh
chmod 777 -R /home/keep.sh添加定时任务
执行crontab -e
1
2* * * * * /home/keep.sh >> /home/log.txt
0 0 12 * * ? /home/autoremove.sh如果不想保留日志,用下面的写法
1
* * * * * /home/keep.sh
完成后执行
crontab -l
可以查看定时任务
ps
用这种方法我的硬盘由于是自带休眠的,所以依旧能正常休眠
但是
过段时间它会被ls指令唤醒,只是唤醒后不会转,只有指示灯亮,硬盘应该不会由过多磨损