EFI 시스템 파티션을 다른 드라이브로 이동


14

UEFI를 부팅으로 사용하여 HDD에 Windows 8을 설치했습니다. HDD에는 다음과 같은 GPT 테이블이 있습니다.

DISKPART> list partition

Partizione ###   Tipo              Dim.     Offset
---------------  ----------------  -------  -------
Partizione 1     Ripristino         300 Mb  1024 Kb
Partizione 2     Sistema            100 Mb   301 Mb
Partizione 3     Riservato          128 Mb   401 Mb
Partizione 4     Primario           390 Gb   529 Mb
Partizione 5     Primario           540 Gb   390 Gb

(이탈리아어로 된 것이 죄송하지만 번역은 매우 간단합니다).

최근에 SSD 드라이브를 구입하여 연결하여 새 Windows 8을 설치했습니다. 이제 이중 부팅이 작동하지만 UEFI 파티션이 SSD 대신 HDD에 있습니다. SSD 파티션 목록은 다음과 같습니다.

Partizione ###   Tipo              Dim.     Offset
---------------  ----------------  -------  -------
Partizione 1     Riservato          128 Mb  1024 Kb
Partizione 2     Primario           221 Gb   129 Mb

가장 좋은 해결책은 두 가지 이유로 SSD에 두는 것입니다.

첫 번째는 성능입니다 (HDD의 스핀 업 시간으로 인해 SSD에서 조금 더 빠를 것 같지만 그 점이 틀릴 수 있습니다.)

두 번째 이유는 일관성입니다. SSD에있는 Windows 8 설치 만 사용하고 데이터 저장 장치로 사용하기 위해 HDD의 시스템 파티션을 지울 것이므로 부트 파티션이 동일해야한다고 생각합니다 OS로 구동하십시오.

그렇다면 EFI 시스템 파티션을 SSD로 어떻게 이동합니까?

답변:


4

내 추천은 귀찮게하지 않는 것입니다. ESP에서 읽은 파일이 작고 컴퓨터가 부팅 될 때만 읽기 때문에 성능 향상은 무시할 수 있습니다. 또한 파티션 자체는 현대적인 표준에 의해 크기가 작기 때문에 노력을 기울일만한 충분한 공간을 확보 할 수 없습니다. 또한 ESP를 이동하려고하면 부팅 문제가 발생할 위험이 있으며, 이로 인해 부팅 시간이 단축되어 부팅 시간을 단축 할 수있는 시간보다 훨씬 많은 시간이 소요됩니다.

내 권장 사항에도 불구하고 계속해서 학습 경험으로 사용하려면 다음을 검토해야합니다.

  • 원하는 파티션 소프트웨어로 ESP 생성 표준 Windows 도구를 사용 하여이 작업을 수행하는 방법을 잘 모르겠습니다. 와 함께 gdisk, 당신은 유형의 EF00의 파티션을 만들고 싶지만, 이후 당신은 다음, 그 위에 FAT 파일 시스템을 만드는 데 필요한 것 gdisk파티션 전용 도구 (이 파일 시스템을 처리하지 않습니다)입니다.
  • 두 ESP를 동시에 마운트하여 파일을 복사합니다 (또는 임시 스토리지를 사용하여 순서대로). Linux 또는 EFI 셸에서 쉽지만 Windows 에서이 작업을 수행하는 방법을 잘 모르겠습니다. 실제로 EFI 셸에서는 자동으로 수행됩니다.
  • 새 홈에 부트 로더 등록 폴백 파일 이름을 사용하는 EFI\BOOT\bootx64.efi것이 더 간단한 대안이지만 부트 로더를로드하는 데 덜 선호되는 방법입니다. Windows bcdedit명령과 EFI 셸의 bcfg도구는 모두 부트 로더를 등록 할 수 있습니다. 그러나 bcdeditWindows는 하나의 ESP 만 지원하므로 ESP를 복사 할 때 문제가 발생하므로 융통성이 없습니다.

답변 주셔서 감사합니다. HDD를 제거하기로 결정할 수도 있기 때문에 실제로 SSD에 ESP를 사용하는 것을 선호합니다. ESP가 OS 드라이브에 있어야한다고 생각합니다. 어쨌든 최신 요점은 어떻게 되나요?
Pincopallino

걱정하지 않아도 파티션을 SSD로 옮기고 Windows 부팅을 정기적으로 수행 할 수있었습니다. 대단히 감사합니다!
Pincopallino

여기에 일반화 된 하우투에서 무슨 일이 일어나고 있는지 설명하는 데 매우 유용한 흥미로운 정보가 있지만 실제로 "EFI 시스템 파티션을 SSD로 옮기는 방법은 무엇입니까?" 나는 몇 년 전 나쁜 결정에서 회복하기 위해 며칠을 보냈는데 여전히 나를 괴롭 히고 간단히 말해서 EFI 파티션을 재배치하여 좋은 대답을보고 싶습니다.
rainabba

EFI 파티션이 두 개인 경우 때때로 Windows 업데이트가 매우 모호한 방식으로 실패 할 수 있으므로 이동 후 이전 파티션을 삭제하십시오.
Jack Wasey

14

나와 같은 사람들이 Google을 사용하는 경우 : 예, 타사 도구없이 Windows에서이 작업을 수행 할 수 있습니다. Windows 10 Pro x64로 테스트되었습니다. 이 절차를 사용하여 EFI 시스템 파티션과 시스템 예약 파티션을 모두 이동했습니다. Windows 8에서도 작동합니다.

기본 드라이브에 공간이 부족한 경우 먼저 C : 파티션 (또는 이에 상응하는)을 줄여야합니다. 이 예에서는 260MB를 사용하고 있습니다. 최신 드라이브에는 필요하지만 섹터가 작은 구형 드라이브에는 100MB 만 필요합니다. 공간을 확보 할 필요가 없으면 생략해야하는 단계를 나타내는 주석을 기록하십시오.

그 동안 시스템 예약 파티션을 옮기고 싶을 것입니다. 일반적으로 1000MB이며 유용한 Windows 메타 데이터를 저장합니다. 시스템 예약 파티션이 없으면 일부 Windows 기능이 작동하지 않을 수 있습니다. 기본 드라이브에 이러한 파티션을 생성하는 단계를 포함 시켰으며 해당 단계를 주석으로 표시했습니다. 단계를 건너 뛰려면 해당 단계를 쉽게 제외 할 수 있지만 축소 할 때 숫자를 변경해야합니다 (예 : 1260MB 대신 260MB).

주석은 REMcmd.exe와 diskpart.exe에서 모두 지원 되므로 접두사가 붙습니다 ( "설명").

관리자로 실행중인 cmd.exe에서 :

diskpart
list disk
REM Choose the appropriate disk number from the list.  If you're unsure, you can open diskmgmt.msc; the numbers will be the same.
sel disk 0
list part

REM Perform the following only if you need to shrink a partition to make space for the EFI partition.
REM Choose the appropriate partition from the list.  I used my C: partition.
sel part 2
shrink desired=260
REM End of shrinking operation.

REM Create a new EFI partition:
create part efi size=260
format quick fs=fat32
list vol
REM Find your newly created volume in the list.  If it's not already selected (marked with an asterisk), select it now with "sel vol #".
REM You'll need to give the volume a drive letter for later:
assign
list vol
REM Note the drive letter that the volume has been given.  Mine was F:, so I'll use that in the example.
REM Done creating new EFI partition.

REM Optionally create a new System Reserved partition:
create part msr size=1000
REM Done creating new System Reserved partition.

REM We're done with diskpart.exe:
exit
REM You should no longer see the DISKPART> prompt.

REM Note that you may need to change these drive letters, particularly F:.  F: should match the volume you created previously.
bcdboot C:\Windows /s F: /f UEFI

REM We no longer need a drive letter for the EFI partition, so we should remove it:
diskpart
list disk
REM Change disk number appropriately.
sel disk 0
list vol
REM Change volume number appropriately.
sel vol 2
REM Remove drive letter assignment:
remove
REM Exit diskpart.exe:
exit

REM Exit cmd.exe:
exit

모든 것이 제대로 작동하는지 확인하기 위해 재부팅해야합니다. 변경 사항에 맞게 BIOS 부팅 순서 설정을 업데이트해야 할 수도 있습니다. 필자의 경우 BIOS 설정이 이미 정확했기 때문에 재부팅 루프에 갇혔습니다. 컴퓨터를 부팅 할 때마다 잘못 배치 된 EFI 파티션이있는 기존 드라이브를 수동으로 선택해야했습니다.

모든 것이 예상대로 작동하면 이전 EFI 파티션을 삭제할 수 있습니다. 작동하지 않거나 BIOS가 여전히 이전 파티션에서 부팅하도록 구성된 경우 diskpart.exe에서 재정의 플래그를 사용하더라도 Windows에서이를 삭제하도록 허용하지 않습니다. 어쨌든 이전 파티션을 제거하고 싶을 때 삭제하면 새 파티션에서 부팅 할 수 있습니다.

diskpart
list disk
REM Change disk number appropriately.
sel disk 2
list part

REM You can repeat this next group of steps to delete as many "special" partitions as you like.  I had 4 reserved partitions from an old OEM installation.  Just make sure you don't delete your data!  The "override" flag is only necessary for partitions that can't normally be deleted.
REM Change partition number appropriately.
sel part 1
del part override

REM When you're done, exit diskpart.exe:
exit

REM Exit cmd.exe:
exit

2
매우 상세하고 잘 설명 된 답변입니다. 감사!
kumarharsh

3

나는 이것이 오래된 게시물이라는 것을 알고 있지만 많은 사람들이 여전히 좋은 대답을 원한다고 생각합니다.

이는 Windows 7, 8, 10에 적용됩니다. ESP 파티션이 활성 OS 이외의 다른 디스크에 있고 백업 될 경우 이벤트 ID : 12290에도 유효합니다.

먼저 ESP 파티션이 포함 된 다른 드라이브를 분리하여 실수로 변경하지 마십시오.

그런 다음 ESP 파티션이 상주 할 디스크에서 100-300MB의 새 파티션을 작성해야합니다. 드라이브가 가득 찬 경우 먼저 기존 파티션 중 하나를 축소해야합니다.

내 경우에는 부팅, USB 스틱에서 Xubuntu 13 (12.1 이상 우분투 생각) 라이브. 설치하지 마십시오.

Gparted를 열고 파티션을 만들고 FAT32로 포맷하십시오. 드라이브를 "boot"로 플래그하고 "boot"로 표시된 다른 파티션을 플래그 지정하십시오. 가능하면 새 파티션에 드라이브 문자를 할당하십시오. 그렇지 않은 경우 나중에 diskpart를 사용하여 수행 할 수 있습니다.

다시 시작한 다음 Windows 설치 DVD에서 Windows (RE) 복구로 부팅하십시오. 명령 프롬프트로 이동하십시오. diskpart를 시작하고 Gparted에서 가능하지 않은 경우 새 파티션에 드라이브 문자를 할당하십시오. diskpart를 종료하지만 명령 프롬프트를 유지하십시오.

이제 필요한 파일을 새 파티션으로 복사합니다.

bcdboot <source> /S <ESP drive letter>: /f UEFI

공백을 메모하십시오! 예:bcdboot c:\Windows /s x: /f UEFI

이 명령은 파티션 ESP 상태도 제공합니다.

다음 명령을 사용하여 BCD를 다시 빌드하십시오.

bootrec /RebuildBcd

당신이 ESP 파티션에 추가 할 어떤 OS 묻는 자 할 때, 당신은 말할 는 포함 할 것과 없음을 당신이로 부팅 할 수 싶지 않은 것들로. 필자의 경우와 마찬가지로 최근에 Windows 10으로 업그레이드했으며, 아시다시피 Windows를 삭제하지 않으면 Windows가 이전 Windows 7/8을 잠시 동안 저장합니다. 이전 OS의이 사본은 일반적으로 부팅 할 수있는 것이 아닙니다. 일반적으로에 있습니다 Windows.old. 따라서 All 대안을 선택하지 마십시오 .

잘 모르겠지만이 명령은 Windows 설치 만 검색한다고 생각합니다. 예를 들어 같은 컴퓨터에 Linux OS가있는 경우 그런 다음 부팅을 시작하려면 bcdedit와 같은 것을 사용해야합니다.

내가 사용하지 않은 마지막 명령이 있습니다.

bootrec /fixboot

나는 명령에 대해 더 많이 배우려고 노력했지만 ESP 파티션에 부팅 플래그를 설정하고 부팅 가능하게 만든다고 생각합니다. 이것은 ESP 파티션을 Gparted에서 부팅으로 플래그했을 때와 동일해야합니다.

더 이상 원하지 않는 다른 ESP 파티션이있는 경우 가장 쉬운 방법은 Linux / Gparted로 다시 부팅하여 삭제하는 것입니다.


나를 위해, bootrec /fixboot매번 같은 파일을 찾을 수없는 동일한 파일을 던질 때까지 모든 것이 완벽하게 발생합니다 .
kumarharsh

Windows가 다른 드라이브에있을 때 Windows 파티션을 자동으로 마운트하지 않아 부팅이 항상 실패하는 것 같습니다.
Jeroen

1

정품 W10 설치 ISO (DVD)를 사용하여 새 SSD 디스크에 새로 설치했습니다. 설치는 GPT 대신 MBR 유형으로 진행되었습니다. 보안 부팅이 필요했기 때문에이 새로운 설치를 데이터 손실없이 MBR에서 GPT로 변환해야했습니다.

그런 다음 디스크 끝에서 마지막 NTFS 파티션을 축소하여 여유 공간 (260MB)을 만들었습니다 (USB 스틱에서 SystemRecueCD로 Linux를 부팅하고 gparted를 사용했지만 Windows 10의 디스크 관리자도 사용할 수 있음).

그런 다음이 새로운 작은 파티션을 FAT32로 포맷했습니다 (Windows 또는 Linux에서도 가능). 원래 EFI에서이 새 파티션으로 파일을 복사했습니다 (Windows는 드라이브 문자 C :의 디스크 두 개를 좋아하지 않기 때문에 Linux에서 수행했습니다).

그런 다음 Linux에서 gdisk를 사용하여 MBR을 GPT로 변경했습니다. gdisk를 사용한 다음이 작은 파티션을 ef00 (EFI) 유형으로 변경하고 부팅 가능으로 표시해야합니다 (하나만 가능하므로 부팅 가능 플래그는 원래 부팅 가능 드라이브 C :에서 제거되어야 함).

그런 다음 노트북의 SETUP에서 부팅 유형을 UEFI 전용으로 변경하여 실제로 EFI로 부팅되는지 확인했습니다. 일부 파일이 누락되어 (이름에 'efi'가 있음) Windows가 부팅되지 않았습니다.

그런 다음 Windows 10 설치 DVD로 부팅하고 "Rescue system"을 선택한 다음 "Fix boot problems"와 같은 항목을 선택했습니다. 그런 다음 Win10은 문제없이 부팅되었습니다. bcdboot에 수동 손상이 필요하지 않습니다.

EFI 구성은 Linux의 efibootmgr 유틸리티로 확인할 수 있습니다.


0

자, 또 다른 해결책을 추가합시다. 저의 목표는 EFI 파티션을 복사 할뿐만 아니라 다른 숨겨진 파티션도 고려하는 것이 었습니다. 순서가 중요한지 확실하지 않지만 (개인적으로 msdn에 설명 된 것과 다른 것이 있었음) w / e.

어쨌든, 나는 위업을 위해 GParted Live 를 사용했습니다 . 부팅 한 후에 C:는 새 디스크에없는 동일한 MiB 파티션 수의 Windows 주 파티션 (필요한 수 )을 줄인 다음 끝으로 이동하십시오. 시간이 좀 걸릴 것입니다.

그럼, 난 그냥 새로 위치를 하나의 크기를 조정할 아래에 새 16MiB 파티션 만들기 위해 진행 dd은 Microsoft 파티션을 소유 (대한 이유 헤어진가 포맷되지 않은 FS를 처리 할 수없는 것 같다). 항상 dd를 사용할 때 명령에 매우주의하십시오.

완료되면 GParted GUI로 돌아가서 새 MSR 파티션의 올바른 플래그와 이름을 수동으로 설정 한 다음 원래 파티션을 삭제했습니다. 마지막으로 복구 및 EFI 파티션을 원래 HDD에서 SSD로 복사 하고 이름 / 플래그 작업을 반복하여 sgdisk -s파티션 순서를 수정했습니다.

재부팅 및 이익! 최소한 efibootmgr 또는 bcdboot 로 땜질 할 필요가 없습니다 . 적어도 내 랩톱에서는 자동으로 새로운 ESP를 찾았습니다.

편집 : 첫 번째 디스크를 확장 할 때 어떤 이유로 Windows 디스크 관리자가 디스크를 동적 볼륨으로 변환합니다 . 이 해결 방법을 확인하십시오 .

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.