손상된 시작 코드로 FreeBSD 시스템을 시작하는 방법은 무엇입니까?

손상된 시작 코드로 FreeBSD 시스템을 시작하는 방법은 무엇입니까?

FreeBSD가 설치된 HDD(또는 SSD 또는 플래시 드라이브)가 있는데 어떤 이유에서인지 부팅 코드(MBR의 첫 446바이트)가 손상되었습니다. 이 FreeBSD를 어떻게 시작할 수 있나요?

답변1

512바이트 DOS와 같은 MBR이 있고 그 중 처음 446바이트를 일부 쓰레기(영점또는 그냥 /dev/urandom출력), 그렇지 않으면 부팅 코드가 손상됩니다. 이 경우 MBR 파티션 테이블은 제자리에 있지만 시스템은 이 장치에서 부팅할 수 없습니다.

아이디어는 다른 BSD와 유사한 시스템의 로더를 사용하여 장치와 커널을 부팅하는 것입니다.

  • BMC를 통해 다른 HDD, CD, 플래시 드라이브, PXE, 가상 미디어에서 BSD와 유사한 OS를 부팅하여 시작해야 합니다(저는 FreeBSD 6.0, 7.0, 8.0, 8.1, 8.2, 8.3, 8.4, 9.2 및 Frenzy 1.4를 사용해 보았습니다) /KVM 등
  • 부팅 프로세스 중에 로더 화면에서 "로더 프롬프트로 탈출" 옵션을 클릭합니다(이전 FreeBSD 시스템에서는 "6", FreeBSD 9에서는 "3", Frenzy에서는 "8").
  • 다음을 입력하여 커널과 해당 모듈을 제거합니다.unload
  • disk0s1aFreeBSD를 부팅하려는 장치를 찾으려면 다음 명령을 입력하십시오(보통 다음과 같습니다).lsdev
  • 다음을 입력하여 이 장치를 "현재"로 설정하십시오.set currdev="disk0s1a"
  • 입력하여 장치에서 다시 읽으십시오 loder.conf(모든 커널 조정 및 해킹이 적용되도록 하기 위해).read-conf boot/loader.conf
  • 운영 체제를 부팅하고 즐기세요. 입력만 하면 됩니다.boot-conf

운영 체제가 부팅되면 부팅 코드를 복구할 수 있습니다. 나는 sysinstall그것을 사용하고 있었지만 (Customize->Partitioning,,, W("FreeBSD Boot Manager 설치"),,,,,) <Yes>9.0-RELEASE부터 더 이상 사용되지 않으며 10.0-RELEASE부터 기본에서 제거되었습니다. 또 다른 방법은 저장된 백업을 사용하여 다음에서 부팅 코드를 추출하는 것입니다.BootMgr<OK>Q<Exit><Exit Install>/boot

# gpart bootcode -b /boot/mbr /dev/yourbootdevice

관련 정보