필자는 랩톱에 Windows 및 Linux 이중 부팅을 설치하는 쉬운 방법을 제시하려고 노력했지만 그 순서는 아닙니다. 우리가 일반적으로해야 할 일은 먼저 Windows를 설치 한 다음 Linux를 설치하고 GRUB이 Windows를 처리하도록 허용하는 것입니다.
그래서 내가 달성하려는 것은 그 성가신 설치 프로세스 (윈도우)를 우회하고 이미지를 사용하여 드라이브에 직접 복사하는 방법을 찾는 것입니다. 그래야 GRUB (부팅 관리자)을 유지할 수 있습니다. (나중에 복원 할 수는 없지만이 경우 시스템에 다른 부트 관리자가 존재하지 않도록 독점하는 것이 Microsoft의 정책입니다).
먼저 합법적 인 Windows 8.1 복사본을 얻은 다음 VirtualBox를 사용하여 가상 컴퓨터에 설치했습니다. 그런 다음 GPT 파티션 된 하드 드라이브에 NTFS 파티션을 만들고 Windows 파티션의 내용을 .vdi 이미지에서 새로 만든 파티션으로 복사했습니다.
물론 아직 작동하지 않습니다. bootmgr을 바꾸는 방법을 모르겠습니다. 그것은 준다
File: \Boot\BCD
Status: 0xc000000e
Info: The Boot Configuration Data for your PC is missing or contains errors.
부팅, 시스템 복구 등에 사용되는 다른 파티션에서 해당 파일을 찾을 수 없기 때문에
이제 bootmgr이 winload.exe를 실행하여 Windows를 부팅한다는 것을 읽었습니다. 다음에 무엇을 해야할지 전혀 모른다.
Windows를 실행하는 데 필요한 모든 파일이 있기 때문에 이론적으로 작동해야한다고 생각합니다. 또한 내가 이것을 생각한 유일한 사람이되어서는 안된다고 생각하므로 여기에 매우 기본적인 것이 빠져있을 수 있습니다. 어쩌면 이미 끝났습니까?
부팅이 어떻게 작동하는지 잘 모릅니다. 내가 이해 한 것은 Windows와 Linux를 이중 부팅 할 때 Windows 부트 로더를 Linux에 연결한다는 것입니다. 그래서 내가 달성하려는 것은 어떻게 든 Windows 부트 로더를 제거하는 것입니다.
편집하다
나는 이진 파일을 bootmgr
보고있다 \Boot\BCD
. bootmgr
BCD 파일을 읽고 부팅하도록 선택할 수있는 옵션을 나열합니다.
따라서 실행과 같은 정보 winload.exe
는 BCD 파일에 있습니다. 이제 모듈 bootmgr
자체를 사용하여 syslinux가 자체적으로 실행됩니다 chain.c32
. 내가 어떻게 든 윈도우 부트 로더를 실행 할 일은 즉 노력하고 winload.exe
(가능한 경우) SYSLINUX에서 직접 또는 수정 bootmgr
자신을 실행합니다 winload.exe
(그 경로에 직접 것 자체 bootmgr
BCD 또는 다른 용도로 보지 않고 실행).
이 단계에서는 최대 절전 모드 (다른 절차가 필요함)가 중요하지 않습니다.
펌웨어 유형 및 펌웨어 설정에서 호환성 지원 모듈을 활성화했는지 여부를 EFI 인 경우 질문을 편집하십시오.
내 펌웨어는 EFI (CSM 사용)이며 일반적으로 GRUB을 사용하여 Arch Linux로 부팅합니다. 레거시 시스템과 EFI에서 bootmgr
실행 System32\winload.exe
되는 것을 발견했습니다 System32\winload.efi
.
나는 0.0
여기서 무엇을 해야할지에 대한 아이디어가 있습니다. 지난 10 일 동안 BCD를 변경하려고했지만 성공할 것으로 생각합니다. 그러나 실제로 원하는 것은 Windows 부팅 관리자를 우회하는 것이므로 관련이 없습니다.
winload.efi
EFI 셸에서 실행하는 방법이 있는지 (혹은 추측) GRUB에 대한 다른 수정 방법이 있는지 여부를 알고 있다면 체인 로더없이 EFI 모드에서 Windows를 부팅합니다.
모든 조언을 환영합니다.
추가
다음 포럼 게시물은 유용한 통찰력을 제공 할 수 있습니다.
http://reboot.pro/topic/19371-chainload-directly-to-winloadexe/
1.
grub4dos는 현재 부트 로더 (NTLDR 또는 BOOTMGR 등)를 "일반"부트 섹터 (예 : 300 바이트의 기계 코드)에 포함 된 코드의 대체물로 사용할 수 있기 때문에 부트 로더를 체인로드 할 수 있습니다.
이 코드는 단순히 몇 가지 매개 변수를 설정 한 다음 로더를 호출합니다.
심지어 다른 코드로 이해하고 복제하기가 쉽지 않았습니다.
BOOTMGR과 같은 NT 시스템 로더는 단일 .exe에서 "실제 모드"운영 체제 (DOS와 완전히 다른 것은 아님)와 일반 텍스트와 레지스트리 하이브를 모두 구문 분석 할 수있는 기능 / 도구를 가지고 있습니다. 처음부터 쉽게 작성.
좋은 사람들 @ReactOS는 년 이후 FREELDR (훨씬 간단한 NTLDR의 대체를 목표로 함)을 작성하기 위해 노력하고 있습니다 (ReactOS 프로그래머 중에는 정말 훌륭하고 좋은 사람들이 있다고 생각합니다).
보인다 그들이 NTLDR과 실험적 Server 2003을 부팅 관리하는 것을 (그러나 그것은 명확하게 문서화되어 있지 않습니다).
2.
BootUgr은 (U) EFI 지원을 도입하여 BIOS와 (U) EFI의 차이점을 추상화합니다. 예를 들어 다음은 두 가지 시퀀스입니다.
BIOS (PCAT) -> BootMgr { BootMgr stub -> embedded BootMgr.exe } -> WinLoad.exe -> Windows 64-bit (U)EFI -> BootMgFw.efi -> BootMgr.efi -> WinLoad.efi -> Windows
WinLoad는 특정 환경 (API 포함)이 존재할 것으로 예상합니다. BootMgr이이를 처리하므로 거의 동일한 WinLoad 프로그램이 두 환경에서 모두 작동합니다.
실제로 (U) EFI는 부팅 매개 변수를 저장하고 가져 오는 방법을 정의하므로 BootMgr의 BCD는 BIOS / (U) EFI에 상관없이 동일한 목적을 다룹니다.
그러나 BootMgr은 BIOS와 (U) EFI의 차이점을 제외하고 "부팅 선택"을 할 수있는 반면 WinLoad는 부팅 방법을 알고있는 특정 운영 체제를 부팅합니다.
WinLoad가 존재하는 환경의 양에 따라 WinLoad를 직접 호출 할 수 있습니다. Michael Brown의 wimboot는 BootMgr PE [1]를 직접 호출하므로 WinLoad가 더 많은 환경을 원한다는 점을 제외하고 WinLoad를 직접 호출 할 수 있습니다. 당신은 그것을 시도 할 수 있습니다!
[1] GRUB4DOS와 Syslinux의 chain.c32가 호출 할 수있는 BootMgr과 혼동하지 마십시오. 해당 BootMgr에는 포함 된 BootMgr PE를 호출하는 방법을 알고있는 스텁이 포함되어 있습니다.