답변:
파일을 복사하는 것만으로는 부팅 가능한 드라이브를 만들 수 없습니다. 부팅 가능하게 만드는 USB 플래시 드라이브의 파일 일뿐 만 아니라 파티션 테이블 구성, 드라이브 내용 구성에 대한 메타 데이터 , 부팅 가능 여부를 PC에 알려주 는 MBR 또는 GPT 인지 여부 를 알려줍니다 .
cyberciti.biz에 명시된 바와 같이 :
각 디스크와 파티션에는 일종의 서명과 메타 데이터 / 매직 문자열이 있습니다. 운영 체제에서 디스크를 구성하거나 드라이버를 연결하고 시스템에 디스크를 마운트하는 데 사용되는 메타 데이터입니다.
그러나 dd , EaseUS Todo Backup , 뛰어난 오픈 소스 Clonezilla 및 Rufus 와 같은 여러 도구를 사용하여 플래시 드라이브를 복제 할 수 있습니다 . ( dd와 Rufus에 대한 알림 을 알렉스 에게 감사합니다 ).
dd
. 간단 cp
하게 작업을 수행 할 수 있습니다. 파일 시스템 내용 대신 장치 노드에서 사용하십시오.
cp
단순히 장치 노드를 복사하는 그의 주장에 대한 답변이었습니다 . 혼란을 피하기 위해 이제 내 의견도 삭제했습니다.
복사는 포맷 된 파티션의 파일에만 대응합니다. 부팅 플래그 설정, 부팅 로더 작성 또는 때로는 일반 파일을 파티션의 올바른 위치 (읽기 : 섹터)에 복사하고 파일의 속성을 설정하는 등 부팅 프로세스에 필요한 특별한 작업을 수행 할 수 없습니다 / 권한. 이전 부트 디스크 생성, 부트 로더를 MBR에 쓰는 포맷팅 도구 등으로 인해 사용 가능한 도구가없는 경우가 아니라면 디스크를 부팅 가능하게하려면 추가 단계를 수행해야합니다.
특히 BIOS 모드 에서 부팅 할 때 BIOS는 첫 번째 섹터 (MBR)를 찾아 유효한 부팅 서명 0xAA55 가 있는지 확인합니다 . 그렇다면 해당 섹터를로드하고 MBR의 부트 로더로 제어를 전송하십시오. MBR에 따라서는, 파티션 구성을 설명 파티션 내에서 거짓말을 할 수없는 이고 정상적인 도구를 사용하여 복사 할 수 있습니다 것이 아니다.
또한 MBR이 너무 작아 유용하지 않기 때문에 대부분의 최신 부트 로더는 부팅 프로세스를 여러 단계 로 나누고 MBR의 부팅 코드는 다음 단계를로드합니다. 더 많은 단계 내 스테이지는 종종 파티션 외부 영역에 배치됩니다 . 일부는이를 EBR에 넣을 수 있지만 grub은 일반적으로 첫 번째 파티션과 MBR 사후 간격이라고하는 MBR 사이의 빈 영역에 두 번째 단계를 배치합니다. 그래서 파티션을 올바르게 정렬하지 않으면 grub이 부팅 코드를 넣을 공간이 없어서 내장 오류가 발생합니다.
LILO 또는 이전 Windows / DOS 부트 로더와 같은 많은 부트 로더 는 다음 단계 또는 시스템 파일의 위치와 같은 MBR의 하드 코드 정보 도 제공 합니다. 파티션 데이터를 읽음으로써 작동하지는 않지만 대신 하드 코딩 된 섹터를 읽습니다. 파일 시스템을 구문 분석하는 데 너무 많은 코드가 필요하기 때문에 MBR 또는 MBR 이후 간격과 같은 작은 공간으로 압축하기가 매우 어렵습니다. 심지어 grub도 그러한 하드 코딩을 지원합니다 . 즉, 일부 시스템 파일은 섹터별로 정확한 위치에 있어야 하며 일반 사본으로는 얻을 수 없습니다. 이것이 "이동할 수없는 시스템 파일" 을 보는 이유입니다 Windows 조각 모음 또는 축소 파일 시스템을 실행하는 동안 실제로는 올바르지 않습니다. 최신 부트 로더가 훨씬 똑똑하고 그런 것들에 신경 쓰지 않아도 Windows가 파일을 옮기기가 너무 두려워하기 때문입니다.
결국 부트 로더가 무엇을 부팅해야하는지 알리기 위해 부트 파티션을 활성 으로 설정 해야합니다 . 분할 영역 외부에 있기 때문에 분할 도구 또는 16 진 편집을 통해 수동으로 수행해야합니다.
UEFI에서는 상황이 훨씬 쉽습니다. FAT 파일 시스템 (및 비표준 구현의 경우 훨씬 더 많은 파일 시스템)에 대해 알고 있으므로 부팅 파일은 EFI 시스템 파티션 인 AKA ESP에 저장됩니다 . UEFI는 ESP에서 * .efi 응용 프로그램을로드 한 다음 운영 체제를로드합니다.
UEFI 펌웨어는 USB 플래시 드라이브와 같은 이동식 저장 장치에서의 부팅을 지원합니다. 이를 위해 이동식 장치는 FAT12, FAT16 또는 FAT32 파일 시스템으로 포맷해야하며, 부트 로더는 표준 ESP 파일 계층에 따라 저장하거나 부트 로더의 전체 경로를 시스템에 제공해야합니다. 부트 매니저.
따라서 기본적으로 * .efi 파일을 ESP에 복사하고 시스템 파일을 올바른 폴더에 저장하면됩니다. 그러나 * .efi 파일을 포함하는 FAT 파티션 은 파티션 외부의 MBR 또는 GPT 테이블에서 ESP 로 표시 해야하므로 여전히 작은 문제가 있습니다 . 위와 같이 복사하여 수행 할 수는 없습니다. 특히 파티션 유형은 MBR 에서 0Ch / 0Bh / 무엇이든 EFh로 , GPT에서는 C12A7328-F81F-11D2-BA4B-00A0C93EC93B로 변경되어야 합니다. ESP는 실제로 FAT12 / 16 / 32가 아니라 독립적 인 파일 시스템이므로 FAT 파일 시스템 제품군
그리고 부팅을 위해 다르게 수정해야하는 BSD 디스크 레이블 또는 APM과 같은 다른 파티션 구성표 가 여전히 많이 있습니다. 또는 USB 스틱이 파티션 테이블없이 전혀 포맷 되지 않았을 수 있습니다 (AFAIK Windows는 기본적으로이 작업을 수행함). 따라서 부팅 가능하게 만드는 것은 다릅니다. 그러나 동일한 제한이 적용됩니다. 분할되지 않은 영역을 수정해야합니다.
전통적으로 BIOS 부팅에는 특별한 보이지 않는 마커가 필요했습니다. 몇 가지 예는 다음과 같습니다 .
이 경우 단순히 파일을 복사 할 수 없습니다. 특수 드라이브가 없기 때문에 결과 드라이브를 부팅 할 수 없습니다.
그러나 UEFI 부팅은 특별하고 똑똑하며 특히 이러한 문제를 해결합니다. 항상 그렇듯이 UEFI에 대한 간단한 입문서를 보려면 이 블로그 게시물 을 읽는 것이 좋습니다 . 대체 부팅 섹션에 특히 유의하십시오. 이것 또한 여기에서 약간 더 자세히 설명 됩니다 .
이 작업을 수행하려면 펌웨어가 검색 할 파티션의 특정 경로에있는 파일 만 있으면됩니다. 최적의 호환성을 위해 1 , 예, 이것은 GPT 파티션 디스크에서 EFI 시스템 파티션으로 표시된 FAT32 형식 파티션이어야합니다. 그러나 대부분의 펌웨어는 MBR 파티션 및 파티션되지 않은 (수퍼 플로피) 디스크에서 (단일) 파티션도 검색합니다.
즉, UEFI 부팅에 실제로 필요한 것은 대체 부팅 항목을 포함하는 FAT32 1 형식의 단일 파티션입니다. x86_64 아키텍처에서는 \EFI\BOOT\BOOTx64.EFI
파일 만 있으면 됩니다. 해당 파일을 포함하여 한 플래시 드라이브에서 다른 플래시 드라이브로 복사하면 모든 것이 작동합니다.
1 표준에는 FAT32 및 GPT가 필요합니다. MBR과 수퍼 플로피는 AFAIK는 아니지만 데스크톱 하드웨어에서 보편적으로 지원됩니다. 노트북은 좀 더 난해합니다. 태블릿은 토스 업이며 Mac EFI는 독특합니다.
2 UEFI 표준에는 FAT32 지원이 필요합니다. 일부 펌웨어는 NTFS를 지원할 수도 있지만 (보증은 아니지만) 실제로 FAT32 ESP에 NTFS 드라이버를 내장 할 수 있습니다.