Làm cách nào để khởi động vào Windows 7 khi grub được cài đặt trong phân vùng Windows?


15

Tiêu đề gốc: Làm thế nào tôi có thể giải quyết (bỏ) khởi động windows 7 trên cùng một phân vùng với grub?

Tôi đã nghiên cứu vấn đề này trong hai đến ba ngày nhưng tôi đã đến chỗ trống.

Về cơ bản, phân vùng 1 là Windows 7 và phân vùng 2 là Ubuntu 12.04. Tôi đã bảo Ubuntu cài đặt vào phân vùng 2 và cài đặt GRUB trên phân vùng 1 và nó hoạt động tốt. Nhưng vấn đề bây giờ là tôi không thể khởi động Windows 7. Nó chỉ quay trở lại menu GRUB sau khi tôi chọn nó.

Từ những gì tôi đã nghiên cứu, nếu tôi có thể chỉnh sửa GRUB để khởi động Windows 7 "mbr" hoặc bộ tải khởi động \windows\system32\winload.exe(không sử dụng đĩa sửa chữa Windows 7), vấn đề của tôi sẽ được giải quyết. Điều này thậm chí có thể?


URL của Boot-Repair-Info là http://paste.ubfox.com/981952/


Đầu ra từ lệnh sudo blkid

/dev/sda1: UUID="1EA0019AA0017A13" TYPE="ntfs" 
/dev/sda2: UUID="e4402f9e-83df-4dc3-8913-69b28314d253" TYPE="ext4" 
/dev/sda3: LABEL="Vault Drive" UUID="74145BFD145BC132" TYPE="ntfs" 
/dev/sda4: UUID="1c030d32-657f-4a78-9468-307d9e09a977" TYPE="ext4"

Câu trả lời:


14

Bạn có thể tạo báo cáo Tóm tắt Bootinfo bằng công cụ sửa chữa khởi động như được mô tả bên dưới và sau đó đăng liên kết lên báo cáo không?

Tôi biết bạn đã cung cấp một số chi tiết về cấu hình khởi động của bạn. Tuy nhiên, báo cáo tôi đang yêu cầu chứa thông tin chi tiết hơn và có thể cho chúng tôi hiểu rõ hơn về lý do tại sao bạn không thể khởi động Windows bằng GRUB.

Cách sử dụng sửa chữa khởi động để cung cấp "Tóm tắt Bootinfo"


Vì bạn vẫn có thể khởi động Ubuntu, bạn có thể cài đặt và chạy công cụ Boot-Repair bằng apt-getlệnh và sau đó sử dụng nó để Create a Bootinfo summary.

Chạy các lệnh dưới đây trong một cửa sổ đầu cuối để cài đặt boot-repaircông cụ.

sudo add-apt-repository ppa:yannubuntu/boot-repair
sudo apt-get update
sudo apt-get install -y boot-repair
  1. Sau khi hoàn thành, nhập lệnh boot-repairđể khởi động công cụ.
  2. Sau một chút chậm trễ, boot-repairsẽ hỏi bạn có muốn tải xuống phiên bản mới nhất của nó không. Vì bạn vừa cài đặt phiên bản mới nhất, hãy trả lời No.
  3. Nếu boot-repairyêu cầu cài đặt pastebinitgói, trả lời với Yes.
  4. Bây giờ công cụ sẽ quét hệ thống của bạn và (cuối cùng) hiển thị cửa sổ hiển thị trong hình bên dưới. Bấm vào Create a Bootinfo summaryhộp / nút. Điều này sẽ thu thập thông tin về cấu hình khởi động hệ thống của bạn, nhưng sẽ không thực hiện bất kỳ thay đổi nào.


    Cửa sổ khởi động sửa chữa ban đầu

  5. Khi tóm tắt bootinfo đã được tạo, boot-repairsẽ hiển thị thông báo chứa URL trông giống như sau : http://paste.ubuntu.com/123456/.

    Vui lòng cập nhật / chỉnh sửa câu hỏi của bạn và thêm URL này. Thông tin trong pastebin liên kết này sẽ chỉ ra (tôi hy vọng) sẽ giúp chúng tôi chẩn đoán vấn đề.

Tôi nghĩ rằng việc ghi đè lên VBR của phân vùng Windows đã gây ra vấn đề này.

Hiểu biết của tôi là có một số bước để bắt đầu một hệ điều hành. Trong trường hợp của bạn, tôi nghĩ một cái gì đó giống như các bước dưới đây xảy ra.

  1. BIOS trên máy tính của bạn cố chạy mã trong khu vực đầu tiên của ổ cứng. Khu vực đầu tiên này thường được gọi là MBR (Bản ghi khởi động chính) .
  2. Ngoài MBR, mọi phân vùng cũng có thể có một bản ghi khởi động. Nó thường được gọi là Volume Boot Record hoặc VBR . MBR trên ổ cứng của bạn chuyển các điều khiển sang VBR của phân vùng 1, phân vùng Windows của bạn.
  3. Windows hy vọng VBR của phân vùng sẽ thực hiện bước tiếp theo để khởi động một hệ điều hành như Windows 7. Vì vậy, Windows ban đầu sẽ cài đặt VBR để chuyển điều khiển sang bootmgrchương trình Windows trong phân vùng Windows của bạn.

    Tuy nhiên, khi bạn hướng dẫn Ubuntu cài đặt chương trình cài đặt GRUB vào phân vùng Windows, GRUB dường như đã thay thế Windows VBR bằng chính nó. GRUB VBR này hiển thị menu khởi động GRUB.
  4. Các hướng dẫn GRUB hiện đang sử dụng để khởi động Windows về cơ bản là định vị VBR trong phân vùng Windows và chuyển điều khiển sang nó. VBR trong phân vùng Windows là VBR của GRUB. Chuyển điều khiển sang nó chỉ (lại) hiển thị menu khởi động GRUB.

Thật không may, tôi không chắc chắn điều gì sẽ là cách tốt nhất để khắc phục điều này. Chúng tôi muốn cẩn thận rằng chúng tôi không phá vỡ GRUB và không thể khởi động bất cứ thứ gì trên máy tính của bạn khi chúng tôi cố gắng khắc phục sự cố khi khởi động Windows.

Dưới đây là bản sao của một số thông tin từ Tóm tắt Bootinfo của bạn để tham khảo. Nhận xét của tôi ở trên được dựa trên thông tin này.

============================= Boot Info Summary: ===========================

 => Grub2 (v1.99) is installed in the MBR of /dev/sda and looks at sector 1 
    of the same hard drive for core.img. core.img is at this location and 
    looks for (,msdos2)/boot/grub on this drive.

sda1: ______________________________________________________________________

    File system:       ntfs
    Boot sector type:  Grub2 (v1.99)
    Boot sector info:  Grub2 (v1.99) is installed in the boot sector of sda1
                       and looks at sector 44090872 of the same hard drive 
                       for core.img. core.img is at this location and looks
                       for (,msdos2)/boot/grub on this drive. No errors 
                       found in the Boot Parameter Block.
    Operating System:  Windows 7
    Boot files:        /bootmgr /Boot/BCD /Windows/System32/winload.exe

sda2: ______________________________________________________________________

    File system:       ext4
    Boot sector type:  -
    Boot sector info: 
    Operating System:  Ubuntu 12.04 LTS
    Boot files:        /boot/grub/grub.cfg /etc/fstab /boot/grub/core.img

Một cách giải quyết có thể để khởi động Windows 7

Dưới đây là một gợi ý để chỉnh sửa các lệnh khởi động GRUB của bạn có thể cho phép bạn khởi động Windows 7. Tôi không chắc điều này sẽ hoạt động, nhưng có vẻ đáng để thử.

Hiện tại, bạn grub.cfgsử dụng các lệnh khởi động GRUB bên dưới để khởi động Windows 7.

menuentry "Windows 7 (loader) (on /dev/sda1)" --class windows --class os {
    insmod part_msdos
    insmod ntfs
    set root='(hd0,msdos1)'
    search --no-floppy --fs-uuid --set=root 1EA0019AA0017A13
    chainloader +1
}

Tôi đề nghị bạn thử thay đổi điều này và sử dụng các lệnh này thay thế.

menuentry "Windows 7 (loader) (on /dev/sda1)" --class windows --class os {
    insmod part_msdos
    insmod ntfs
    insmod ntldr
    set root='(hd0,msdos1)'
    search --no-floppy --fs-uuid --set=root 1EA0019AA0017A13
    ntldr ($root)/bootmgr
}

Dưới đây là các bước để làm điều này.

  1. Khởi động hệ thống của bạn vào menu GRUB.
  2. Chọn (tô sáng) mục nhập menu khởi động GRUB Windows 7 (loader) (on /dev/sda1).
  3. Nhấn eđể chỉnh sửa các lệnh khởi động GRUB cho Windows 7.
  4. Thực hiện hai thay đổi cho danh sách các lệnh này như được minh họa ở menuentrytrên.
    • Thêm lệnh insmod ntldr
    • Thay đổi lệnh
      chainloader +1
      thành
      ntldr ($root)/bootmgr
  5. Nhấn Ctrl+ Xhoặc F10để khởi động bằng các lệnh đã chỉnh sửa này.

Lưu ý 1:

Nếu cách giải quyết trên thành công trong việc tải menu khởi động Windows 7, thì bạn có thể làm cho nó bán liên tục bằng cách

  1. Sử dụng sudođể chỉnh sửa tập tin /etc/grub.d/40_customvà thêm lần thứ hai, sửa đổi menuentryhiển thị ở trên. (Nếu bạn làm điều này, tôi cũng đề nghị bạn thay đổi tiêu đề của mục "tùy chỉnh" này.)
  2. Chạy lệnh sudo update-grubđể cập nhật /boot/grub/grub.cfgđể bao gồm mục tùy chỉnh của bạn. (Nó sẽ ở dưới cùng của menu GRUB khi bạn khởi động.)

Tôi sẽ xem gợi ý ở trên chỉ là một giải pháp nướng một phần. Một giải pháp tốt hơn là khôi phục Windows VBR vào phân vùng Windows mà không phá hủy khả năng khởi động của GRUB.

Tôi nghĩ rằng ... nhưng tôi không chắc chắn 100% ... rằng lệnh khôi phục Windows bootsectcó thể được sử dụng để làm điều này. Nếu bạn muốn mạo hiểm, một cách có thể để làm điều này được nêu ra dưới đây.

  • Khi khởi động Windows, nhấn F8để hiển thị Advanced Boot Optionsmenu.
  • Chọn Repair Your Computermục.
  • Đi qua các cửa sổ tiếp theo cho đến khi bạn đạt được System Recovery Options.
  • Lựa chọn Command Prompt
  • Chạy lệnh bootsect /nt60 C:

Nhưng bạn cũng có thể chờ một chút và xem những câu trả lời khác bạn nhận được cho câu hỏi của bạn trước khi bạn có nguy cơ thử những điều trên.

Lưu ý 2:

Trong khi tìm kiếm những thứ khác, tôi đã gặp hai câu hỏi khác trên AskUbfox liên quan đến vấn đề của bạn.

  1. Windows 7 sẽ không khởi động sau khi cài đặt Ubuntu 11
  2. Windows 7 không khởi động sau khi cài đặt Ubuntu

Tôi không chắc có bao nhiêu trợ giúp những câu hỏi này cung cấp. Câu trả lời cho câu hỏi thứ hai là sử dụng lệnh bootrec /fixbootđể khôi phục VBR cho phân vùng Windows. Sự hiểu biết của tôi từ câu hỏi đó là việc sử dụng bootrec /fixbootlệnh đã giải quyết vấn đề.

Nhưng câu hỏi thứ hai khẳng định rằng bootrec /fixbootđã không giải quyết vấn đề.

(Đánh bại tôi về những gì có thể xảy ra ở đó.)


Cảm ơn bạn đã trả lời của bạn. Tôi ổn, may mắn, nhưng nếu người khác không biết về nó, họ sẽ làm ngay bây giờ. Url từ Boot-Repair-Info là http://paste.ubfox.com/981952/
Sim

1
Tôi nghĩ vấn đề của bạn là do cài đặt GRUB vào phân vùng Windows của bạn. Xem bản cập nhật cho câu trả lời của tôi.
phi lý John

Vậy bạn nghĩ tôi có thể làm gì? Tôi có nên sử dụng bootrec và sau đó cài đặt lại grub? Hoặc là có một cách khác?
Sim

Bạn có thể sửa chữa Windows boot như bình thường, khi đó Windows sẽ tự động khởi động mà không cần hỏi bạn (Windows không nhận ra Linux). Khi đã khắc phục, bạn có thể khởi động Linux từ USB và chạy lại GRUB, lần này không chạm vào phân vùng Windows;)
pzkpfw

Đã thêm một đề xuất cho một cách giải quyết tạm thời có thể vào câu trả lời của tôi.
phi lý John

7
menuentry "Windows 7" {
    insmod ntfs
    set root=(hd0,1)
    drivemap -s (hd0) ($root)
    ntldr /bootmgr
    #or chainloader +1
}

Nếu bạn đã cài đặt Windows trên phân vùng khác (hd0,1), bạn cần sử dụng lệnh drivemap để khởi động vào Windows. Chainloader +1 hoặc ntldr / bootmgr đều có thể được sử dụng để khởi động Windows 7.

Những gì bạn đã làm là bạn đã sửa đổi VBR của phân vùng thứ 1; bạn có thể khôi phục điều đó bằng cách thực thi các lệnh này trong chế độ khôi phục windows trong cmd khi bạn khởi động từ đĩa CD cài đặt:

bootrec.exe /FixMbr  

bootrec.exe /FixBoot  

bootrec.exe /RebuildBcd

Đây là câu trả lời duy nhất thực sự hoạt động. +1
hoa cúc

1

Tôi thực sự không biết về "(UN) khởi động)" bạn nên thử sửa Windows bằng cách sử dụng đĩa Windows Repair (chọn Command Promptchạy bootsect.exetiện ích. Bootsect nằm trong thư mục khởi động để thay đổi thư mục của bạn boot. Bây giờ hãy chạy bootsect /nt60 C:\(không có dấu ngoặc kép) nếu bạn đã cài đặt Windows 7 ban đầu trong C:phân vùng. Ngoài ra, bạn có thể chạy "bootsect / nt60 SYS" hoặc "bootsect / nt60 ALL")

Và sau đó cài đặt lại GRUB.


Cảm ơn bạn đã trả lời. Ý tôi là đôi giày bốt nhưng không phải cửa sổ sau khi tôi chọn nó. Nghiên cứu, mọi người nói rằng để sửa chữa boot cho mbr, chúng ta nên sử dụng "bootrec.exe / fixboot" rồi "bootrec.exe / fixmbr". Phương pháp của bạn giống như bootrec hay khác nhau?
Sim

Theo kinh nghiệm của tôi, sau khi cài đặt Ubuntu dưới dạng khởi động kép, sẽ tốt hơn nếu chạy Windows khi khởi động lại và tự sửa chữa, sau đó quay lại Ubuntu. Tôi đã làm theo phương pháp này mọi lúc và thấy thành công.
beeju

Thật. Đối với cửa sổ, tôi sử dụng EasyBCD
Sim

0

GRUB được cài đặt trong khu vực khởi động phân vùng Windows (PBR), như BootInfo của bạn hiển thị:

sda1: __________________________________________________________________________

File system:       ntfs
Boot sector type:  Grub2 (v1.99)
Boot sector info:  Grub2 (v1.99) is installed in the boot sector of sda1 
                   and looks at sector 44090872 of the same hard drive 
                   for core.img. core.img is at this location and looks 
                   for (,msdos2)/boot/grub on this drive. No errors found 
                   in the Boot Parameter Block.
Operating System:  Windows 7

Điều này ngăn Windows khởi động.

Giải pháp được mô tả độc đáo tại đây: http://ubuntuforums.org/showpost.php?p=11693662&postcount=1


0

Tôi có vấn đề tương tự và muốn xác nhận giải pháp hiệu quả với tôi với hy vọng nó sẽ giúp người khác ...

Tôi đã chỉnh sửa grub.cfg để phản ánh các thay đổi ở đây:

menuentry "Windows 7 (loader) (on /dev/sda1)" --class windows --class os {
    insmod part_msdos
    insmod ntfs
    insmod ntldr
    set root='(hd0,msdos1)'
    search --no-floppy --fs-uuid --set=root 1EA0019AA0017A13
    ntldr ($root)/bootmgr
}

Đó là, tôi đã thêm ...

ntldr

và thay đổi dòng cuối cùng thành ...

ntldr ($ root) / bootmgr

Tôi sẽ cố gắng khôi phục VBR trong thời gian ngắn và sẽ báo cáo lại cách nó diễn ra.


0

Đã giải quyết vấn đề khởi động windows 10 của tôi ....

menuentry "Windows 10 (loader) (on /dev/sda1)" --class windows --class os {
    insmod part_msdos
    insmod ntfs
    insmod ntldr
    set root='(hd0,msdos1)'
    search --no-floppy --fs-uuid --set=root 1EA0019AA0017A13 
    ntldr ($root)/bootmgr
}

hexadec.code có thể khác


2
Tôi không chắc điều này thực sự thuộc về câu hỏi này ...
Zanna
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.