ย้ายพาร์ติชันระบบ EFI ไปยังไดรฟ์อื่น


14

ฉันมีการติดตั้ง Windows 8 บน HDD โดยใช้ UEFI เป็นบูต 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 อยู่บน HDD แทนที่จะเป็น SSD นี่คือรายการพาร์ติชัน SSD:

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

ฉันคิดว่าทางออกที่ดีที่สุดจะอยู่บน SSD ด้วยเหตุผลสองประการ:

อย่างแรกคือประสิทธิภาพ (ฉันเดาว่ามันจะเร็วกว่า SSD เล็กน้อยเนื่องจากเวลาหมุนขึ้นสำหรับ HDD แต่ฉันอาจผิดไป)

เหตุผลที่สองคือความมั่นคง ขณะที่ฉันวางแผนที่จะใช้เฉพาะการติดตั้ง Windows 8 ที่อยู่บน SSD และฉันอาจจะลบพาร์ติชันระบบบน HDD เพื่อใช้เป็นอุปกรณ์จัดเก็บข้อมูลฉันคิดว่าพาร์ติชันสำหรับบูตควรอยู่ในสภาพเดียวกัน ขับเป็นระบบปฏิบัติการ

ดังนั้นคำถามคือฉันจะย้าย EFI System Partition ไปยัง SSD ได้อย่างไร

คำตอบ:


4

คำแนะนำของฉันคือไม่ตื๊อ การปรับปรุงประสิทธิภาพจะไม่สำคัญเนื่องจากไฟล์ที่อ่านจาก ESP มีขนาดเล็กและอ่านได้เฉพาะเมื่อคอมพิวเตอร์บูต นอกจากนี้ตัวพาร์ติชั่นนั้นมีขนาดเล็กตามมาตรฐานที่ทันสมัยดังนั้นคุณจะไม่สามารถกู้คืนพื้นที่ได้มากพอที่จะใช้ความพยายามอย่างคุ้มค่า นอกจากนี้ความพยายามในการย้าย ESP มีความเสี่ยงในการสร้างปัญหาการบู๊ตซึ่งต้องใช้เวลานานกว่าในการแก้ไขมากกว่าเวลาใด ๆ ที่คุณสามารถบันทึกในเวลาบูตที่ดีขึ้นจากการย้าย

หากคุณต้องการที่จะไปข้างหน้าและทำสิ่งนี้เป็นประสบการณ์การเรียนรู้แม้จะมีคำแนะนำของฉันคุณจะต้องพิจารณา:

  • การสร้าง ESP ด้วยซอฟต์แวร์การแบ่งพาร์ติชันที่คุณต้องการ ฉันไม่แน่ใจว่าคุณจะทำอย่างไรกับเครื่องมือ Windows มาตรฐาน ด้วยgdisk,คุณต้องการสร้างพาร์ทิชันประเภท EF00 แต่แล้วคุณจะต้องสร้างระบบแฟ้ม FAT ในมันตั้งแต่gdiskเป็นเครื่องมือแบ่งพาร์ทิชันเท่านั้น (มันไม่ได้จัดการกับระบบไฟล์)
  • การติดตั้ง ESP ทั้งสองพร้อมกันเพื่อคัดลอกไฟล์ (หรือตามลำดับโดยใช้ที่เก็บข้อมูลชั่วคราว) ฉันไม่แน่ใจว่าจะทำสิ่งนี้ใน Windows ได้อย่างไรแม้ว่าจะเป็นเรื่องง่ายใน Linux หรือจากเชลล์ EFI (มันจะเป็นไปโดยอัตโนมัติในเปลือก EFI จริงๆแล้ว)
  • การลงทะเบียนบูตโหลดเดอร์ในบ้านใหม่ (การใช้ชื่อไฟล์EFI\BOOT\bootx64.efiทางเลือกอาจเป็นทางเลือกที่ง่ายกว่า แต่เป็นวิธีที่ต้องการน้อยกว่าในการโหลดบูตโหลดเดอร์) bcdeditคำสั่งWindows และbcfgเครื่องมือของ EFI shell สามารถลงทะเบียน boot loader ได้ อย่างไรก็ตามbcdeditไม่ยืดหยุ่นเนื่องจาก Windows รองรับเพียง ESP เดียวซึ่งสร้างปัญหาเมื่อคัดลอก ESP

ขอบคุณสำหรับคำตอบ. ที่จริงฉันชอบที่จะมี ESP ใน SSD เพราะฉันอาจตัดสินใจที่จะลบ HDD ดังนั้นฉันคิดว่า ESP ควรอยู่ในไดรฟ์ระบบปฏิบัติการ อย่างไรก็ตามประเด็นล่าสุดทำอย่างไร?
Pincopallino

ไม่เป็นไรฉันจัดการย้ายพาร์ติชั่นไปที่บู๊ต SSD และ Windows เป็นประจำ ขอบคุณมาก!
Pincopallino

ข้อมูลที่น่าสนใจบางอย่างที่นี่น่าจะมีค่ามากในการอธิบายสิ่งที่เกิดขึ้นใน HOWTO ทั่วไป แต่ไม่ตอบคำถามจริงๆ "ดังนั้นคำถามคือฉันจะย้าย EFI System Partition ไปยัง SSD ได้อย่างไร" ฉันใช้เวลาหลายวันในชีวิตของฉันพยายามที่จะกู้คืนจากการตัดสินใจที่ไม่ดีเมื่อสองสามปีที่ผ่านมาและมันก็ยังหลอกหลอนฉันและในระยะสั้นมันลงมาเพื่อย้ายพาร์ติชัน EFI ของฉันดังนั้นฉันจึงอยากเห็นคำตอบที่ดี
rainabba

จากการสังเกตว่าการมีพาร์ติชัน EFI สองตัวทำให้การอัปเดต Windows ล้มเหลวในทางที่คลุมเครืออย่างมากดังนั้นให้ลบอันเก่าหลังจากย้าย
Jack Wasey

14

สำหรับคนอย่างฉันที่มาจาก Google: ใช่เป็นไปได้ที่จะทำเช่นนี้กับ Windows โดยไม่ต้องใช้เครื่องมือของบุคคลที่สาม ทดสอบกับ Windows 10 Pro x64 ฉันใช้ขั้นตอนนี้เพื่อย้ายทั้งพาร์ติชันระบบ EFI และพาร์ติชันระบบที่สงวนไว้ มันควรจะทำงานบน Windows 8 เช่นกัน

หากไดรฟ์หลักของคุณไม่มีพื้นที่ว่างก่อนอื่นคุณต้องลดขนาด C: พาร์ติชัน (หรือเทียบเท่า) ฉันใช้ 260 MB ในตัวอย่างนี้เนื่องจากเป็นสิ่งที่ไดรฟ์ใหม่ต้องการ แต่ไดรฟ์รุ่นเก่าที่มีขนาดเล็กกว่าต้องการเพียง 100 MB หากคุณไม่ต้องการเว้นช่องว่างให้จดบันทึกความคิดเห็นที่ระบุขั้นตอนที่คุณควรข้าม

ในขณะที่คุณอยู่ในนั้นคุณอาจต้องการย้ายพาร์ติชันระบบสำรองของคุณ โดยทั่วไปแล้วจะมีขนาด 1000 MB และเก็บข้อมูลเมตาของ Windows ที่เป็นประโยชน์ คุณอาจพบว่าฟีเจอร์บางอย่างของ Windows ไม่สามารถใช้งานได้หากไม่มีพาร์ติชั่นระบบสงวน ฉันได้รวมขั้นตอนในการสร้างพาร์ติชันดังกล่าวไว้ในไดรฟ์หลักของคุณและทำเครื่องหมายขั้นตอนเหล่านั้นด้วยความคิดเห็นแล้ว ควรแยกขั้นตอนเหล่านั้นออกง่ายถ้าคุณอยากข้ามขั้นตอนนี้ แต่คุณจะต้องเปลี่ยนตัวเลขเมื่อลดขนาด (เช่น 260 MB แทน 1260 MB)

ความคิดเห็นนำหน้าด้วยREM(สำหรับ "คำพูด") เนื่องจากสนับสนุนทั้ง cmd.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 ของคุณยังคงได้รับการกำหนดให้บู๊ตจากพาร์ติชันเก่า Windows จะไม่ยอมให้คุณลบแม้ว่าคุณจะใช้ค่า override ใน diskpart.exe ก็ตาม เนื่องจากคุณอาจต้องการกำจัดพาร์ติชันเก่านั้นต่อไปการลบมันเป็นวิธีที่ดีในการตรวจสอบให้แน่ใจว่าคุณกำลังบูทจากพาร์ติชันใหม่

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 และใช้ได้กับรหัสเหตุการณ์: 12290 หากพาร์ติชั่น ESP ตั้งอยู่บนดิสก์อื่นจากนั้นเป็นพาร์ติชันที่ใช้งานระบบปฏิบัติการและจะทำการสำรองข้อมูล

ก่อนอื่นให้ยกเลิกการเชื่อมต่อไดรฟ์อื่นที่มีพาร์ติชั่น ESP ดังนั้นคุณจะไม่เปลี่ยนโดยบังเอิญ

จากนั้นคุณต้องสร้างพาร์ติชันใหม่ที่ 100 - 300 MB บนดิสก์ที่คุณต้องการให้พาร์ติชัน ESP ตั้งอยู่ ถ้าไดรฟ์เต็มคุณต้องลดขนาดพาร์ติชันที่มีอยู่ก่อน

บูตในกรณีของฉัน Xubuntu 13 (Ubuntu เหนือ 12.1 ฉันคิดว่า) จากแท่ง USB สด อย่าติดตั้ง

เปิด Gparted แล้วสร้างพาร์ติชันแล้วฟอร์แมตเป็น FAT32 ตั้งค่าสถานะไดรฟ์เป็น "บูต" และยกเลิกการติดตั้งพาร์ติชันอื่น ๆ ที่ทำเครื่องหมายเป็น "บู๊ต" กำหนดพาร์ติชันใหม่ให้เป็นอักษรระบุไดรฟ์ด้วย ถ้าไม่คุณสามารถทำได้ด้วย diskpart ในภายหลัง

รีสตาร์ทและบูตตอนนี้พร้อมการกู้คืน Windows (RE) จากดีวีดีการติดตั้ง Windows ไปที่พรอมต์คำสั่ง เริ่ม diskpart และกำหนดพาร์ทิชันใหม่ให้เป็นอักษรระบุไดรฟ์หากไม่สามารถทำได้ใน Gparted ออกจาก diskpart แต่อยู่ในพร้อมรับคำสั่ง

ตอนนี้คุณกำลังจะคัดลอกไฟล์ที่จำเป็นลงในพาร์ติชันใหม่

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

สังเกตช่องว่าง! ตัวอย่าง:bcdboot c:\Windows /s x: /f UEFI

คำสั่งนี้จะให้สถานะ ESP ของพาร์ติชันด้วยเช่นกัน

สร้าง BCD อีกครั้งโดยใช้คำสั่งต่อไปนี้:

bootrec /RebuildBcd

ตอนนี้เมื่อคุณถูกถามว่าระบบปฏิบัติการใดที่คุณต้องการเพิ่มลงในพาร์ติชัน ESP คุณจะตอบว่าใช่สำหรับระบบปฏิบัติการที่คุณต้องการรวมและไม่ใช่สำหรับระบบปฏิบัติการที่คุณไม่ต้องการบูต ในกรณีของฉันฉันเพิ่งอัพเกรดเป็น Windows 10 และอย่างที่คุณอาจทราบ Windows จะเก็บ Windows 7/8 เก่าของคุณสักครู่หากคุณไม่ได้ลบมันเอง สำเนาของระบบปฏิบัติการเก่านี้ไม่ใช่สิ่งที่คุณต้องการบูต Windows.oldปกติมันอาศัยอยู่ใน ดังนั้นอย่าเลือกทางเลือกทั้งหมด

ฉันไม่รู้ แต่ฉันคิดว่าคำสั่งนี้ค้นหาเฉพาะการติดตั้ง Windows หากคุณมี Linux OS เป็นตัวอย่างในคอมพิวเตอร์เครื่องเดียวกัน จากนั้นคุณต้องใช้บางสิ่งบางอย่างเช่น bcdedit หลังจากนั้นเพื่อให้ได้รับการบูตเช่นกัน

มีคำสั่งสุดท้ายที่ฉันไม่ได้ใช้

bootrec /fixboot

ฉันพยายามที่จะเรียนรู้เพิ่มเติมเกี่ยวกับการออกคำสั่งและฉันคิดว่ามันแค่ตั้งค่าสถานะการบูตในพาร์ติชัน ESP และทำให้สามารถบูตได้ สิ่งนี้ควรเหมือนกับเมื่อฉันตั้งค่าสถานะพาร์ติชัน ESP เป็นการบูตใน Gparted

หากมีพาร์ติชัน ESP อื่นที่คุณไม่ต้องการอีกต่อไปวิธีที่ง่ายที่สุดคือการบูตเข้าสู่ Linux / Gparted อีกครั้งและลบออกจากที่นั่น


สำหรับฉันทุกอย่างเกิดขึ้นอย่างสมบูรณ์แบบจนกว่ามันจะเกิดขึ้นbootrec /fixbootซึ่งเพิ่งโยนไฟล์เดียวกันไม่พบข้อผิดพลาดทุกครั้ง
kumarharsh

ดูเหมือนว่า Windows จะไม่เมาต์พาร์ติชัน Windows โดยอัตโนมัติเมื่ออยู่ในไดรฟ์อื่นทำให้บูตไม่สำเร็จเสมอ
Jeroen

1

ฉันสร้างการติดตั้งใหม่บนแผ่นดิสก์ SSD ใหม่โดยใช้ ISO การติดตั้ง W10 ของแท้ (DVD) การติดตั้งไปที่ประเภท MBR แทน GPT ฉันต้องการ Secure boot ดังนั้นฉันต้องแปลงการติดตั้งใหม่ (โดยไม่สูญเสียข้อมูล) จาก MBR เป็น GPT

จากนั้นฉันสร้างพื้นที่ว่าง (260 MB) โดยลดขนาดพาร์ติชัน NTFS สุดท้ายที่ท้ายแผ่น (ฉันบูต Linux จาก SystemRecueCD จาก USB stick และใช้ gparted แต่ผู้จัดการดิสก์จาก Windows 10 ก็สามารถใช้ได้เช่นกัน)

จากนั้นฉันก็สร้างพาร์ติชันเล็กใหม่นี้ให้เป็น FAT32 (มันสามารถทำได้ใน Windows หรือใน Linux ด้วย) ฉันคัดลอกไฟล์จาก EFI ดั้งเดิมไปยังพาร์ติชันใหม่นี้ (ฉันทำใน Linux เพราะ Windows ไม่ชอบดิสก์สองแผ่นที่มีอักษรชื่อไดรฟ์ C :)

จากนั้นฉันเปลี่ยน MBR เป็น GPT โดย gdisk ใน Linux ฉันใช้ gdisk และจากนั้นพาร์ทิชันขนาดเล็กนี้จะต้องเปลี่ยนเป็นประเภท ef00 (EFI) และทำเครื่องหมายว่าสามารถบูตได้ (ควรมีเพียงอันเดียวดังนั้นแฟล็กที่สามารถบูตได้ควรจะถูกลบออกจากไดรฟ์บูตที่เริ่มระบบ C :)

จากนั้นฉันเปลี่ยนประเภทการบูทใน SETUP ของโน้ตบุ๊กเป็น UEFI เท่านั้นเพื่อให้แน่ใจว่ามันบู๊ตจาก EFI จริงๆ Windows ไม่สามารถบู๊ตได้เนื่องจากมีไฟล์บางไฟล์หายไป (ด้วยชื่อ 'efi')

จากนั้นฉันก็บูทจากแผ่นดีวีดีติดตั้ง Windows 10 เลือก "ระบบกู้ภัย" จากนั้นบางอย่างเช่น "แก้ไขปัญหาการบูต" จากนั้น Win10 บู๊ตโดยไม่มีปัญหา ไม่จำเป็นต้องใช้ความตั้งใจโดย bcdboot

การกำหนดค่า EFI สามารถตรวจสอบได้โดยยูทิลิตี้ efibootmgr ใน Linux


0

เรามาเพิ่มอีกวิธีกัน เป้าหมายของฉันไม่เพียง แต่คัดลอกพาร์ติชัน EFI เท่านั้น แต่ยังคำนึงถึงพาร์ติชั่นอื่นที่ซ่อนอยู่ด้วย ฉันไม่แน่ใจว่าคำสั่งซื้อนั้นมีความสำคัญหรือไม่

อย่างไรก็ตามฉันใช้GParted Liveเป็นเพลง เมื่อคุณทำการบูทแล้วให้ลดพาร์ติชั่นหลักของ Windows (สิ่งที่ควรเป็นC:) ของ MiB ในปริมาณที่เท่ากันของพาร์ติชั่นที่คุณพลาดบนดิสก์ใหม่และย้ายมันไปจนสุด จะใช้เวลาสักครู่

จากนั้นฉันดำเนินการสร้างพาร์ติชัน 16MiB ใหม่ด้านล่างพาร์ติชันใหม่ที่มีการปรับขนาดที่ddพาร์ทิชันสำรองของ Microsoft ( ด้วยเหตุผลที่ดูเหมือนว่าไม่สามารถจัดการ FS ที่ยังไม่ฟอร์แมตได้) เช่นเคยเมื่อใช้ dd ต้องระมัดระวังอย่างมากกับคำสั่ง

เมื่อเสร็จแล้วฉันก็กลับไปที่ GParted GUI และตั้งค่าสถานะและชื่อสำหรับพาร์ติชัน MSR ใหม่ด้วยตนเองแล้วลบอันเดิมออก สุดท้าย แต่ไม่ท้ายสุดฉันก็คัดลอกพาร์ติชั่นการกู้คืนและ EFI จาก HDD ดั้งเดิมไปยัง SSD (และทำซ้ำการดำเนินการชื่อ / แฟล็ก) และเรียกใช้sgdisk -sเพื่อแก้ไขลำดับพาร์ติชัน

รีบูตและทำกำไร! ไม่จำเป็นต้องทิงเกอร์กับ efibootmgr หรือbcdbootอย่างน้อยในแล็ปท็อปของฉันมันจะพบ ESP ใหม่โดยอัตโนมัติ

แก้ไข: ถ้าเมื่อขยายดิสก์แรกด้วยเหตุผลบางประการ Windows Disk Manager จะแปลงเป็นไดรฟ์ข้อมูลแบบไดนามิก .. ตรวจสอบวิธีแก้ปัญหานี้

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.