리눅스 부팅시 mount partition 체크
글쓴이: clean11 / 작성시간: 목, 2018/01/25 - 10:59오후
임베디드 시스템에서 특정 변수를 1 or 2로 setting하고 재부팅하면 아래와 같이 동작하도록 하고 싶은데요.
부팅초반에 변수를 읽어야되는데, 어떤 영역에 저장해야될지 고민이 많네요.
혹시 방법을 아시거나 고민해보신분 있으면 답변부탁드릴께요.
if(variable == 1) { mount a partition } else if(variable == 2) { mount b partition }
Forums:
부트로더의 NVRAM 영역에 저장해 두고 커널의
부트로더의 NVRAM 영역에 저장해 두고 커널의 argument로 넘긴 다음, /proc/cmdline을 읽어서 처리하면 됩니다.
XXX=YYY 꼴로 넘긴 argument 중에서
XXX=YYY 꼴로 넘긴 argument 중에서 커널의 것이 아니고 '.' 문자도 포함되어 있지 않다면, 환경 변수로 init 에게 전달됩니다.
http://elixir.free-electrons.com/linux/v4.14.15/source/init/main.c#L282
따라서, init 이 그걸 없애던가 다른 걸로 바꾸지 않는다면 init 에서 fork 된 자식 프로세스들의 환경 변수에도 전달됩니다.
kernel 이 usermode_helper 로 직접 만든 프로세스를 제외하면, 모든 프로세스는 init 의 자식 프로세스입니다.
댓글 달기