记一次服务器启动修复 - /etc/fstab错误至系统无法启动
- 更新:2018-11-24 23:36:59
- 首发:2018-11-24 23:35:41
- 互联网
- 14999
利用RK3399作为ARM微型服务器是非常有趣的事情。然而总有一些意外来得令人措手不及。
事情是这样的。我在服务器中挂载了三块SSD硬盘,其中两块是放于USB硬盘盒,通过Type-C和USB3.0接口连接。
开机自动挂载
我们先看一下开机自动挂载方案。
查询分区的Block ID:
blkid /dev/sda1
/dev/sda1: UUID="7f50f85e-783c-4d94-be37-d2c662504e58" TYPE="ext4"
然后把 Block ID 添加到/etc/fstab
文件中,这是我的fstab
文件:
UUID=a848d601-91ac-4b5c-8ce3-ffef674f5dd5 /nvme ext4 defaults 0 0
UUID=88eb8df2-1a8f-4f38-acc9-566deb1c8f40 /tf ext4 defaults 0 0
UUID=7f50f85e-783c-4d94-be37-d2c662504e58 /ssd0 ext4 defaults 0 0
UUID=e66307fc-2c33-406b-ae60-b27e2344d02a /ssd1 ext4 defaults 0 0
事情是这样开始的
我在检查硬盘状态的时候,发现其中一块硬盘没有进行4k对齐。然后我对该硬盘进行了重新分区。结果服务器就卡死了!?
当我重启服务器后,一直连不上SSH。
插入HDMI,显示器一片黑暗!
如果是X86架构的服务器,挂载/etc/fstab
失败后会进入高级模式,可以通过接入显示器解决,但是ARM架构(或者说我这块板子)的系统并没有提供这样的后悔药。
x86系统可以进入光盘Linux,然后挂载硬盘改写/etc/fstab
文件。但是我的系统烧写在eMMC,即便能在SD卡刷机,通过SD卡引导系统并挂载eMMC硬盘也是非常有挑战的事情。
重装服务器是非常耗时的,需要进行非常多的软件配置。非迫不得已,我不会重新刷机。
事情是这样解决的
当我一筹莫展时,突然想到我的剪贴板中存有分区的Block ID
数据。数据是UUID格式。
我将近期剪贴板中所有的UUID找到:
e66307fc-2c33-406b-ae60-b27e2344d02a
cfcaccd9-6ca7-406c-821c-affb331bda6d
9e669a85-35ce-487d-8cd9-09d66ddebe31
7f50f85e-783c-4d94-be37-d2c662504e58
还好,只有四个。
我将SSD移动硬盘接入到树莓派,通过树莓派重新进行分区。
将UUID强行写入到分区:
tune2fs -U 7f50f85e-783c-4d94-be37-d2c662504e58 /dev/sdb1
看来,我的运气不佳,我试了前三个都没能启动服务器。
当我万念俱灰之时,淡定写入最后一个UUID。
ping 192.168.31.63
PING 192.168.31.63 (192.168.31.63): 56 data bytes
...
ping: sendto: Host is down
Request timeout for icmp_seq 117
Request timeout for icmp_seq 118
64 bytes from 192.168.31.63: icmp_seq=119 ttl=64 time=305.276 ms
64 bytes from 192.168.31.63: icmp_seq=120 ttl=64 time=147.118 ms
64 bytes from 192.168.31.63: icmp_seq=121 ttl=64 time=67.426 ms
...
真是不幸中的万幸,服务器正常启动!
除特别注明外,本站所有文章均为原创。原创文章均已备案且受著作权保护,未经作者书面授权,请勿转载。
打赏
交流区
暂无内容
感谢回复! Clang 在生成时沿用了 GCC 的版本号标识,我是不是可以理解为Clang 18.1.4生成时使用的就是GCC4.8,所以我后续使用gcc 9.4
gcov
就会有不兼容的问题抱歉,这块我也不太清楚,尝试寻求AI的帮助吧。
我在这个过程中遇到了各种问题- -,现在在UDC core: g_serial: couldn't find an available UDC卡住了,请问大佬有什么解决方案吗,还是说我前置的设置就错了呢,> 这个需求很特殊。是可以的,但是比较困难,需要修改驱动配置。
好思路呀!!
关于hex编辑器,网上没找到特别好用的(小白没办法),最后在vscode上扩展一搜hex,第一个安装一下就可以用vscode进行hex编译了