2000년형 PC에 FreeBSD-7.4를 설치했습니다(*사양은 아래 참조).
디스크가 기본 IDE 슬롯에 연결되어 있으면 운영 체제가 정상적으로 부팅되지만,중학교IDE 소켓에서는 "1. FreeBSD 부팅 [기본값]" "3. 안전 모드에서 FreeBSD 부팅"과 같은 옵션이 있는 메뉴를 표시하는 첫 번째 부분만 시작합니다.
기본 첫 번째 옵션을 선택하면 잠시 동안 시작된 후 표시됩니다.
Trying to mount from ufs:/dev/ad0s1a
freebsd manual root filesystem specification:
<fstype>:<device> [options] Mount <device> using filesystem <fstype>
eg. ufs:/dev/da0s1a
? List valid disk boot devices
<empty line> Abort manual input
쓸모없는 mountroot 프롬프트를 입력하십시오. 타이핑 ?
하면
List of GEOM managed disk devices:
ufsid/5c922e4292c8e9fa ufsid/5c922e435b48afb7
ufsid/5c922e4343d7ab4b ufsid/5c922e44e470015a
ufsid/5c922e424bf39462 ad2s1g ad2s1f ad2s1e
ad2s1c ad2s1b ad2s1a ad2s1 ad2
mount ufsid/5c922e4292c8e9fa
다른 모든 장치에 들어가서 시도한 후 돌아옵니다.
Trying to mount root from mount ufsid/5c922e4292c8e9fa
등, 즉 유용한 정보가 제공되지 않습니다.
비슷한 질문이 게시되었습니다.혼합 IDE/SATA 디스크 및 부팅 문제하지만 그것은 도움이 되지 않습니다. 단지 비슷할 뿐입니다.
IDE2 소켓에서 40핀 리본 IDE 케이블을 뽑아 IDE1 소켓에 꽂으면 모든 것이 정상으로 돌아옵니다. 이 문제는 디스크가 보조 기본 IDE 디스크로 사용되는 상황으로 제한됩니다.
실제로 이 문제는 동일한 FreeBSD 설치로 기본 IDE 디스크에서 두 번째 IDE 디스크에 액세스하려고 할 때 처음 발생했습니다.
mount /dev/ad1* /mnt/mydisk
ad1*
다양한 옵션을 실행 하면 ad1s1
모두 일관되게 반환되며 ad1s1a
보조 기본 IDE 연결에 문제가 있기 때문에 두 번째 IDE 디스크를 마운트할 수 없는 것 같습니다. 이 문제는 Bios 설정을 통해 해결될 수 있을 것 같습니다. "모드: LBA, Large, Auto" 등 기본 및 보조 IDE 디스크와 관련된 Bios 설정이 많이 있지만 무엇인지 모르겠고 실수로 이를 수정하기 위해 무작위 설정을 시도하고 싶지 않습니다. .ad1s1b
mount: /dev/ad1s1: Operation not permitted
보조 기본 IDE에서 부팅하는 방법 및/또는 FreeBSD에서 두 번째 IDE 디스크를 사용하는 방법은 무엇입니까?
- PC 사양: PII 400Mhz, Gigabyte Intel 440BX MoBo, 512MB RAM, 16MB RAM 그래픽 카드, 15GB Oantum Fireball IDE 하드 드라이브, Award Bios(2002 펌웨어 포함)
답변1
부트로더는 어떤 BIOS 드라이브가 어떤 IDE 채널 및 마스터/슬레이브 위치에 매핑되는지 확인하지 못하므로 단순히 하드 드라이브가 구멍 없이 마스터-슬레이브, 마스터-슬레이브 순서로 채워지고 BIOS 드라이브 C, D, E. ..IDE 드라이브로 ad0
,, ad1
.ad2
반면 IIRC FreeBSD 7 기본 커널(GENERIC)에는 하드와이어 IDE 드라이브 매핑이 있습니다.
/dev/ad0
주니어 마스터입니다/dev/ad1
주요 부하이다/dev/ad2
2차 마스터입니다/dev/ad3
보조 노예다
귀하의 경우에는 메인 채널이 사용되지 않으므로 BIOS는 FreeBSD 하드 드라이브에 C 드라이브(0x80)를 할당합니다. 그런 다음 부트 로더는 BIOS 드라이브 C( /dev/ad0
) 슬라이스 1
(아마도 드라이브의 유일한 파티션) BSD 디스크 라벨 파티션을 확인하고 a
부팅하며 해당 파티션을 부팅 장치로 변환 /dev/ad0s1a
하고 이를 ufs:/dev/ad0s1a
커널에 전달합니다.
반면에 커널 부팅 시퀀스는 IDE 채널을 검색하고 보조 마스터에서 FreeBSD 드라이브를 찾습니다. 위의 하드배선 구성표에 따르면 코어는 ad2
드라이버에 할당됩니다(그렇지 않음 ad0
). 따라서 rootdev를 마운트해야 할 때 ad0s1a
부트로더에서 전달된 정보를 볼 수 없습니다 .
설정(보조 마스터 서버의 FreeBSD)을 유지하려면 구성을 수정해야 합니다. 속도:
- FreeBSD를 처음 설치할 때와 동일한 IDE 채널(마스터/슬레이브) 및 동일한 위치(마스터/슬레이브)에 드라이브를 배치합니다. (설명으로 보면 주니어 마스터인 것 같습니다.)
- 시스템을 시작하십시오.
- 시작이 완료되면 루트로 로그인합니다.
- 다음 명령을 실행하여 부트로더가
ad2
(보조 마스터 장치)를 부팅 드라이브로 커널에 전달하도록 지시합니다.echo 'vfs.root.mountfrom=ufs:/dev/ad2s1a' >> /boot/loader.conf
- 시스템을 종료합니다.
- 드라이브를 보조 IDE 채널에 다시 놓습니다.
/dev/ad2s1a
다음 부팅부터 커널은 부트로더 프롬프트를 무시하고 루트 장치 로 사용됩니다 .
/boot/loader.conf
참고: 드라이브를 다른 채널/위치로 이동하려면 부팅 장치를 조정해야 합니다.