Tái cấu trúc các tệp Windows EFI trong phân vùng / boot (Linux + Windows boot kép)


17

Tôi đang khởi động kép Windows 10 (Cập nhật trước kỷ niệm) và Fedora 24 trên Lenovo IdeaPad N580 (Intel Pentium B960 2.2GHz, RAM 4GB, UEFI bị tắt Khởi động an toàn). Ban đầu tôi chỉ có Windows 10 và sau đó cài đặt Fedora 23 cùng với nó và mọi thứ đều hoạt động tốt - nó cũng hoạt động tốt khi tôi nâng cấp lên Fedora 24. Một thời gian trước, tôi quyết định muốn dùng thử Ubuntu và chỉ cài đặt nó ghi đè lên root, / boot và phân vùng SWAP và giữ phân vùng nhà của tôi. Windows 10 vẫn có thể khởi động ở đây. Sau đó, tôi quyết định tôi không thích Ubuntu và cài đặt lại Fedora, với 24 trình cài đặt, cố gắng làm chính xác những gì tôi đã làm với Ubuntu. Giao diện hơi khác một chút, nhưng tôi chắc chắn rằng tôi đã làm đúng: sau khi tôi thực hiện tất cả cấu hình phân vùng, nó cho tôi một cửa sổ bật lên nói rằng "Chúng tôi sẽ chỉ chạm vào các phân vùng này". và các phân vùng được liệt kê là root, / boot và SWAP. Không có gì khác.

Sau đó, khi cài đặt xong, tôi khởi động lại. Các tùy chọn duy nhất trong menu GRUB là Fedora và Fedora Recovery - không có gì khác. Không có Windows.

Tôi đã thử cài đặt rEFInd, nó đã hoạt động cho tôi trong quá khứ. Nhưng nó không giúp được gì, nó cho tôi hai lựa chọn tương tự.

Phân vùng Windows vẫn tồn tại và tôi có thể truy cập nó từ Fedora - các tệp quan trọng như / bootmgr và / Boot / BCD dường như còn nguyên vẹn. Phân vùng Windows nằm ở / dev / sda5.

Đồng thời, trong cài đặt BIOS nơi Windows Boot Manager từng xuất hiện, nó không xuất hiện. Nó chỉ có rEFInd và một mục với số kiểu ổ đĩa cứng của tôi - mà tôi giả sử chỉ đưa tôi đến menu GRUB. (Tôi thực sự chưa thử đưa nó lên đầu danh sách và khởi động lại - Tôi hơi lười: P)

Ai đó có thể giúp gì không?

CẬP NHẬT: Manoj đã xác định vấn đề: bằng cách định dạng phân vùng / boot tôi đã thoát khỏi các tệp Windows EFI. Vì vậy, tôi cần phải xây dựng lại các tập tin tại /boot/efi/EFI/Microsoft. Tôi nghĩ rằng tôi đã xây dựng lại thư mục /boot/efi/EFI/Microsoft/Boot, nhưng tôi cần các tệp khác trong Microsoft. Ai đó có thể cho tôi biết những tập tin tôi cần ở đó?


oh, các bootmgfw.efi, bootmgr.efimemtest.efikhông có ...
TheInitializer

NHỮNG PHIM NÀY ĐANG VÀO windows partition/Windows/Boot/EFI!!!
TheInitializer


Vì bạn không thực hiện sao lưu (tại sao?), Bạn nên sửa đổi câu hỏi của mình. "Làm cách nào để tạo lại các tệp khởi động Windows UEFI?"
Xalious

Tôi đã tạo một thư mục EFI từ các tệp tôi tìm thấy trên phân vùng windows của mình, nghĩ rằng nó sẽ hoạt động? Storage2.static.itmages.com/i/16/0809/ '
TheInitializer

Câu trả lời:


19

Vì bạn đã sao chép tất cả các tệp cần thiết vào boot/efi/EFI/Microsoft/Boot, bạn cần xây dựng lại cấu hình trình tải windows. Bạn sẽ cần một usb hoặc dvd có khả năng khởi động windows (64 bit sẽ thích hợp hơn).

1: Khởi động từ phương tiện có thể khởi động của bạn. Đảm bảo rằng bạn đang khởi động ở chế độ UEFI.

2: Ở màn hình đầu tiên (nơi nó yêu cầu bạn chọn ngôn ngữ và bàn phím), nhấn Shift + F10. Điều này sẽ cung cấp cho bạn một dấu nhắc lệnh.

3: Nhập diskpartvà sau đó list disk(để liệt kê tất cả các đĩa có sẵn). Chọn ổ cứng thích hợp bằng cách gõ select disk #.

4: Bây giờ gõ list partitionvà đảm bảo rằng có một phân vùng loại system(phân vùng efi). Chọn phân vùng này bằng cách gõ select partition #và gán ký tự ổ đĩa tạm thời cho nó, nói Gbằng cách gõ assign letter=G.

5: Chỉ để đảm bảo rằng ký tự ổ đĩa được gán chính xác, gõ list vol. Bạn sẽ thấy một tập với drive letter (Ltr) as G&file system (Fs) as FAT32

6: Đóng diskpartbằng cách gõ thoát. Hãy chắc chắn rằng bạn đang ở trong X:\Sources.

7: Loại cd /d G:\EFI\Microsoft\Boot\. Bây giờ chạy các lệnh này từng cái một.

bootrec /scanos     
bootrec /fixmbr    
bootrec /fixboot
bootrec /rebuildbcd    
bcdboot C:\Windows /l en-us /s G: /f ALL

8: Đóng dấu nhắc lệnh và khởi động lại hệ thống. Bây giờ bạn nên khởi động vào windows.

9: Tất nhiên bạn có thể không hoặc không có menu grub ngay bây giờ. Nhưng cài đặt grub dễ dàng hơn nhiều. Thực hiện theo bất kỳ một trong những liên kết này để biết thêm.

link1 , link2 , link3

Nguồn: 1 , 2 , 3 , 4 .

EDIT - Đảm bảo rằng bạn xóa ký tự ổ đĩa G được gán cho phân vùng efi càng sớm càng tốt để giữ cho nó không hiển thị trong Máy tính của tôi.


Cảm ơn bạn, nhưng tôi không có USB khôi phục (hơi ngu ngốc đối với tôi) và tôi không thể tạo một cái mà không có quyền truy cập vào Windows. Tôi sẽ cố gắng tìm cách tạo ra một
TheInitializer

1
Cảm ơn bạn rất nhiều, điều này đã làm việc !! Đăng bài từ Windows: D
TheInitializer

1
bootrec /rebuildbcdthất bại cho tôi nhưng dù sao nó cũng hoạt động sau khi tôi bỏ qua nó.
en4bz

1
Cảm ơn các liên kết Nguồn , đã giúp hiểu và chỉ áp dụng những điều cần thiết. Sau đó để tải lại bộ tải khởi động rEFInd, tôi đã sử dụng bcdedit như được mô tả ở đây : bcdedit /set "{bootmgr}" path \EFI\refind\refind_x64.efi
Pau Coma Ramirez

Bạn có thể làm gì nếu phân vùng của bạn không được liệt kê bởi list disk?
Harsha Goli

0

Trước khi bắt đầu sao lưu phân vùng khởi động của bạn bằng cách sử dụng mkdir $HOME/backup && sudo cp -R /boot $HOME/backup. Phân vùng khởi động thường được giới hạn ở 100MB nên nó thực sự nhỏ.

Nếu bạn vẫn có phương tiện khởi động Windows 10 (như thẻ nhớ USB hoặc DVD), bạn sẽ có thể tìm thấy các tệp EFI ở đó.

Nếu bạn không có phương tiện khởi động Windows, bạn có thể gắn ISO ( tải xuống nếu cần ) bằng lệnh sudo mkdir /tmp/win10iso && sudo mount -o loop /location/of/win10.iso /tmp/win10iso.

Khi bạn sao chép thành công các tệp EFI đó vào phân vùng Windows, hãy thêm một mục vào tệp /etc/grub.d/40_custom.

Mục nhập sẽ như thế này:

menuentry 'Windows 10' {
set root='(hd0,msdos5)'
chainloader +1
}

Trong cấu hình GRUB, hdXviết tắt của /dev/sdXmsdosYviết tắt của /dev/sdXY. Lưu ý rằng hdX bắt đầu từ 0 và / dev / sdX bắt đầu từ A.

Sau khi xong, hãy cập nhật GRUB của bạn với sudo update-grub2. Windows boot entry nên có ngay bây giờ.


Cảm ơn, tôi đang tải xuống ISO ngay bây giờ (đó là một tệp lớn!)
TheInitializer

Tôi đã gắn ISO và có một câu hỏi - tôi phải sao chép tập tin nào và vào thư mục nào? Tôi đoán là từ Windows ISO/bootđể /boot/efi/EFI/Microsoft, nhưng tôi thực sự không chắc chắn.
TheInitializer
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.