외장 드라이브의 두 번째 파티션에 설치된 FreeBSD를 부팅하는 방법

외장 드라이브의 두 번째 파티션에 설치된 FreeBSD를 부팅하는 방법

외장 하드 드라이브의 두 번째 파티션에 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은 실제로 작고 동적이므로 다른 운영 체제의 부트 로더가 계속 실행될 수 있습니다. 기본적으로 boot0은 MBR에 있습니다. Boot0은 디스크 레이블을 읽을 수 없으므로 파티션(슬라이스)의 첫 번째 블록만 로드하고 해당 코드를 실행하기 위해 점프합니다.

Boot1은 FreeBSD 특정 코드가 실제로 시작되는 곳이고, 메모리는 FreeBSD 커널에 적합한 모드로 설정되며, boot1 코드는 BSD 디스크 레이블을 읽고 파일 시스템을 조회/심지어 읽을 수 있어 이름으로 커널 파일을 찾을 수 있습니다. Boot1은 매우 복잡하며 더 많은 부팅 코드, 모듈, 커널을 로드하고 커널 실행을 시작하는 등 많은 작업을 수행합니다.

귀하의 디스크 레이아웃은 다음과 같습니다.

ad0 - 내부 하드 드라이브(boot0)
ad0s1 - 내부 하드 드라이브의 첫 번째이자 유일한 파티션(슬라이스), C:\

ad1 - 외장 하드 드라이브(boot0)
ad1s0 - 외장 드라이브의 FAT 또는 NTFS 파티션(슬라이스), D:\
ad1s1 - FreeBSD 파티션(슬라이스) (boot1)
ad1s1a - FreeBSD /
ad1s1b - FreeBSD 스왑
ad1s1c - FreeBSD /usr
.. .

boot0 및 boot1 로더가 필요한 위치를 확인했습니다.

이 작업을 수동으로 수행하면 FreeBSD 부팅 방법에 대한 귀중한 교훈을 얻을 수 있습니다. 다음 레슨에서는 커널 자체를 로드하기 전에 /boot/ 환경을 구성하고, 사용자 정의 이미지를 변경하고, 커널 모듈을 선택 및 구성하는 것입니다.

나는 당신이 주로 학습 목적으로 이 작업을 수행하고 있으며 설치를 단순화하는 데 관심이 있을 것이라고 생각합니다. NanoBSD는 살펴볼 가치가 있습니다.

관련 정보