요약·해설과 원문, 전문 번역을 서로 분리했습니다. API 이름, symbol, source path는 원문 표기를 사용합니다.
1. 요약·해설
원문의 핵심 논리와 kernel programming 관점의 보충 설명입니다. 아래의 전문 번역과는 별도로 작성했습니다.
2. 영어 원문 전체
번역 기준이 된 Linux v6.18.37 원문입니다. 줄 번호는 이 버전의 파일 좌표입니다.
원문 전체 펼치기
#!/bin/sh
# set aoe to autoload by installing the
# aliases in /etc/modprobe.d/
f=/etc/modprobe.d/aoe.conf
if test ! -r $f || test ! -w $f; then
echo "cannot configure $f for module autoloading" 1>&2
exit 1
fi
grep major-152 $f >/dev/null
if [ $? = 1 ]; then
echo alias block-major-152 aoe >> $f
echo alias char-major-152 aoe >> $f
fi
3. 한국어 전문 번역
영어 원문의 문단 순서와 의미를 유지한 전체 번역입니다. 코드, 함수명, symbol과 URL은 원문 표기를 유지합니다.
목적과 실행 환경
1-4이 파일은 `/bin/sh`로 실행하는 셸 스크립트입니다. `/etc/modprobe.d/`에 AoE 모듈 별칭을 설치하여 블록 또는 문자 장치의 major 번호 152가 요청될 때 `aoe` 모듈이 자동으로 적재되게 합니다.
#!/bin/sh
# set aoe to autoload by installing the
# aliases in /etc/modprobe.d/
설정 파일 접근 검사
5-10변수 `f`를 `/etc/modprobe.d/aoe.conf`로 설정합니다. 해당 파일을 읽을 수 없거나 쓸 수 없으면 표준 오류에 자동 적재 설정이 불가능하다는 메시지를 출력하고 종료 상태 1로 끝냅니다. 따라서 이 스크립트는 설정 파일이 이미 존재하고 실행 사용자에게 읽기·쓰기 권한이 있다는 전제에서 동작합니다.
두 권한 중 하나라도 없으면 파일을 변경하지 않고 오류로 종료합니다.
f=/etc/modprobe.d/aoe.conf
if test ! -r $f || test ! -w $f; then
echo "cannot configure $f for module autoloading" 1>&2
exit 1
fi
major 152 별칭 추가
11-17`grep major-152 $f`의 출력은 `/dev/null`로 버리고 종료 상태만 확인합니다. 종료 상태가 1, 즉 `major-152` 문자열을 찾지 못한 경우 `block-major-152`와 `char-major-152`가 모두 `aoe` 모듈을 가리키도록 두 alias 줄을 설정 파일 끝에 추가합니다. 이미 문자열이 있으면 아무 줄도 추가하지 않습니다.
장치 종류별 major 152 요청을 같은 AoE 모듈에 연결합니다.
grep major-152 $f >/dev/null
if [ $? = 1 ]; then
echo alias block-major-152 aoe >> $f
echo alias char-major-152 aoe >> $f
fi
요약·해설
autoload.sh:1-17AoE 장치 major 번호 152의 블록·문자 장치 별칭을 modprobe 설정에 추가하여 `aoe` 모듈 자동 적재를 구성합니다.