ntldr.mod mất tích từ GRUB2


7

Tôi sử dụng Debian Wheezy trên bo mạch chủ EFI và cần mô-đun ntldr trong GRUB2 để tải bootmgr của trình cài đặt Windows 7, bởi vì cách nó tự khởi động (rõ ràng, sử dụng phần khởi động của ổ flash USB mà trình cài đặt đang bật), nó chỉ cài đặt Windows trên đĩa định dạng MBR. Khi tôi cài đặt GRUB bằng cách sử dụng grub-install, nó sẽ không thêm ntldr.mod vào thư mục mô-đun GRUB và không thể khắc phục nó.

  1. Tại sao? Khi tôi chỉ tải xuống gói GRUB mà không cài đặt (apt-get download ...), mô-đun có thể được tìm thấy ở đó. Nếu tôi thêm tệp .mod từ gói đã tải xuống vào thư mục mô-đun của GRUB đã cài đặt và sau đó "insmod ntldr" từ dòng lệnh GRUB, nó sẽ nói điều gì đó sai về "ma thuật ELF" (?).
  2. Làm thế nào để làm điều đó cưỡng bức?
  3. Có cách nào khác để khởi động trình cài đặt Windows trong "Chế độ GPT" không, vì tôi không muốn định dạng toàn bộ đĩa thành MBR.

Câu trả lời:


3

Bạn đã tải xuống gói grub-pc, dành cho các máy khởi động bios, vì vậy mô-đun sẽ không tải trong phiên bản efi của grub. Mô-đun đó không tồn tại trong phiên bản EFI của grub vì nó phụ thuộc vào bios.

Nếu bạn muốn khởi động trình cài đặt windows từ thanh usb, thì bạn không nên làm bất cứ điều gì với grub; chỉ cần nói với chương trình cơ sở của bạn để khởi động ổ đĩa đó thay vì hd của bạn với grub trên nó.


1

Chế độ ( Legacy BIOShoặc UEFI) được xác định bởi bộ tải khởi động được cài đặt trên cài đặt USB-Stick và BIOS.

Phương tiện cài đặt Windows 7 phải hỗ trợ cả ( Legacy BIOSUEFI). Đối với sau này, nó phụ thuộc vào cài đặt của bạn. Nhưng vì bạn có thể khởi động từ UEFI-HDD và Win7-USB-Stick của bạn vào Legacy BIOSchế độ, nên nó được đặt thành "cả hai" có nghĩa là BIOS của bạn hỗ trợ UEFIvà khi dự phòng có thể khởi động vào Legacy BIOSchế độ.

Để giải quyết vấn đề, tôi khuyên bạn nên cài đặt bằng Win7-Image có hỗ trợ UEFI (tôi thậm chí không biết, nếu không có) và bạn cũng nên đặt BIOS ở chế độ UEFI rõ ràng (không có chế độ kết hợp ).

Nhưng nếu điều này không hiệu quả và để trả lời câu hỏi của bạn: Điều này sẽ hoạt động:

Đặt Win7-Image trên của bạn HDDhoặc USB-Drivechọn các mô-đun phù hợp (làm theo các nhận xét):

menuentry "Windows 7" --class windows --class os {
    # Insert modules needed in order to access the iso-file
    # choose the right module for the partition-table-scheme the image lies on
    insmod part_gpt
    insmod part_msdos

    # choose the right module for the filesystem the image lies on
    insmod ntfs
    insmod fat
    insmod ext2

    # Insert module needed in order to find partition
    insmod search_fs_uuid


    # Set UUID of partition with the iso-image
    # and let grub2 find the partition
    # (save it's identifier to the variable $root)
    set uuid="XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"
    search --no-floppy --set=root --fs-uuid $uuid

    # Mount the iso image by addressing it with (partition)/path
    set iso=/images/Win7_English_x64.iso
    loopback loop ($root)$iso


    # boot (chain-load) the windows7-image using the bootmgfw.efi file located
    # on the Win7-ISO-Image
    chainloader (loop)/efi/microsoft/boot/bootmgfw.efi
}

Nếu bạn muốn đổ hình ảnh trực tiếp vào thanh usb thì bạn nên bỏ đi set iso=- và loopback loop ($root)$iso-các thứ cần thiết để gắn iso. Trình tải chuỗi của bạn là sau đóchainloader ($root)/efi/microsoft/boot/bootmgfw.efi


1

Bạn cần khởi động ở chế độ cũ, thế thôi. Nhập cài đặt UEFI của bạn và chọn thiết bị khởi động chính xác, không chọn mục nhập ubfox, đó là chế độ EFI, thay vào đó khởi động vào ổ cứng của bạn, sau đó grub sẽ mở, chọn ubfox sau đó và chạy lại sudo update-grub. Bạn có một trình tải khởi động lỗi thời cho ubfox trên ổ đĩa của bạn, nó sẽ khởi động ở chế độ efi, nhưng grub cũng ở MBR.


0

Alexey, vấn đề này thường thấy trong grub2. Tôi đã xem qua cái này, trong khi duyệt qua các diễn đàn ubfox, nơi nó được đánh dấu là đã giải quyết. Có một cái nhìn tại đó: http://ubuntuforums.org/showthread.php?t=1343362 . Hy vọng rằng điều này sẽ giúp bạn .


2
như tôi đã hiểu, họ nói về Windows ntldr, chính bản thân hệ điều hành thua cuộc; Tôi nói về ntldr.mod của GRUB, được sử dụng để tải ntldr của Windows từ GRUB
alexey

Đặc ntldr.modtrưng cho i386-pckiến trúc của GRUB, vì NTLDR dựa vào BIOS kế thừa để thực hiện công việc của mình. Trên hệ thống UEFI, bạn có phiên bản GRUB với x86_64-efikiến trúc, chỉ có thể tải chuỗi bộ tải khởi động UEFI khác ... không bao gồm NTLDR. Ngoài ra, Windows XP sẽ không khởi động từ các phân vùng GPT, ngay cả phiên bản XP 64 bit. XP 32 bit phổ biến hơn sẽ không hỗ trợ GPT.
telcoM

0

Tôi đã tìm ra bộ tải khởi động chính xác của Windows được ẩn ở đâu đó trong các tệp được đóng gói lớn có trong hình ảnh cài đặt. Nó có thể được giải nén, đưa vào thư mục khởi động bên phải và sau đó được tải với trình tải chuỗi GRUB2 như bình thường. Tôi không hiểu tại sao mặc dù có trình tải đúng Microsoft vẫn giấu nó ở đâu đó sâu và đặt cái lạ vào thư mục khởi động mặc định. Nó hoạt động với tôi (mặc dù, tôi đã tải xuống tệp được cung cấp trên trang hướng dẫn mà tôi tìm thấy vì việc giải nén nó khá khó khăn). Thật không may, tôi không nhớ chi tiết, tôi đã tìm thấy hướng dẫn ở đâu đó trên web, nhưng ý tưởng chung được mô tả.


Ở đâu? Tập tin này ở đâu?
HumbleWebDev

1
@HumbleWebDev thử tìm kiếm các cửa sổ tài liệu lưu trữ trong hình ảnh cài đặt cho ntldr hoặc efi hoặc khởi động các file / thư mục (ví dụ như với "tìm thấy" tiện ích), tôi nghĩ rằng thời điểm đó tôi đã đi theo cách này
Alexey

Tôi đã tìm thấy nó. Một hướng dẫn youtube giải thích cách tạo một phương tiện USB win7 có thể khởi động đã cho tôi câu trả lời.
HumbleWebDev

Đây có phải là những gì bạn đã đề cập đến / tìm kiếm? Để khởi động từ Win7, nó là: chainloader (loop)/EFI/MICROSOFT/BOOT/bootmgfw.efiHoặc cho Windows 7 trên một phân vùng: chainloader ($root)/EFI/MICROSOFT/BOOT/bootmgfw.efiBạn có thể phải kết hợp cái nàycái này .
Arch Linux tu
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.