이중 부팅 시스템에서 BIOS는 실행할 부트 로더를 어떻게 선택합니까?


24

Windows와 Ubuntu의 이중 부팅이 있습니다. 머신을 켜면 BIOS가 POST를 수행 한 후 부트 로더가 시작됩니다.

BIOS가 실행할 부트 로더를 어떻게 선택하는지 이해하고 싶습니다. 이중 부팅 컴퓨터에서 BIOS와 부트 로더간에 진행되는 프로세스를 알고 싶습니다.


답변:


40

BIOS 펌웨어는 실제로 부트 로더를 선택하지 않습니다. 드라이브의 섹터 0에서 코드를로드하여 실행합니다. 거기에 무엇이 있든 실행됩니다. 바라건대 그것은 부트 로더 (또는 부트 로더를로드하는 것)이지만 반드시 그럴 필요는 없습니다. 초기 PC 시절에는 플로피 디스크에 OS없이 간단하게 부팅하고 실행할 수있는 게임이있었습니다.이를 "부터"라고합니다.

UEFI 펌웨어는 실제로 파티션 및 파일 시스템을 이해하고 드라이브에서 UEFI 시스템 파티션 유형을 검색합니다. 이것은 파일 시스템이므로 여러 부트 로더를 여기에 배치 할 수 있습니다. UEFI 펌웨어는 사용할 부트 로더를 선택할 수있는 메뉴 또는 다른 방법을 제공해야합니다.

많은 UEFI 시스템이 "레거시 모드"로 부팅하고 있습니다. 여기서 UEFI는 "호환성 서비스 모듈"을로드하여 BIOS처럼 보이고 실제로는 BIOS처럼 작동합니다.

GRUB은 리눅스를 부팅하거나 Windows 부트 로더 (일반적으로 Windows 파티션의 Boot 폴더에있는 winload.exe)에 "chainload"(제어 권한을 부여) 할 수있는 일반적인 오픈 소스 부트 로더입니다. GRUB은 결정을 내리는 능력을 제공합니다. GRUB은 구성 파일을 읽고 기본 파일을 선택할 수 있습니다.

풍부하고 까다로운 세부 사항을 원한다면 이것을 읽으십시오 .


이것이 우분투에서 sudo마운트되지 않은 디스크에 무엇이든 쓰려면 루트가 필요합니다 . 프로그램이나 악의적 인 사용자가 부팅 파티션에 맬웨어를 쓰는 경우 ...
wizzwizz4

감사 로렌스 당신의 설명은 내 이해를 더 명확하게 다시 한번 감사합니다
Prashant Singh

13

이 다이어그램은 제어가 펌웨어 (BIOS 또는 UEFI)에서 부트 로더로, 부트 로더에서 우분투의 운영 체제로 어떻게 전달되는지 보여줍니다.

여기에 이미지 설명을 입력하십시오
          BIOS와 UEFI

OS가 다른 모드 (BIOS 및 UEFI)로 설치된 경우 이중 부팅 Windows 및 Ubuntu가 작동하지 않습니다.


우분투를 UEFI 모드로 변환

  1. Boot-Repair를 시작하고 고급 옵션 -> GRUB 위치 탭을 선택 하십시오.
  2. 당신이 표시되지 않는 경우 별도 / 부팅 / EFI 파티션 옵션을,이 방법은 당신의 PC는 UEFI 파티션을 가지고 있지 않습니다.
  3. 당신이 볼 경우 별도 / 부팅 / EFI 파티션 옵션의 그것의 왼쪽 체크 박스에 체크 표시를 넣어, 다음을 클릭 적용 오른쪽 하단에있는 버튼을 누릅니다.

    우분투를 UEFI 모드로 변환

  4. UEFI 모드에서 하드 드라이브를 부팅하도록 BIOS를 설정하십시오. 이 설정을 조정하는 방법은 컴퓨터의 특정 모델에 따라 다르지만 일반적으로이 설정은 BIOS / UEFI 설정 유틸리티 의 부팅 탭 아래에있는 부팅 우선 순위 설정에 있습니다.


7

레거시 모드 (UEFI가 아닌 BIOS 부팅)에서 BIOS는 드라이브 순서를 제어합니다. 옛날 옛적에 이것은 케이블에 의해 제어되었습니다; 그러나 BIOS 설정을 변경하면 상자를 열고 케이블을 변경하는 것보다 낫습니다.

BIOS는 첫 번째 디스크 (또는 BIOS가 제어하는 ​​드라이브 순서)의 첫 번째 섹터 (MBR 또는 마스터 부트 레코드라고하는 512 바이트 디스크)를로드 한 다음 (CPU) 제어를이 '부트 로더'에 전달합니다. 따라서 BIOS는 작업을 완료했으며 첫 번째 섹터의 코드가 실행됩니다.


미안 선생님 있지만 BIOS가 부트 로더와 윈도우 및 리눅스에 대한 제어를 제공 프로세스 BIOS가 부트 로더 선택을 통해 이동 뭐야가 제어 할 수있는 부트 로더에 너무 다른 부트 로더를 가지고 난 비트 혼동입니다
Prashant 싱

2
시스템은 디스크 당 하나의 부트 로더 만 가질 수 있으며 하나만 활성화됩니다. 일반적으로 시스템에 두 개의 운영 체제가있는 경우 설치된 두 번째 운영 체제는 자체 코드를 MBR에 기록 할 때 부트 로더를 소유합니다. 이것이 GNU / 리눅스 (우분투)가 GRUB을 사용하는 이유입니다. 다단계 시스템 (1 단계는 MBR, 1.5 및 2 단계는 / boot에서 찾을 수 있음)은 어떤 OS를로드 / 실행할 것인지 묻는 메뉴를 표시합니다 (그럽이 알고있는 것, ISO에 관계없이) 그것에 추가). 두 개의 디스크 드라이브가있는 경우 각 드라이브에 부트 로더가있을 수 있지만 BIOS가 실행할 드라이브를 결정합니다.
guiverc

따라서 내 컴퓨터에 2 개의 운영 체제가있는 경우 GRUB이 내 OS에로드 할 때 왜 윈도우의 부트 로더가 해당 메뉴를 넣지 않았는지로드 할 OS를 묻는 메뉴를 표시해야합니다.
Prashant Singh

창문에는 부트 로더도 있습니다 (어쨌든 비스타까지). 그러나 그럽만큼 똑똑하지는 않습니다. windoze 버전은 msft가 아닌 제품을 검색하지 않으며 ext / reiserfs / xfs / zfs / btrfs / ...를 읽을 수 없으므로 * nix를 직접 추가해야합니다. 다음 업데이트 ..... grub이 훨씬 더 좋기 때문에 windoze 버전을 사용할 가치가 없습니다. windoze가 한 드라이브에 있고 다른 드라이브에 Ubuntu가 있으면 BIOS로 부팅을 변경할 수 있습니다. 그러나 grub은 더 빠르거나 쉽습니다. (내 답변에 만족하면 질문을 닫으려면 동의하십시오)
guiverc

3
@Prashant Singh : Windows 부트 로더가이 작업을하지 않는 가장 근본적인 이유는 Windows에 대해 조금 알고 있었을 때 MicroSoft가 다른 운영 체제를 실행시켜 돈을 벌지 못하기 때문입니다.
jamesqf
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.