关于在rc.local中添加命令导致Linux系统无法开机的解决方案

在尝试将同步时间的命令加入Linux的/etc/rc.local以实现开机自动执行时,出现了系统无法正常开机的问题。解决方案是通过挂载SD卡到另一台Linux系统,删除rc.local中的错误命令。此事件提醒我们在执行开机命令前要考虑其可能对系统的影响。
摘要由CSDN通过智能技术生成

关于在rc.local中添加命令导致Linux系统无法开机的解决方案

1、问题描述

  由于一次不正确的操作导致Linux系统出现异常,每次开机编译程序时都提醒Makefile文件不同步,需要在命令行中手动同步一下时间。每次开机都需要执行一条相同的语句,这个操作让我觉得十分麻烦,想到Linux系统的 /etc/rc.local 文件中的命令可以开机自动执行,于是我就想到把我需要执行的命令放到这个文件中,这样每次开机就不需要我手动同步了。
  结果这条命令在开机时同步了系统时间,打乱了正常开机时的一些设置,导致系统执行完命令以后,就自动重启了,致使Linux系统无法开机。

2、解决方案

  无法开机时因为 rc.local 中异常命令的存在,只要能进入系统文件中,将这条命令删除了就可以解决这个问题。网上的一些方法是通过快捷键,在开机前进入终端去修改文件,但是我使用的是NVIDIA Jetson Nano运行的ARM版Ubuntu系统,尝试此方法无效。
  既然正常开机进不了系统,那只能采取其它方式了。Jetson Nano的系统是烧录在SD卡上的,那么是否可以将SD卡挂载到另一台Linux系统中,在其他系统上来修改文件呢?将SD卡拔下,放入读卡器,插到PC的Linux系统中,可以看到Linux系统能够识别到SD卡中的文件,然后修改/etc/rc.local文件,成功解决问题!

3、反思

  在rc.local中执行命令前,要思考这个命令会不会影响系统开机,否则可能就会出现我遇到的这个问题。
  本问题中,我的Linux系统固化在SD卡上,可以直接取下连接到PC上,如果是固化在EMMC中的系统,就需要使用另一台Linux设备来挂载该系统了,挂载系统的流程为:

  1. 使用数据线连接设备;
  2. 使用 lsblk 命令查询连接设备的地址,我的为/dev/sdb1;
  3. sudo mkdir /mnt/usb,创建一个目录;
  4. sudo mount /dev/sdb1 /mnt/usb,挂载系统;
  5. 挂载成功以后可以在 /mnt/usb 目录下看到被挂载系统的文件,修改要改动的文件;
  6. sudo umount /dev/sdb1,取消挂载。
  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值