Khởi động kép Windows 8 và Linux UEFI trên máy tính xách tay


10

Tôi đang cố gắng thiết lập Windows 8 và Arch Linux trên Sony Vaio E14 mới với các cửa sổ 8 được cài đặt sẵn.

Cho đến nay:

  • đã cài đặt W8 vào ổ SSD mới của tôi (đã chuyển sang ổ cứng gốc) bằng Recovery Media
  • thu hẹp phân vùng W8, phân vùng phục hồi bị xóa, hoán đổi bị vô hiệu hóa
  • Đã xác nhận khởi động W8 tốt

Trên Arch:

  • Đã tắt Secure Boot trong bios
  • Đã xác nhận khởi động W8 tốt
  • Đã khởi động Arch tắt CD và cài đặt mọi thứ vào phân vùng thứ 4 và thứ 5
  • thiết lập rEFInd cho bộ tải khởi động hạt nhân EFIstub

Sau đó nó trở nên tồi tệ hơn. Tôi không thể khởi động bất cứ thứ gì khác ngoài Windows 8 (mặc dù tôi rất vui vì ít nhất chúng vẫn hoạt động tốt).

Đã thử:

  • tạo EFI \ refind \ và đặt .efi ở đó (theo hướng dẫn Arch
  • ghi đè EFI \ boot \ bootx64.efi
  • ghi đè EFI \ Microsoft \ Boot \ bootmgr.efi
  • ghi đè EFI \ Microsoft \ Boot \ bootmgfw.efi --- YAY rEFInd hiển thị!

Càng xa càng tốt. Tôi đã giữ toàn bộ thư mục W8 Boot \ trong EFI \ windows8 và thiết lập một menu khởi động cho nó; và nó khởi động tốt

Nhưng, khi khởi động lại, mọi thứ đều sai - 'Không tìm thấy hệ điều hành' thay vì bất kỳ bộ tải khởi động nào (refind hoặc w8).

Đã khởi động lại vào Arch bằng đĩa CD trực tiếp để biết rằng phân vùng EFI có bảng FAT sai. fsck.vfat đã sửa nó và tôi thấy rằng EFI \ Microsoft \ Boot đã trở lại trạng thái ban đầu (tất cả các tệp refind đã bị xóa và được thay thế bằng bộ tải khởi động W8). Tôi đã ghi đè chúng một lần nữa và quay lại rEFI và hiển thị chính xác và Arch hoàn toàn có khả năng khởi động.

Sau đó, tôi đã cố gắng chỉ đổi tên EFI \ Microsoft \ Boot \ bootmgfw.efi thành bootmgfw.001.efi (sau đó sao chép .efi của refind thành bootmgfw.efi và giữ MỌI tệp khác như vậy), nhưng với kết quả chính xác như vậy. Đã thử đánh dấu phân vùng GPT EFI là chỉ đọc, kết quả tương tự.

Bây giờ tôi không gặp may. Arch khởi động tốt, W8 cũng vậy nhưng nó phá hủy phân vùng EFI trong quá trình này.

Cảm ơn vì bất kỳ ý tưởng nào, Googling đã đưa tôi đến nay và tôi không thể tìm thấy bất kỳ tốt hơn.

PS - windows 8 MAYBE phá hủy phân vùng khi tắt máy - khi tôi ra lệnh tắt máy trong W8, sẽ mất nhiều thời gian bất thường (khoảng nửa phút thay vì ~ 5 giây). Vì vậy, theo lý thuyết tôi có thể giải quyết điều này bằng cách thiết lập lại máy tính xách tay thay vì tắt máy thông thường, nhưng điều đó không tốt.


Tôi sợ rằng tôi không thể giúp đỡ ở đây, tôi không có máy UEFI để kiểm tra công cụ. Mặc dù nó có thể không phải là cách làm mong muốn nhất, bạn có thể thử thêm một mục Linux vào bộ tải khởi động Windows và khởi động ở đó, nhưng tôi đã không thử điều đó trong máy UEFI. Xem tại đây để biết quy trình: superuser.com/a/499652/18050 Ngoài ra, tôi luôn sử dụng Archboot để cài đặt Arch, hãy thử nếu bạn đang sử dụng hình ảnh chính thức vì quá trình cài đặt có tính đến các hệ thống UEFI: bbs.archlinux. org / viewtopic.php? id = 150833
Xandy

Điều này nghe có vẻ như một cuộc xung đột giữa Arch Linux và một cái gì đó mà Windows 8 làm. Bạn đã thử một bản phân phối khác để cai trị không chỉ Arch Linux có vấn đề?
Ramhound

Cảm ơn lời đề nghị easyBCD, tôi chắc chắn sẽ thử. Tôi không quan tâm trình quản lý khởi động nào đang được sử dụng, vì vậy nếu Windows có thể làm điều đó tôi sẽ hạnh phúc hơn. Sẽ đăng kết quả vào ngày mai khi có thời gian rảnh để làm việc lại để làm rối tung mọi thứ :) @Ramhound nó sẽ là một nỗi đau vào lúc này và tôi không nghĩ nó liên quan đến Arch - rEFInd là một dự án riêng biệt và tôi cài đặt tất cả bằng tay (theo người đàn ông).
ngứa355

Câu trả lời:


5

Có thể đáng để thực hiện tắt máy lạnh (nhấn nút nguồn) trong Windows để xem bạn có thể khởi động sau đó không, giống như thử nghiệm. Rõ ràng là bạn sẽ không muốn làm điều này một cách thường xuyên, nhưng có thể hữu ích để xác nhận rằng Windows đang ghi đè dữ liệu ESP đã sửa đổi của bạn. Nếu nó thực sự làm hỏng hệ thống tập tin khi tắt Windows, thì đây có vẻ là một lỗi Windows cần được báo cáo cho Microsoft. Nếu nó chỉ thay thế bootmgfw.efitệp, thì đó là về mặt kỹ thuật trong phạm vi hoạt động của Microsoft, vì vậy đó không thực sự là một lỗi.

Tuy nhiên, nói rộng hơn, bạn đã thử sử dụng efibootmgrchương trình của linux để đăng ký rEFInd với EFI dưới tên riêng của nó (giả sử, EFI/refindtrên ESP) chưa? Điều này được mô tả trong tài liệu của rEFInd, trong phần cài đặt Linux thủ công. Ngoài ra, bạn có thể cài đặt bằng cách sử dụng install.shtập lệnh. Một trong hai phương pháp sẽ yêu cầu khởi động chế độ EFI để thành công, nhưng bạn sẽ có thể thực hiện việc này bằng CD rEFInd hoặc khởi động từ đĩa khẩn cấp ở chế độ EFI.

Nếu efibootmgrkhông hoạt động, hãy thử sử dụng bcfgtrong chương trình shell EFI, như được mô tả trên trang wiki Arch này.

Nếu các thủ tục này không làm việc, hãy thử sử dụng efibootmgrhoặc bcfgđể loại bỏ các mục nhập cho bootmgfw.efitừ NVRAM và sau đó cài đặt refind như EFI/BOOT/bootx64.efi. Về lý thuyết, máy tính có thể khởi chạy rEFInd, hoạt động bình thường và cho phép khởi động hệ điều hành. Tuy nhiên, có hai vấn đề tiềm năng: Phần sụn có thể ưu tiên EFI/Microsoft/boot/bootmgfw.efihơn EFI/BOOT/bootx64.efi; và Windows có thể kiểm tra các tùy chọn khởi động của nó và thêm bộ tải khởi động của riêng nó trở lại NVRAM khi khởi động. Tuy nhiên, phương pháp này đáng để thử.

Thông số EFI yêu cầu các máy tính tôn trọng các cài đặt NVRAM của chúng (được quản lý bởi efibootmgrLinux, bcfgtrong vỏ EFI hoặc các chương trình tương tự), vì vậy nếu các tiện ích này không hoạt động, phần sụn của bạn bị hỏng và bạn có thể muốn xem xét trả lại máy tính cho một mô hình khác. (Hãy chắc chắn nói với Sony tại sao bạn trả lại máy tính nếu bạn làm như vậy!) Loại vấn đề này thực sự khá phổ biến; Tôi đã có một bảng Gigabyte với "Hybrid EFI", ví dụ như quên cài đặt NVRAM của nó. Tuy nhiên, ít nhất là với bảng này, có thể bỏ qua vấn đề bằng cách đặt tên cho trình quản lý khởi động / trình tải của tôi EFI/BOOT/bootx64.efi.

Nếu bạn không thể làm cho nó hoạt động và không muốn hoặc không thể thay thế máy tính, tôi có hai đề xuất khác cho cách giải quyết:

  • Bạn có thể giữ một ổ đĩa CD hoặc USB có khả năng khởi động trong tay với rEFInd trên đó và sử dụng nó khi bạn muốn khởi động Linux. Điều này có thể yêu cầu sử dụng phím chức năng để báo cho máy tính khởi động từ phương tiện lưu động thay vì từ đĩa cứng bất cứ khi nào bạn khởi động.
  • Bạn có thể xóa các phân vùng khỏi đĩa, phân vùng lại bằng MBR và cài đặt lại cả hai hệ điều hành ở chế độ BIOS thay vì ở chế độ EFI. Điều này sẽ loại bỏ bất kỳ sự rung động EFI nào khỏi hình ảnh và cho phép bạn sử dụng GRUB chế độ BIOS làm trình tải khởi động. Điều này có thể sẽ yêu cầu một bản sao bán lẻ của trình cài đặt Windows 8; ít nhất là đối với Windows 7, các bản sao OEM không linh hoạt về chế độ cài đặt (BIOS so với EFI). Ngoài ra, có thể chuyển đổi từ khởi động ở chế độ EFI sang khởi động ở chế độ BIOS mà không cần cài đặt lại. Có thể chuyển đổi ngược lại (tôi sẽ đăng một liên kết đến một trang web được mô tả, nhưng trang này sẽ không cho phép tôi đăng nhiều hơn hai liên kết; xin lỗi) và tôi dường như nhớ lại việc chạy qua các mô tả về việc thực hiện EFI- Chuyển đổi sang BIOS ở đâu đó, nhưng tôi không có URL nào tiện dụng. Một tìm kiếm Google có thể bật lên một cái gì đó.

Tôi tình cờ thấy trang này sau khi đăng câu trả lời đầu tiên của mình và nó có một nguyên nhân có thể khác cho ít nhất một phần vấn đề của bạn: Rõ ràng Windows 8 sử dụng phương thức tắt máy gần giống với thao tác đình chỉ đĩa. Kết quả là các phân vùng được gắn kết có thể bị hỏng nếu bạn tắt Windows và sau đó khởi động Linux. Mặc dù ESP không được gắn bình thường trong Windows 7, AFAIK, nhưng có thể Windows 8 thực hiện những điều khác biệt hoặc có thể ESP được gắn trong Windows 7 và dường như bị ẩn đi. Trong mọi trường hợp, bạn có thể tắt tính năng này của Windows 8 bằng cách nhập lệnh sau trong cửa sổ Dấu nhắc lệnh của Quản trị viên:

powercfg /h off

Thật vậy, windows 8 không phá vỡ bất cứ thứ gì khi tắt máy lạnh. Tôi không cảm thấy muốn đăng một lỗi, bởi vì sau tất cả, tôi là người gây rối cho bộ tải khởi động của họ :)
itchy355

Tôi đã cố gắng loay hoay với efibootmgr; nó cho thấy rằng có một số lượng người khởi động cao bất thường (nhiều hơn 3 người tôi mong đợi), điều đó khiến tôi nhìn vào đĩa của mình tốt hơn; và tôi đã thấy rằng trên thực tế tôi có hai phân vùng EFI: -x Chỉ có phân vùng thứ hai (/ dev / sda2) được hiển thị dưới dạng EFI system partitiontrong GDisk, vì vậy điều đó khiến tôi nghĩ đó là phân vùng chính xác. Một cái khác chỉ là một phân vùng FAT (sda1) với cùng kích thước và cấu trúc tệp EFI tiêu chuẩn.
ngứa355

Nếu tôi thay đổi thứ tự khởi động để tải rEFInd trước, sau đó một cái gì đó được gọi là, sony gốc '' và sau đó là các thứ khác, nó sẽ ghi đè trở lại mặc định (windows, sony gốc, các loại khác (refind)) PS; rằng tất cả đang được xem xét rằng ,, cửa sổ '' là ghi đè của tôibootmgfw.efi
it355

1
Trong thời gian đó, tôi đã thử powercfg /h offtrong w8, và R FNG CỐ ĐỊNH W8 BẮT ĐẦU PHẦN MỀM EFI .. đó là chén thánh mà tôi đang tìm kiếm, có vẻ như vậy :) CẢM ƠN CẢM ƠN!
ngứa355

Tôi rất vui khi biết rằng đã powercfg /h offkhắc phục vấn đề chính của bạn. Bạn có thể thích thú khi biết rằng tôi đã chạy qua thông tin rằng một số triển khai UEFI dường như được mã hóa để di chuyển bộ tải khởi động có tên "Windows Boot Manager" lên đầu danh sách của họ. Do đó, đổi tên bộ tải khởi động của bạn bằng cách sử dụng efibootmgrcó thể cho phép bạn cài đặt rEFInd (hoặc bất cứ thứ gì bạn thích) dưới tên tệp hợp lý hơn.
Rod Smith
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.