故障描述
前段时间跑了台Ubuntu 18.04的虚机用来运行flask应用,今天早上突然应用打不开了
按照修电脑三大秘籍重启,重装,换电脑
第一式重启了一下系统,结果直接给怼到initramfs
里面了
手动运行fsck
校验了一遍磁盘,蹦了一堆fix
以后系统是起来了
重新启动supervisord
也正常了,然鹅!过了没俩小时,服务又tm挂了,查看一下supervisord
的日志,默认是放在/tmp
里面的,执行tail
结果一按tab键
居然就报错:
-bash: 无法为立即文档创建临时文件: 只读文件系统
排雷过程
先常规操作查看一下系统资源使用情况
lpwm@lpwm-virtual-machine:/tmp$ free -h
总计 已用 空闲 共享 缓冲/缓存 可用
内存: 15G 3.1G 11G 9.3M 1.2G 12G
交换: 2.0G 0B 2.0G
lpwm@lpwm-virtual-machine:/tmp$ df -h
文件系统 容量 已用 可用 已用% 挂载点
udev 7.8G 0 7.8G 0% /dev
tmpfs 1.6G 1.4M 1.6G 1% /run
/dev/sda1 492G 9.8G 457G 3% /
tmpfs 7.9G 7.8M 7.9G 1% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 7.9G 0 7.9G 0% /sys/fs/cgroup
/dev/loop2 1.0M 1.0M 0 100% /snap/gnome-logs/81
/dev/loop0 157M 157M 0 100% /snap/gnome-3-28-1804/110
/dev/loop1 3.8M 3.8M 0 100% /snap/gnome-system-monitor/123
/dev/loop3 92M 92M 0 100% /snap/core/8689
/dev/loop5 15M 15M 0 100% /snap/gnome-characters/375
/dev/loop4 45M 45M 0 100% /snap/gtk-common-themes/1440
/dev/loop6 45M 45M 0 100% /snap/gtk-common-themes/1353
/dev/loop7 4.3M 4.3M 0 100% /snap/gnome-calculator/544
/dev/loop8 15M 15M 0 100% /snap/gnome-characters/399
/dev/loop10 1.0M 1.0M 0 100% /snap/gnome-logs/61
/dev/loop9 4.2M 4.2M 0 100% /snap/gnome-calculator/406
/dev/loop11 55M 55M 0 100% /snap/core18/1668
/dev/loop12 161M 161M 0 100% /snap/gnome-3-28-1804/116
/dev/loop14 3.8M 3.8M 0 100% /snap/gnome-system-monitor/127
/dev/loop13 92M 92M 0 100% /snap/core/8592
/dev/loop15 55M 55M 0 100% /snap/core18/1650
tmpfs 1.6G 28K 1.6G 1% /run/user/121
tmpfs 1.6G 0 1.6G 0% /run/user/1000
内存正常,磁盘空间貌似也正常,看网上有说是/tmp
空间满了会出现这样的问题,不过df
查看的结果里面tmpfs
才用了1.4M,一共1.6G的好吧…
检查一下挂载点的状态:
lpwm@lpwm-virtual-machine:~/.local/log$ mount |grep dev/sd
/dev/sda1 on / type ext4 (ro,relatime,errors=remount-ro)
果然!/dev/sda1
挂载成ro
只读模式了!继续检查/etc/fstab
UUID=c65f7898-18ba-4527-ba70-ea3f5a287ed1 / ext4 errors=remount-ro 0 1
/swapfile none swap sw 0 0
这里原来就有这个吗?看了下另外一台也是Ubuntu 18.04的虚机,人家的/etc/fstab
是长这样的:
UUID=91cf5b91-62ec-4aa6-9885-55f8d061bd88 / ext4 defaults 0 0
/swap.img none swap sw 0 0
看来应该是和开头启动到initramfs
有关系了,系统认为磁盘存在问题,所以自动修改了挂载点/
的配置,变成了只读的.再重启一下试试,结果又到initramfs
里面了,擦!难道虚机的磁盘真的有问题么?还是运行fsck /dev/sda1
然后一路fix后再重启进到系统里面了
看来可能磁盘确实还有问题,接下来用LIVE系统盘引导开机后再用fsck
修复磁盘试试
居然没毛病…那只好手动把fstab
里面的errors=remount-ro
改成defaults
再次重启,正常进系统,没有出现错误提示,检查挂载点
lpwm@lpwm-virtual-machine:~$ mount |grep sda1
/dev/sda1 on / type ext4 (rw,relatime)
重新启动supervisord
lpwm@lpwm-virtual-machine:~$ supervisord
lpwm@lpwm-virtual-machine:~$ supervisorctl
dingding RUNNING pid 1959, uptime 0:00:03
ytb_fetcher RUNNING pid 1960, uptime 0:00:03
ytb_flask RUNNING pid 1961, uptime 0:00:03
检查日志和按tab键
都正常了.
至此,应该算是处理完成了,观察运行一段时间再说结论.