강좌 & 팁
타겟 보드의 app 영역은 nand 플래쉬영역을 마운트 해 놓은 곳입니다. 그렇기 때문에 app 폴더에서 임의의 파일을
생성 하거나 수정 하면 리부팅 후에도 그대로 있어야 합니다.
그러나, 아래와 같이 /app 폴더에 test 라는 파일을 만들어 내용을 채워 넣고, 리셋 버튼을 눌러 리부팅을 했더니
내용이 사라집니다.
처음 생성
root@falinux:~# cd /app |
리셋 후 다시 확인
왜 이런 현상이 발생 할까요?
바로 파일버퍼 때문 입니다.
파일버퍼라는건 시스템애의 변경된 파일이 있을경우 빈번한 디스크의 i/o 발생을 막기 위해서 일정한 사이즈의 버퍼에 변경된
부분을 저장하고 있다가 일정한 사이즈가 되거나 시간이 되면 실제 디스크에 저장하는 것이지요.
다시말해 위에서 실험한 test 라는 파일은 아직 nand flash 에 저장이 되지 않은 상태인데. 리셋 버튼을 눌러 재부팅 하는
바람에 사라진 것입니다.
그럼 어떻게 해야 없어지지 않을까요?
이때 사용 하는 것이 바로 sync 명령어 입니다.
sync 명령어는 시스템내의 파일버퍼를 실제 파일시스템에 적용시켜 디스크에 저장하도록 하는 명령어 입니다.
이 sync 명령은 reboot 같은 명령을 치면 자동으로 호출되기 때문에 위와 같은 경우에서 리셋 버튼을 누르지 않고
reboot 명령을 통해 재부팅 했다면 없어지지 않았을 것입니다.
이제 리셋버튼을 눌렀더니 파일이 사라졌다는 이해 할 수 없는 현상은 없어 졌습니다. ~
|