Khởi động kép Win 8 / Ubuntu chỉ tải Win


11

Máy tính của tôi là một Máy tính xách tay Sony Vaio. Tôi đã sử dụng Ubuntu và Win 8 với dualboot nhưng windows bằng cách nào đó đã quản lý để xóa menu để chọn HĐH khi khởi động. Tôi nghĩ rằng BIOS là UEFI. Khởi động an toàn đã bị vô hiệu hóa và Boot Repair bằng cách nào đó không thành công.

Làm thế nào tôi có thể sửa lỗi này?


sda là mất tích GRUB ... "Nơi GRUB vào sda" sử dụng: help.ubuntu.com/community/Boot-Repair
jmunsch

3
Với UEFI, bạn không có grub trong MBR của sda, chỉ trong phân vùng efi.
oldfred

Câu trả lời:


17

Sony, HP và nhiều nhà cung cấp máy tính xách tay được mã hóa cứng để chỉ khởi động Windows.

Có một số vòng làm việc đề nghị bạn di chuyển grub grubx64.efihoặc shimx64.efitệp lên trên Windows /EFI/windows/bootmgfw.efi. Tuy nhiên, điều này không được khuyến khích vì Windows Update sẽ khôi phục bootmgfw.efivà bạn sẽ quay lại chỉ các cửa sổ Khởi động.

Thay vào đó, tôi đề nghị đổi tên dự phòng /EFI/Boot/bootx64.efi và khởi động mục nhập ổ cứng hoặc sử dụng rEFInd.

Đảm bảo bạn sao lưu toàn bộ phân vùng EFI trước khi thực hiện thay đổi.

Bạn có một số tùy chọn có sẵn:

I. Di chuyển và đổi tên các tệp grub grubx64.efihoặc shim64.efi(để khởi động an toàn) vào thư mục / tệp này/EFI/BOOT/BOOTX64.EFI

  1. Đổi tên /efi/boot/bootx64.efi, sao chép shim hoặc grub vào / efi / boot và đặt tên là bootx64.efi Sau đó khởi động mục nhập ổ cứng. Các phiên bản mới của Boot-Repair tự động thực hiện việc này với 'Sử dụng tệp EFI tiêu chuẩn' trong các tùy chọn nâng cao. Nó cũng sao lưu bootx64.efi hiện tại có lẽ chỉ là một bản sao của tệp khởi động Windows .efi.

    Từ trình cài đặt trực tiếp gắn phân vùng efi trên ổ cứng: Gắn phân vùng efi. kiểm tra phân vùng nào là FAT32 với cờ khởi động. Thường sda1 hoặc sda2 nhưng khác nhau.

    sudo mount /dev/sda1 /mnt
    

    chỉ khi chưa tồn tại,

    sudo mkdir /mnt/EFI/Boot
    sudo cp /mnt/EFI/ubuntu/* /mnt/EFI/Boot
    

    Nếu thư mục mới được tạo, bootx64.efi sẽ không tồn tại, bỏ qua lệnh này

    sudo mv /mnt/EFI/Boot/bootx64.efi /mnt/EFI/Boot/bootx64.efi.backup
    

    Làm cho grub trở thành mục khởi động ổ cứng trong UEFI. Nếu không tồn tại, có thể phải cập nhật UEFI cũng với efibootmgr.

    sudo mv /mnt/EFI/Boot/grubx64.efi /mnt/EFI/Boot/bootx64.efi 
    

    Nếu cần, hãy thêm mục khởi động ổ cứng UEFI mới: Xem thêm

    man efibootmgr
    

    Nếu ESP là sda hoặc các mục ổ đĩa & phân vùng mặc định:

    sudo efibootmgr -c -L "UEFI Hard drive" -l "\EFI\Boot\bootx64.efi"
    

    Nếu ESP không phải là sda1, sdX là ổ đĩa, Y là phân vùng efi, cũng là ổ NVMe:

    sudo efibootmgr -c -g  -w -L "UEFI hard drive" -l '\EFI\Boot\bootx64.efi' -d /dev/sdX -p Y
    sudo efibootmgr -c -L "UEFI hard drive" -l "\EFI\Boot\bootx64.efi" -d /dev/nvme0n1 -p 2 
    
  2. (Điều này giống như những gì Boot-Repair đã từng làm trong II. Hiện tại không được đề xuất: Đổi tên /efi/Microsoft/Boot/bootmgfw.efi và sao chép grub hoặc shim vào / efi / Microsoft / Boot và đặt tên là bootmgfw.efi khởi động mục nhập Windows để khởi động vào menu grub. Bạn phải thêm thủ công mục trình đơn grub để khởi động lại tên tập tin Windows efi. Mục nhập os-prober của Grub2 boot boot bootff.efi hiện chỉ là grub, vì vậy nó sẽ không hoạt động.

    Người dùng đã tự di chuyển các tệp efi xung quanh xem bài # 6.

    http://ubuntuforums.org/showthread.php?t=2101840
    http://ubuntuforums.org/showthread.php?t=2219452
    http://ubuntuforums.org/showthread.php?t=2221498&p=13012109#post13012109

II. Nếu bạn đã chạy bản sửa lỗi của Boot-Repair cho "buggy UEFI" với một bản sao cũ hơn thì tốt nhất là hoàn tác nó. Và sau đó thực hiện thay đổi ở trên để sử dụng bootx64.efi Để hoàn tác và đổi tên tệp thành tên gốc của chúng, bạn chỉ cần đánh dấu vào tùy chọn "Khôi phục bản sao lưu EFI" của Boot-Repair.

Bất kỳ đổi tên nào bằng tay hoặc với Boot-Repair sẽ cần phải được làm lại sau khi cập nhật Windows vì nó sẽ khôi phục các tệp Windows.

III. Chỉnh sửa Windows BCD, một thay thế cho đổi tên của Boot-Repair để làm cho shim có tên Windows. Một số hệ thống hoạt động tốt hơn để đăng ký grub / shim từ bên trong Windows - đối với những hệ thống tiếp tục đặt lại Windows làm mặc định.

Grub không hiển thị khi khởi động cho Windows 8.1 Ubuntu 13.10 Khởi động kép

bcdedit /set {bootmgr} path \EFI\ubuntu\grubx64.efi

https://coderwall.com/p/vfyqkg

IV. Nếu Mô tả phải là Windows, thì thay đổi mô tả UEFI. Điều này thực sự chỉ hoạt động cho những người chỉ có Ubuntu và không cài đặt Windows nào cả.

sudo efibootmgr -c -L "Windows Boot Manager" -l "\EFI\ubuntu\shimx64.efi"

Khôi phục hoặc một mục Windows UEFI mới - giả sử sda1 mặc định thêm -p 2 nếu sda2 (xem man efibootmgr -d drive & -p tùy chọn phân vùng):

sudo efibootmgr -c -L "Windows Boot Manager" -l "\EFI\Microsoft\Boot\bootmgfw.efi"
sudo efibootmgr -c -L "Windows Boot Manager" -l "\EFI\Microsoft\Boot\bootmgfw.efi" -d /dev/nvme0n1 -p 1 

V. Một số cài đặt rEFInd dường như là một cách giải quyết khác và có các biểu tượng khởi động đẹp.

http://www.rodsbooks.com/refind/index.html

http://www.rodsbooks.com/refind/secureboot.html

PPA có sẵn để giúp dễ dàng cài đặt trong Ubuntu

http://www.rodsbooks.com/refind/getting.html


Đúng! Đổi tên làm việc cho tôi! Tôi đã gắn phân vùng efi và sao chép các tệp ../EFI/ubfox/grubx64.efi thành ../EFI/Boot/ và sang / EFI / Microsoft / Boot và thay đổi tên của tệp như sau. Trong thư mục ../EFI/Boot tôi ghi đè bootx64.efi bằng tệp và trong ../EFI/Microsoft/Boot tôi ghi đè bootmgfw.efi bằng tệp. Đó là tất cả những gì tôi nghĩ. Cảm ơn rât nhiều!
dùng296880

Đối với những người bị mắc kẹt trên Windows: Tôi đã quản lý để thực hiện đổi tên mô tả trong tùy chọn a1 mà không cần rời khỏi Windows. Tôi đã mở một cửa sổ lệnh với tư cách quản trị viên, sau đó chạy mountvol S: /Sđể gắn kết phân vùng EFI là S :. Tôi gặp vấn đề kỳ lạ với việc lên và xuống các thư mục, nhưng việc chuyển một bản sao của grubx64.efi một thư mục vào / EFI / Boot, sau đó đổi tên thành bootx64.efi hoạt động.
Peter Becker

Tôi ngạc nhiên khi thiếu tá người Anh đánh số lại bài viết của tôi đã không làm điều đó. Tôi đã có những bình luận cũ hơn đề cập đến A: & B: là những phần chính. :)
oldfred

0

Tôi có một Acer có cùng một vấn đề. Giải pháp của tôi là "khởi động lại" các cửa sổ, thay vì tắt máy (đây thực sự chỉ là một hybernate.)

Bằng cách khởi động lại (có thể kích hoạt cập nhật), hệ thống sẽ tắt và bạn có thể chọn khởi động từ bios. Bạn phải bắt nó trước khi nó khởi động lại.

Tôi hiếm khi sử dụng windows nên việc khởi động theo cách này hoàn toàn không làm phiền tôi. Trừ khi, tất nhiên, cập nhật windows.


0

Câu trả lời ở trên không có tác dụng với HP Pavilion của bạn tôi, nhưng tôi đã tìm thấy một cách giải quyết tốt. Có vẻ như phần sụn của HP luôn ghi đè lên BootOrdermỗi lần khởi động và đặt Windows trước, nhưng nó vẫn tôn trọng BootNext. Vì vậy, tôi đã viết một kịch bản khởi động để thiết lập BootNexttrên mỗi khởi động.

  1. Chạy

    efibootmgr
    

    để tìm mã số của BootCurrent. Trong trường hợp của bạn tôi, đây là 0003.

  2. /etc/systemd/system/boot-linux-next.service:

    [Unit]
    Description=Boot Linux next
    
    [Service]
    Type=oneshot
    # Replace '3' in the next line with the appropriate code.
    ExecStart=efibootmgr --bootnext 3
    
    [Install]
    WantedBy=multi-user.target
    
  3. Chạy

    systemctl enable --now boot-linux-next.service
    

Điều này không có nghĩa là nếu bạn từng khởi động thứ gì khác, bạn sẽ phải chọn Linux theo cách thủ công khi khởi động lần sau.

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.