새로운 OpenBSD 커널을 구축한 후 install
커널의 타겟은 Makefile
다음을 수행합니다:
rm -f /obsd
ln /bsd /obsd
cp bsd /nbsd
mv /nbsd /bsd
처음 두 줄은 이전 백업 커널을 삭제 /obsd
하고 /obsd
현재 실행 중인 커널에 대한 하드 링크를 생성한다는 것을 알고 있습니다 /bsd
. 특히 실행 중인 커널은 전혀 이동되지 않습니다. 이것은 나에게 의미가 있습니다.
./bsd
/nbsd
그런데 새로 빌드된 커널을 먼저 로 이동 한 다음 이름을 로 바꾸는 목적은 무엇입니까 /bsd
? 왜 세 번째와 네 번째 행을 더 간단한 행으로 바꾸지 않겠습니까 cp bsd /bsd
?
이것이 중요한 경우: OpenBSD의 기본 파티셔닝 체계는 커널 빌드 트리를 루트 파일 시스템과 다른 파일 시스템(디스크 레이블)에 배치합니다.
답변1
makefile 레시피의 명령이 실패 상태를 반환하는 경우(명령 앞에 1이 오지 않는 한 -
) 레시피 실행이 중지됩니다. 인용한 레시피는 /bsd
명령이 성공한 경우에만 교체되도록 보장합니다 cp bsd /nbsd
. 파티션이 가득 차거나 inode가 충분하지 않으면 cp가 실패할 수 있습니다.