BOOT(8)

명칭
boot - 시스템립 인상시의 수속

해설
전원단과 크래쉬로부터의 회복. 통상, 전원 복구시와 크래쉬 발생 후에는, 시스템은 자동적으로 리부트해 차면, 시스템은 multiuser·모드로 이행합니다.

콜드 스타트. 대다수의 i386 PC (은)는, 우선 플로피 드라이브 0 (드라이브 A: 라고도 한다)으로부터의 부트를 시도해 거기에 실패하면(자), 하드 디스크 드라이브 0 (드라이브 C: 혹은 BIOS 의 드라이브 0x80 라고도 한다) (으)로부터 부트 하려고 합니다. 몇개의 BIOS 에서는, 이 디폴트의 순서를 바꾸거나 CD-ROM 디바이스를 부트 디바이스로서 포함할 수가 있습니다.

디폴트에서는 3 단계의 bootstrap가 사용되어 부트 블록 (bootstrap의 제 1 및 제 2 단계)으로부터, 이것과는 다른 제 3 단계의 bootstrap 프로그램 loader(8) (으)로 자동적으로 제어가 이행 됩니다. 이 제 3 단계에서는, 부트 처리에 대해, 부트 블록에 대해 가능한 일보다 세련된 제어를 제공합니다. 부트 블록에는, 디스크나 슬라이스가 한정된 공간 밖에 주어지지 않는다고 하는 제약이 있습니다.

그렇지만, 제 3 단계를 전혀 사용하지 않고 끝낼 수도 있습니다. 이와 같이 하려면 , 부트 블록 파라미터 파일 /boot.config 에 두어 커널명을 지정하는지, -n 무지정시에는 loader(8) 하지만 기동되기 전의 짧은 대기 시간 (캐릭터 -, \, |, / 중 한쪽이 표시되고 있는 동안)에 키를 칩니다. 제 3 단계를 로드할 수 없는 경우에도, 제 2 단계에 있어 부트가 시도됩니다.

본서브 섹션의 나머지의 부분에서는, 부트 블록에 대한 보고 취급합니다. loader(8) 프로그램의 문서는 따로 있습니다.

부트 블록이 로드 된 후에, 다음과 같은 prompt가 나타납니다.

    >> FreeBSD/i386 BOOT
    Default: 0:ad(0, a) /kernel
    boot:

자동 부트에 대해서는, 플로피 혹은 하드 디스크의 파티션 ‘a’ (으)로부터 /kernel (을)를 로드하려고 합니다. 이 동작은 ‘boot:’ 그렇다고 하는 prompt가 나와 있는 동안이라면, 키보드로부터 적당한 캐릭터를 입력한다 일로 중단할 수 있습니다. 이하에 주는 것 같은 입력은 부트 동작에 대한 지시와 해 접수됩니다.

?   부트 파일을 찾을 때의 힌트로서 디폴트의 부트 디바이스의 루트 디렉토리에 있는 파일의 이름을 표시합니다. (패스의 마지막 부분에? (을)를 지정할 수도 있습니다. 이 경우, 임의의 서브 디렉토리의 일람이 됩니다. )

    bios_drive:interface(unit,[slice,]part) filename [-aCcDdghmnPprsv] 부트 파일과 부트 플래그를 지정합니다.

    bios_drive
        BIOS 에 의해 인식되는 드라이브 번호입니다. 1 번째의 드라이브에 대해서는 0, 2 번째의 드라이브에 대해서는 1, 등입니다.

    interface
        거기로부터 부트 하는 콘트롤러의 타입입니다. 부트 파일의 이미지 (을)를 로드하는데는 BIOS 의 기능을 사용하므로, 그 콘트롤러에 대 BIOS 서포트가 필요한 것에 주의해 주세요.

        서포트되고 있는 인터페이스를 이하에 줍니다.

        ad  WD100[2367] 으로 그 호환 콘트롤러상의 ST506, IDE, ESDI, RLL 디스크
        fd  5 1/4" 또는 3 1/2" 고밀도 플로피
        da  서포트되고 있는 SCSI 콘트롤러상의 SCSI 디스크

    unit
        사용되고 있는 인터페이스상의 드라이브의 유니트 번호입니다. 1 개(살) 눈의 드라이브에 대해서는 0, 2 번째의 드라이브에 대해서는 1, 등입니다.

    [slice,]part
        디스크상의 BSD 부분내의 파티션 캐릭터입니다. 자세하게는 disklabel(8) (을)를 참조해 주세요. 관례로서 파티션 ‘a’ 만이 부트 가능한 이미지를 포함하고 있습니다. 디스크에 슬라이스 (“fdisk 파티션”) 인가 설치되고 있었을 경우, 임의의 slice (1 이 최초의 슬라이스로 2 가 2 번째의 슬라이스등이 됩니다) (으)로부터 부트 가능하고, 디폴트 (무지정시)는 액티브 슬라이스로부터, 이것이 없는 경우는 최초의 FreeBSD 슬라이스로부터의 부트가 됩니다. 지정되었다 slice 하지만 0 의 경우, 최초의 FreeBSD 슬라이스 “(호환” 슬라이스라고도 불립니다)로부터 부트 합니다.

    filename
        부트 파일의 (지정된 파티션의 루트 디렉토리로부터의 상대) 패스명입니다. 디폴트에서는 /kernel 됩니다. 기호 연결은 서포트되고 있지 않습니다 (하드 링크 (은)는 사용할 수 있습니다).

    -aCcDdghmnPprsv
        부트 플래그입니다.

        -a  커널 초기화중에, 루트 파일 시스템으로서 mount 되는 디바이스를 물어 오도록(듯이) 합니다.
        -C  CDROM 로부터 부트 합니다.
        -c  로드한 커널에 대해, 하드웨어의 파라미터를 변경하기 위해(때문에), UserConfig 를 실행합니다. USERCONFIG, INTRO_USERCONFIG, VISUAL_USERCONFIG 의 몇개의 옵션 첨부로 커널이 구축되었을 경우, 스크립트중에 quit 명령이 있었다고 해도, UserConfig 중에 머무릅니다.
        -D  싱글과 듀얼의 콘솔 설정을 바꿉니다. 싱글 설정에서는, 아래와 같은 -h 옵션 상태에 의해, 콘솔은 내부 디스플레이나 시리얼 포트의 어느 쪽인가에 됩니다. 듀얼 콘솔 설정에서는, 내부 디스플레이 (와)과 시리얼 포트의 양쪽 모두가, -h 옵션 상태에 의하지 않고, 동시에 콘솔이 됩니다. 그러나, 듀얼 콘솔 설정은, 부트 prompt의 사이에서만 효과를 가지지 않습니다. 일단 커널이 로드 되면(자), -h 옵션에 의해 지정된 콘솔이 유일한 콘솔이 됩니다.
        -d  커널의 초기화를 할 수 있는 한 빠른 단계에서 DDB 커넬 디버거 ( ddb(4) (을)를 참조) 에 들어갑니다.
        -g  GDB 리모트데밧깅프로트콜을 사용합니다.
        -h  내부 콘솔과 시리얼 콘솔의 변환을 실시합니다. 이것을 사용해 콘솔 디바이스를 변경할 수 있습니다. 예를 들면, 내부 콘솔로부터 부트 해 경우, 커널이 콘솔 디바이스로서 시리얼 포트를 사용할게 게 하기 위한(해), -h 옵션을 사용할 수 있습니다. 반대로, 시리얼 포트로부터 부트 했을 경우, 커널이 콘솔로서 대신에 내부 디스플레이를 사용야 게 모아 두어 이 옵션을 사용할 수 있습니다. 시리얼 포트 드라이버 sio(4) 에는, 이 옵션에 우선하는 플래그가 있습니다. 그 플래그가 설정되면(자), 여기서 기술했다 -h 옵션 (와)는 관계없는 것으로, 시리얼 포트가 항상 콘솔로서 사용됩니다. 한층 더 상세한 것에 대하여는, 메뉴얼 페이지 sio(4) (을)를 참조해 주세요.
        -m  콘솔을 입다물게 합니다.
        -n  loader(8) 기동전의, 키 입력에 의한 부트 중단을 무시합니다.
        -P  키보드를 검출합니다. 키보드를 발견할 수 없었던 경우에는, -D (와)과 -h 옵션이 자동적으로 세트 됩니다.
        -p  디바이스의 검출 국면에 대해, 각 디바이스가 아탓치 될 때마다 정지합니다.
        -r  루트 파일 시스템을 포함한 디바이스로서 스태틱에 config 되고 디폴트를 사용합니다 ( config(8) (을)를 참조).
        -s  싱글 유저·모드로 립 오르게 됩니다. 콘솔이 “insecure” ( ttys(5) (을)를 참조) (으)로 설정되어 있었을 경우에는, root 의 패스워드를 입력하지 않으면 되어 선.
        -v  디바이스 검출때 (그리고 그 후도), 상세를 출력합니다.

디폴트를 설정하기 위해(때문에), BIOS 드라이브 번호, 콘트롤러 타입, 유니트 번호, 파티션, 커널 파일명과 유효한 옵션을 /boot.config 에 쓸 수도 있습니다. ‘boot:’ prompt로 타이프 치도록(듯이), 1 행으로 써 주세요.

관련 파일
/boot.config
    부트 블록에 대한 파라미터 (필수는 아니다)
/boot/boot1
    제 1 단계의 bootstrap
/boot/boot2
    제 2 단계의 bootstrap
/boot/loader
    제 3 단계의 bootstrap
/kernel
    디폴트 커널
/kernel.old
    보통은 비디폴트 커널 (필수는 아니다)

관련 항목
ddb(4), ttys(5), boot0cfg(8), btxld(8), config(8), disklabel(8), halt(8), loader(8), reboot(8), shutdown(8)

진단
디스크 관련의 에러가 발생하면(자), 제 2 단계의 bootstrap가 에러를 보고합니다. BIOS 가 돌려주는 것과 같은 에러 코드를 사용해, 예를 들면 “Disk error 0x1 (lba=0x12345678)” 등이라고 보고합니다. 에러 코드의 일부의 리스트를 나타냅니다:

0x1 부정한 인수
0x2 주소 마크가 발견되지 않습니다
0x4 섹터가 발견되지 않습니다
0x8 DMA 오버런
0x9 64K 경계를 넘어 DMA 를 시도했습니다
0xc 부정한 미디어
0x10
    정정할 수 없는 CRC/ECC 에러
0x20
    콘트롤러의 이상
0x40
    시크의 실패
0x80
    타임 아웃

주: 낡은 머신이나 EDD 서포트 (디스크 페킹인터페이스 서포트)가 없다 머신에서는, 부트 국면에 액세스 되는 부트 관련의 전파일과 구조 (커널을 포함합니다)(은)는, 디스크상에서 (BIOS 가 이해하는 지오메트리에 대해) 실린더 1023 이하에 놓여지는 것이 필요합니다. 제 2 단계의 bootstrap가 “Disk error 0x1” (을)를 보고하는 경우, 통상은 이 조건이 만되어 있지 않은 것을 의미합니다.

버그
이 버젼의 BSD 그리고 사용되고 있다 disklabel(5) 의 포맷은, 다른 아키텍쳐로 사용되고 있는 것과는 완전히 차이가 납니다.

공간의 제약에 의해, -P 옵션에 의해 기동되는 키보드 검출은, BIOS 가 “확장” 키보드를 검출했는지를 단지 테스트할 뿐입니다. “XT/AT” 키보드 (F11, F12 키등을 가지지 않습니다)를 접속했을 경우, 검출은 실패합니다.