예전에는 리눅스 쓸 일이 가끔 있기도 하고 포맷을 원체 많이했던지라 Windows VHD 부팅 + 우분투 부팅 멀티부팅을 구성하느라 여러 부트 로더를 쓰고 했었는데.. 요즘은 윈도우밖에 안쓰니 윈도우 기준으로만.

평소에는 유지보수 느낌으로 IODD라는 제품을 써서 윈도우 재설치를 자주 하는데.. ISO 로더가 내장되어있어서 굉장히 편리하다. 그래나 외장하드도 조금 가지고 다니기 불편하고 해서 microSD + USB 리더기로 가끔 쓰는데 부팅 설정에 관해 잠깐 서술.

윈도우10 UEFI 설치 파티션 구성 에서도 꽤 언급한 내용.

UEFI 부팅시 파티션 구조

과거 legacy BIOS의 경우 부팅메뉴가 있는 파티션에 Bootmgr이라는 확장자 없는 파일이 부팅로더 설정을 담당. NTFS에서 숨김 파일을 해제하고 쉽게 볼 수 있었다. 뭐 요즘은 쓸 일이 없다. 뭐 여기서 이제 또 Legacy BIOS에 쓰이는 것은 MBR.. UEFI에 쓰이는 것은 GPT.. 등이 있는데 이 글에서는 넘어감. 자세한 구분은 아래 글을 참고.

디스크 파일시스템과 종류 구분

UEFI로 설치해보면 알겠지만 필수적으로 설치되는 것이 FAT32 Filesystem의 보통 100MB 남짓한 'EFI Partition'이 생성된다. UEFI 부팅 시에는 이 파티션이 MBR 역할을 한다고 할 수 있겠다. 실제로 내용을 확인해보면? bootmgr.efi나 efi 폴더와 사용하고 있는 운영체제따라 폴더들이 잘 정리되어있는 것을 확인할 수 있다. 리눅스에선 그냥 잘 보이는데 윈도우에서는 보안을 위해서인지 연결되어있지 않기 때문에 Diskpart를 이용해 문자를 할당해주면 탐색기 관리자 권한에서 쉽게 확인할 수 있다.

Diskpart MSDN : 전문적인 툴에 비하면 부족함이 많지만 윈도우 자체기능.

그래서? 부팅을 등록한다는 건 이러한 파일을 생성해주는 것이라고 보면 된다. 근데 왜 굳이 EFI 파티션을 나누었는가 하면 legacy의 부팅은 'NTFS'에서 보장되지만 UEFI의 부팅은 'FAT32'에서만 보장되기 때문이다. 물론 보장이기에 시스템에 따라 UEFI부팅을 NTFS에서 성공했다는 경우도 있지만 메인보드별로 다른 것 같아서 기본적으로는 저렇게 알아두면 될 것으로 보인다. 시스템을 FAT32에서 쓰는 것은 무리라서 NTFS와 FAT32로 나누어, EFI 파티션을 구분지어 주었다고 볼 수 있는 것.

Windows 설치 이미지(배포 ISO)의 구조

윈도우 설치 이미지를 보면 더욱 이해하기 쉬운데.. DVD를 기준이라 생각해보면 부트로더가 다 등록되어있는 상태다. 그리고 FAT32 파일시스템을 기준으로 모든 파일이 셋팅되어있다. 그렇게 되면? EFI 파티션이 딱히 필요가 없어짐. 그래서 이미지 내 부트로더가 전부 있는 모습을 확인할 수 있다.

  • legacy BIOS부팅을 위한 Bootmgr
  • UEFI 부팅을 위한 efi폴더와 bootmgr.efi
  • boot폴더는 Windows PE 구성을 해본사람은 알텐데 램디스크를 할당하고 각종 유틸을 불러오고 뭐 그런 폴더. source 폴더가 주요 윈도우 파일이라는 내용.
  • autorun.inf는 외부저장장치가 연결됐을 때 자동실행을 뭐할거냐고 셋팅해주는 건데, 검색해보면 대충 양식이 나온다. 다른 데서 가끔 쓰기도 함.
  • setup.exe는 윈도우로 이미 부팅된 상태에서 대응하기 위한 실행 프로그램.

결국 이미 부트로더가 다 셋팅되어있어서 설치 배포 이미지 그 자체로는 부팅을 등록해줄 필요가 없다. 이를 이용하면...

USB 플래시 메모리에 설치 이미지 부팅등록(기본값)

FAT32 파티션에 ISO 이미지의 내용을 복사해주기만 하면 끝난다.

이제 많은 사람들이 쓰는 것은 Rufus라는 프로그램이 있는데, 특별한 상황이 아니면 딱히 필요가 없는 것 같다. Large Fat32로하면 특별할 것이 딱히 없고.. 4GB이상 파일을 등록할 수 없기에 불편.(모종의 트릭인지 보통 FAT32는 총 용량 32GB 제한이 있는데 그게 없었다.) NTFS로 하면 FAT32의 작은 EFI 부팅 파티션을 만들고 나머지 NTFS에 윈도우 이미지를 넣고 부팅파티션에 등록. 근데 왠지 후자는 작동이 안되는 컴퓨터가 있어서 EFI는 확실히 FAT32가 안정적이라는 느낌이 들었다.

근데 나는 메모리의 남은 용량은 그대로 쓰고 싶고 윈도우 설치용으로만 한 4GB 쓰고싶어서 아래와 같이 사용했다.

  1. FAT32 파티션으로 4096MB 파티션을 만들고, 배포 이미지 내용물을 복사해 붙여넣는다.
  2. 남은 파티션은 NTFS나 exFAT으로 사용해 데이터 저장용으로 만들어 쓴다.

그러면 바로 끝이다... 딱히 툴이 필요하지 않다. 이미 ISO 내부에 다 부트로더가 있기 때문. 이제 리눅스라던지 USB에서 멀티부팅을 구성하기 위해 yumi같은 툴도 쓰는데 윈도우만 부팅하는데 그런 것은 필요가 없다.

설치된 Windows를 부팅 등록(BCDBOOT)

이건 약간 응용으로.. 멀티부팅을 자주 만지거나 하면 부트로더가 날아가는 경우가 가끔 생겨서 설치된 윈도우를 다시 부트메뉴에 등록해줘야 할 경우. 가끔 다른 하드에 윈도우 설치 이미지를 두고 윈도우 재설치를 할 때 부트로더가 꼬이기도 해서 사용한다.

부트 로더의 세부적인 이용은 BCDEDIT을 이용하면 편리하지만.. 평범한 상황에서 윈도우만 있을 경우 BCDBOOT로 간단히 부트로더에 등록해 부팅할 수 있다.

Bcdboot MSDN : 마찬가지로 bcdedit등으로 잘 안된다면 전문적인 툴이 낫다. 자체기능이라는 장점.

아래는 D: 드라이브의 Windows를 C: 드라이브에 부트 로더를 등록하고 UEFI와 BIOS 부팅이 가능하도록 설정한 명령어다.

bcdboot D:\Windows /s C: /f ALL

/s는 시스템파티션. 즉 부트로더를 설치할 파티션. MBR이면 보통 윈도우 설치폴더고, GPT면 EFI파티션이 되겠다.
/f는 펌웨어 타입. UEFI와 BIOS가 있는데 ALL로 하면 두가지 다 등록.