
외부 하드 디스크의 두 번째 파티션에 FreeBSD 9.1을 설치했는데 이 파티션에서 컴퓨터를 부팅할 수 없습니다. FreeBSD는 USB 플래시 드라이브에 추가된 FreeBSD memstick 이미지를 사용하여 설치되었습니다.
첫 번째 파티션은 백업이 있는 ntfs 파티션입니다. FreeBSD를 설치해야 한다는 필요성을 느꼈을 때 저는 FreeBSD를 설치할 수 있는 여유 공간을 확보하기 위해 (Windows에서) 첫 번째 파티션을 "축소"한 다음 FreeBSD를 설치했습니다. 부팅 관리자 설치를 요청한 적이 없습니다.
처음 부팅을 시도했을 때 오류 메시지 없이 실패했습니다(부팅 관리자가 설치되지 않았을 수도 있습니다). 그래서 플래시 드라이브에서 부팅하고 명령을 실행했습니다 boot0cfg -B /dev/ad1)
(ad1은 외장 하드 디스크를 나타냄). 이제 부팅하면 다음과 같은 메뉴가 표시됩니다.
F1 Win
F2 FreeBSD
F5 First disk
F1 또는 F2를 누르면 "BOOTMGR이 없습니다"라는 오류 메시지가 나타납니다. 무엇이 문제일까요?
FreeBSD 설치로 부팅할 수 있도록 도와주세요.
답변1
하드 드라이브 ad0과 ad1 모두 boot0 부팅 코드가 있어야 하며 FreeBSD가 있는 ad1의 슬라이스(MBR 파티션)에는 boot1이 있어야 합니다. 이는 다소 혼란스럽기는 하지만 MBR 파티션 내에서 bsd 디스크 레이블을 사용하기로 한 아키텍처 결정의 결과입니다.
Boot0은 정말 작고 동적이므로 다른 OS의 적절한 부트로더를 계속 사용할 수 있습니다. 기본적으로 boot0은 MBR에 있습니다. Boot0은 디스크 레이블을 읽을 수 없으므로 파티션(슬라이스)의 첫 번째 블록을 로드하고 점프하여 해당 코드를 실행합니다.
Boot1은 FreeBSD 특정 코드가 실제로 시작되는 곳이고, 메모리는 FreeBSD 커널에 적합한 모드로 설정되며 boot1 코드는 BSD 디스크 라벨을 읽고, 이름으로 커널 파일을 찾을 수 있을 만큼 파일 시스템을 찾고 심지어 읽을 수도 있습니다. Boot1은 매우 복잡하며 더 많은 부팅 코드, 모듈, 커널을 로드하고 커널 실행을 시작하는 등 많은 작업을 수행합니다.
나는 다음과 같은 디스크 레이아웃을 가지고 있다고 추측합니다.
ad0 - 내부 하드 드라이브(boot0)
ad0s1 - 내부 하드 드라이브의 첫 번째이자 유일한 파티션(슬라이스), C:\
ad1 - 외장 하드 드라이브(boot0)
ad1s0 - 외장 드라이브 D:\의 FAT 또는 NTFS 파티션(슬라이스)
ad1s1 - FreeBSD 파티션(슬라이스) (boot1)
ad1s1a - FreeBSD /
ad1s1b - FreeBSD 스왑
ad1s1c - FreeBSD /usr
.. .
boot0 및 boot1 로더가 필요한 위치를 언급했습니다.
이 작업을 직접 수행하면 FreeBSD 부팅 방법에 대한 귀중한 교훈을 얻을 수 있습니다. 다음 학습 내용은 /boot/ 환경 구성, 사용자 정의 이미지 변경, 커널 자체가 로드되기 전에 커널 모듈 선택 및 구성입니다.
나는 당신이 주로 학습 목적으로 이 작업을 수행하고 있으며 설치를 제거하는 데 관심이 있을 수 있다고 생각합니다. NanoBSD는 살펴볼 가치가 있습니다.