我的开发板是imx6核心板。昨天移植ssh服务,服务是移植成功了,可是开机不能自启动。于是添加自启动,开始修改/etc/init.d/rcS(该文件夹下面的以rc开头文件,不一定是rcS文件)文件,可是每次修改该文件之后,系统重启之后,原来修改的内容就被覆盖了。于是各种修改,还是不行。后来想想修改之后执行一下sync命令吧,执行完之后就可以了。自己一时大意了,把这条命令给忘了,走了不少弯路。
原来linux系统为了提高读写磁盘的效率,会先将数据放在一块buffer中。在写磁盘时并不是立即将数据写到磁盘中,而是先写入这块buffer中了。此时如果重启系统,就可能造成数据丢失。sync命令用来flush文件系统buffer,这样数据才会真正的写到磁盘中,并且buffer才能够释放出来,flush就是用来清空buffer。sync命令会强制将数据写入磁盘中,并释放该数据对应的buffer,所以常常会在写磁盘后输入sync命令来将数据真正的写入磁盘。