Pindahkan Partisi Sistem EFI ke drive lain

14

Saya memiliki instalasi Windows 8 pada HDD, menggunakan UEFI sebagai boot. HDD memiliki tabel GPT berikut:

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

(Saya minta maaf itu dalam bahasa Italia, tetapi terjemahannya cukup jelas).

Saya baru-baru ini membeli drive SSD, menghubungkannya dan menginstal Windows 8. Sekarang saya memiliki dual boot yang berfungsi, tetapi partisi UEFI ada di HDD, bukan SSD. Berikut daftar partisi SSD:

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

Saya pikir solusi terbaik adalah dengan menggunakan SSD karena dua alasan:

Yang pertama adalah kinerja (saya kira itu akan menjadi sedikit lebih cepat pada SSD karena waktu spin-up untuk HDD, tapi saya mungkin salah tentang itu.)

Alasan kedua adalah konsistensi. Karena saya berencana untuk hanya menggunakan instalasi Windows 8 yang terletak di SSD dan saya mungkin akan menghapus partisi sistem pada HDD untuk menggunakannya sebagai perangkat penyimpanan data, saya pikir bahwa partisi boot harus sama drive sebagai OS.

Jadi pertanyaannya adalah bagaimana cara memindahkan Partisi Sistem EFI ke SSD?

Pincopallino
sumber

Jawaban:

4

Rekomendasi saya adalah untuk tidak mengganggu. Peningkatan kinerja akan diabaikan, karena file yang dibaca dari ESP kecil dan hanya dibaca ketika komputer melakukan booting. Selain itu, partisi itu sendiri kecil oleh standar modern, sehingga Anda tidak akan mendapatkan ruang yang cukup untuk membuat upaya ini bermanfaat. Selain itu, upaya untuk memindahkan ESP berisiko menimbulkan masalah boot yang akan membutuhkan waktu lebih lama untuk diperbaiki daripada kapan pun Anda bisa menghemat waktu boot yang lebih baik dari gerakan tersebut.

Jika Anda ingin maju dan melakukan ini sebagai pengalaman belajar terlepas dari rekomendasi saya, Anda harus melihat ke dalam:

  • Membuat ESP dengan perangkat lunak partisi apa pun yang Anda suka. Saya tidak yakin bagaimana Anda akan melakukan ini dengan alat Windows standar. Dengan gdisk, Anda akan membuat partisi tipe EF00, tetapi Anda kemudian harus membuat sistem file FAT di atasnya, karena gdiskmerupakan alat hanya partisi (tidak menangani sistem file).
  • Pasang kedua ESP secara bersamaan untuk menyalin file (atau secara berurutan menggunakan penyimpanan sementara). Saya tidak yakin bagaimana melakukan ini di Windows, meskipun itu akan mudah di Linux atau dari shell EFI. (Sebenarnya, itu akan otomatis dalam shell EFI.)
  • Mendaftarkan boot loader di rumah barunya. (Menggunakan nama file cadangan EFI\BOOT\bootx64.efikemungkinan akan menjadi alternatif yang lebih sederhana, tetapi merupakan metode yang kurang disukai untuk memuat bootloader.) bcdeditPerintah Windows dan bcfgtool shell EFI dapat mendaftarkan boot loader; Namun, bcdedittidak fleksibel karena Windows hanya mendukung satu ESP, yang menciptakan masalah ketika menyalin ESP.
Rod Smith
sumber
Terima kasih atas jawaban Anda. Yah saya sebenarnya lebih suka memiliki ESP di SSD karena saya mungkin memutuskan untuk menghapus HDD. Jadi saya pikir ESP harus di drive OS. Lagi pula, bagaimana poin terakhir dilakukan?
Pincopallino
Sudahlah, saya berhasil memindahkan partisi ke SSD dan Windows boot secara teratur. Terima kasih banyak!
Pincopallino
Beberapa info menarik di sini yang mungkin SANGAT berharga dalam menjelaskan apa yang terjadi di HOWTO umum, tetapi tidak benar-benar menjawab, "Jadi pertanyaannya adalah bagaimana cara memindahkan Partisi Sistem EFI ke SSD?" Saya telah menghabiskan berhari-hari dalam hidup saya mencoba untuk pulih dari keputusan yang buruk beberapa tahun yang lalu dan itu masih menghantui saya dan singkatnya, itu turun untuk memindahkan partisi EFI saya jadi saya ingin melihat jawaban yang baik.
rainabba
Sebagai catatan, memiliki dua partisi EFI terkadang menyebabkan pembaruan Windows gagal dengan cara yang sangat tidak jelas, jadi hapus yang lama setelah dipindahkan.
Jack Wasey
14

Untuk orang-orang seperti saya yang datang dari Google: Ya, dimungkinkan untuk melakukan ini dengan Windows, tanpa alat pihak ketiga. Diuji dengan Windows 10 Pro x64. Saya menggunakan prosedur ini untuk memindahkan Partisi Sistem EFI dan partisi Cadangan Sistem. Ini harus bekerja pada Windows 8 juga.

Jika drive utama Anda tidak memiliki ruang, pertama Anda harus menyusutkan partisi C: (atau yang setara). Saya menggunakan 260 MB dalam contoh ini karena itulah yang dibutuhkan oleh drive yang lebih baru, tetapi drive yang lebih tua dengan sektor yang lebih kecil hanya membutuhkan 100 MB. Jika Anda tidak perlu membuat ruang, perhatikan komentar yang menunjukkan langkah mana yang harus Anda lewati.

Saat Anda melakukannya, Anda mungkin ingin memindahkan partisi Sistem Cadangan Anda. Ini biasanya 1000 MB dan menyimpan metadata Windows yang berguna. Anda mungkin menemukan bahwa beberapa fitur Windows tidak berfungsi tanpa partisi Khusus Sistem. Saya telah menyertakan langkah-langkah untuk membuat partisi seperti itu di drive utama Anda dan menandai langkah-langkah tersebut dengan komentar. Seharusnya mudah untuk mengecualikan langkah-langkah itu jika Anda lebih suka melewatkannya, tetapi Anda harus mengubah angka ketika menyusut (misalnya, 260 MB bukannya 1260 MB).

Komentar diawali dengan REM(untuk "komentar"), karena ini didukung oleh cmd.exe dan diskpart.exe.

Dari cmd.exe berjalan sebagai administrator:

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

Saatnya untuk reboot untuk memastikan semuanya bekerja. Anda mungkin perlu memperbarui pengaturan urutan boot BIOS Anda agar sesuai dengan perubahan. Dalam kasus saya, pengaturan BIOS sudah benar, jadi saya terjebak di loop reboot; setiap kali saya ingin mem-boot komputer saya, saya harus secara manual memilih drive lama dengan partisi EFI yang salah tempat.

Jika semuanya berfungsi seperti yang diharapkan, Anda akan dapat menghapus partisi EFI lama. Jika tidak berhasil, atau BIOS Anda masih dikonfigurasi untuk boot dari partisi lama, Windows tidak akan membiarkan Anda menghapusnya, bahkan jika Anda menggunakan flag override di diskpart.exe. Karena Anda mungkin ingin menyingkirkan partisi lama itu, menghapusnya adalah cara yang bagus untuk memastikan Anda boot dari partisi baru.

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
Zenexer
sumber
2
Jawaban yang sangat terperinci dan dijelaskan dengan baik, yang berfungsi! Terima kasih!
kumarharsh
2

Saya tahu ini adalah posting lama, tetapi saya pikir jawaban yang baik masih diinginkan oleh banyak orang.

Ini berlaku untuk Windows 7, 8, 10. Dan juga berlaku untuk ID Peristiwa: 12290 jika partisi EFI terletak pada disk selain dari yang merupakan OS aktif dan harus didukung.

Pertama-tama lepaskan semua drive lain yang berisi partisi EFI, jadi Anda tidak sengaja mengubahnya.

Maka Anda harus membuat partisi baru pada 100-300MB pada disk yang Anda inginkan partisi EFI berada. Jika drive penuh, pertama-tama Anda harus menyusutkan salah satu partisi yang ada.

Boot, dalam kasus saya, xubuntu 13 (ubuntu di atas 12.1 saya pikir) dari usb-stick, langsung. Jangan pasang itu.

Buka Gparted dan buat partisi dan format ke FAT32. Tandai drive sebagai "boot" dan hapus centang pada partisi lain yang di-flaged sebagai "boot". Juga berikan partisi drive huruf drive jika memungkinkan. Jika tidak, Anda bisa melakukannya dengan diskpart nanti.

Mulai ulang dan sekarang boot dengan Windows (RE) Recovery dari DVD instalasi Windows. Pergi ke promt perintah. Mulai diskpart dan tetapkan driveletter partisi baru jika itu tidak mungkin di Gparted. Keluar dari diskpart tetapi tetaplah di promt perintah.

Sekarang Anda akan menyalin file-file penting ke partisi baru.

{bcdboot / S: / f UEFI} CATATAN spasi!

Contoh: {bcdboot c: \ Windows / s: / f UEFI}

Perintah ini juga akan memberikan status EFI partisi.

Bangun kembali BCD menggunakan perintah berikut:

{bootrec / RebuildBcd}

Sekarang ketika Anda ditanya OS apa yang ingin Anda tambahkan ke partisi EFI, Anda mengatakan Ya untuk yang ingin Anda sertakan dan Tidak ke yang tidak ingin Anda masuki. Seperti dalam kasus saya, saya baru-baru ini ditingkatkan ke Windows 10, dan seperti yang Anda tahu, Windows akan menyimpan Windows 7/8 lama Anda untuk sementara waktu jika Anda belum menghapusnya sendiri. Salinan OS lama Anda ini bukan sesuatu yang biasa Anda sukai untuk dapat boot. Itu biasanya terletak di Windows.old. Jadi jangan memilih semua alternatif.

Saya tidak tahu, tapi saya pikir perintah ini hanya mencari instalasi Windows. Jika Anda mendapat os linux misalnya di komputer yang sama. Maka Anda harus menggunakan sesuatu seperti bcdedit sesudahnya untuk mendapatkan boot juga.

Ada perintah terakhir, penyihir yang tidak saya gunakan.

{bootrec / fixboot}

Saya telah mencoba untuk mempelajari lebih lanjut tentang perintah dan saya pikir itu hanya mengatur flag boot pada partisi-efi dan membuatnya bootable. Ini harus sama dengan ketika saya menandai efi-partisi sebagai boot di Gparted.

Jika ada efi-partisi lain yang tidak Anda inginkan lagi, cara termudah adalah boot ke linux / gparted lagi dan hapus dari sana.

Joelbit
sumber
Bagi saya, semuanya terjadi dengan sempurna sampai tiba saatnya bootrec /fixboothanya membuang file yang sama tidak ditemukan kesalahan setiap saat.
kumarharsh
Tampaknya Windows tidak secara otomatis me-mount partisi Windows ketika berada di drive lain, menyebabkan boot selalu gagal.
Jeroen
1

Saya membuat instalasi baru pada disk SSD baru dengan menggunakan ISO (DVD) instalasi W10 asli. Instalasi pergi ke tipe MBR bukan GPT. Saya perlu boot Aman jadi saya harus mengubah instalasi baru ini (tanpa kehilangan data) dari MBR ke GPT.

Kemudian saya membuat ruang kosong (260 MB) dengan mengecilkan partisi NTFS terakhir di akhir disk (saya mem-boot Linux dari SystemRecueCD dari USB stick dan menggunakan gparted, tetapi Manajer disk dari Windows 10 juga dapat digunakan).

Kemudian saya memformat partisi kecil baru ini menjadi FAT32 (bisa juga dilakukan di Windows atau di Linux juga). Saya menyalin file dari EFI asli ke partisi baru ini (saya melakukannya di Linux karena Windows tidak suka dua disk dengan huruf drive bernama C :).

Kemudian saya mengubah MBR menjadi GPT oleh gdisk di Linux. Saya menggunakan gdisk dan kemudian partisi kecil ini harus diubah untuk mengetikkan ef00 (EFI) dan ditandai sebagai bootable (seharusnya hanya satu, jadi flag yang dapat di-boot harus dihapus dari drive bootable asli C :).

Kemudian saya mengubah jenis booting pada SETUP notebook ke UEFI-hanya untuk memastikan bahwa boot-nya benar-benar boot oleh EFI. Windows tidak bisa boot karena ada beberapa file yang hilang (dengan 'efi' dalam namanya).

Kemudian saya boot dari DVD instalasi Windows 10, memilih "Sistem penyelamatan" dan kemudian sesuatu seperti "Memperbaiki masalah boot". Kemudian Win10 boot tanpa masalah. Tidak diperlukan intervensi manual oleh bcdboot.

Konfigurasi EFI dapat diperiksa oleh utilitas efibootmgr di Linux.

Milan Kerslager
sumber
0

Baiklah, mari kita tambahkan solusi lain. Tujuan saya bukan hanya menyalin partisi EFI, tetapi bahkan untuk memperhitungkan yang tersembunyi lainnya . Saya tidak yakin apakah pesanan itu penting (saya pribadi punya yang berbeda dari yang dijelaskan pada msdn) tetapi b / b.

Lagi pula, saya menggunakan GParted Live untuk feat. Setelah Anda mem-boot-nya, kurangi partisi utama Windows (apa yang seharusnya C:) dengan jumlah MiB yang sama dari partisi yang Anda lewatkan pada disk baru dan pindahkan ke ujung. Ini akan memakan waktu.

Kemudian, saya melanjutkan untuk membuat partisi 16MiB baru tepat di bawah yang baru diubah ukurannya di mana untuk ddpartisi milik Microsoft (karena alasan sepertinya parted tidak dapat menangani FS yang belum diformat). Seperti biasa, saat menggunakan dd, berhati-hatilah dengan perintah.

Setelah selesai, saya kembali ke GPUI GUI dan secara manual mengatur bendera dan nama yang tepat untuk partisi MSR baru, kemudian menghapus yang asli. Terakhir, saya akhirnya menyalin partisi Recovery dan EFI dari HDD asli ke SSD (dan mengulangi operasi nama / flag) dan menjalankan sgdisk -suntuk memperbaiki urutan partisi.

Reboot, dan untung! Tidak perlu mengutak-atik efibootmgr atau bcdboot , setidaknya di laptop saya secara otomatis menemukan ESP baru.

EDIT: jika ketika memperpanjang disk pertama, untuk beberapa alasan Windows Disk Manager mengubahnya menjadi volume yang dinamis .. Periksa solusi ini .

mirh
sumber