Có cách nào để khởi động Windows 7/8 bằng BIOS trên GPT không?


21

Tôi muốn biết liệu có phương pháp nào để Windows Preview hoặc Windows 8 Developer Preview cài đặt vào đĩa GPT trên thiết lập BIOS PC IBM truyền thống của tôi không. Windows 7, tất nhiên, từ chối phân vùng GPT của tôi, vì tôi không có UEFI. Chà, Debian và Grub 2 dường như hoạt động tốt ... Vì vậy, tôi muốn biết liệu có cách nào để buộc Windows hoạt động tốt không.

Tôi thực sự muốn tránh MBR / GPT lai, vì nó khá dễ vỡ và cảm thấy bị hack, nhưng nó vẫn hoạt động. Tôi cho rằng trình chặn chính là Microsoft đơn giản là không thêm hỗ trợ trong bộ tải khởi động BIOS của họ cho GPT, điều đó có thể hiểu được, tôi cho rằng. Có bất kỳ truy đòi?

Theo cách tôi thấy, có một vài giải pháp tiềm năng:

  1. Có bộ tải khởi động thay thế cho nhân Windows. KHÔNG phải là một chuỗi tải. Theo tôi biết, không có gì tồn tại. Thật là xấu hổ.
  2. Lưu trữ ít nhất có thể trên một đĩa dựa trên MBR thay thế. Không thích ý tưởng này, nhưng nó có thể thực hiện được. Tôi không chắc chắn tôi gọi đây là một giải pháp cho vấn đề nhiều như một cách giải quyết.
  3. Giả lập EFI đủ để bộ tải khởi động EFI hoạt động ... Tôi nhớ đã nghe một chút về trình giả lập UEFI trên BIOS, nhưng tôi không thể tìm thấy bất cứ điều gì về nó bây giờ. Tôi cho rằng điều này là có thể thực hiện được, nhưng có lẽ vẫn chưa có nhiều nhu cầu cho nó và có lẽ không có gì thú vị để thiết lập. GRUB 2 dường như có thể khởi động hackffy với phần mô phỏng EFI cần thiết, nhưng tôi đoán không có hứng thú / UEFI 2 khó tiếp cận hơn (và tôi cho rằng các trình giả lập EFI khác được sử dụng cho hackffy là trên cùng một chiếc thuyền.)
  4. Coreboot với TainoCore. Coreboot không hoạt động trên bo mạch chủ của tôi (theo như tôi biết) và tôi khá chắc chắn rằng nỗ lực cuối cùng để làm điều này trong GSoC là một thất bại. Tôi hoàn toàn thích giải pháp này, nếu nó đã làm việc, mặc dù.

Tôi có thiếu thứ gì không?


1
Không hẳn. Tôi biết nó có thể chạy trên MBR / GPT lai và tôi không ngại sử dụng nó. Hơn nữa, tôi không hài lòng với giải pháp đó và muốn biết liệu có cách nào khác tốt hơn không. Tôi vẫn đang làm việc về vấn đề này, và tôi có thể tìm ra giải pháp của riêng mình.
John Chadwick

1
Tôi khá chắc chắn Câu hỏi đó là một bản sao của câu hỏi này, với sự chênh lệch 2 năm. Bên cạnh đó, thực sự không có câu trả lời cho câu hỏi ở đó, hoặc ít nhất không phải là câu hỏi trực tiếp, trong khi câu hỏi này có câu trả lời trực tiếp.
John Chadwick

Bạn đã kiểm tra câu trả lời của tôi? Nó mới và không ai khác đã làm theo cách này. Muốn có một số thử nghiệm về nó. Đảm bảo không hack.
Milind R

Nó thực sự sẽ không hoạt động trên máy tính xách tay, mặc dù. Nhưng một lần nữa, tôi thấy thật kỳ lạ khi đánh dấu câu hỏi này là một bản sao sau khi nó được trả lời đầy đủ gần 2 năm trước khi câu hỏi đó thậm chí được hỏi. Tôi không thấy việc chạy một triển khai UEFI bị hack; chỉ lạ lùng, nhưng nó có lợi thế là không yêu cầu thêm ổ đĩa.
John Chadwick

Có một triển khai đĩa đơn trong các tác phẩm, sẽ cập nhật khi được thử nghiệm ... Ngoài ra, đó là một hack theo nghĩa bạn đang nói dối với các cửa sổ về hệ thống: trong MBR lai, nói dối về loại phân vùng, trong DUET, nói dối về phần sụn.
Milind R

Câu trả lời:


8

Chà, mọi thứ đã thay đổi kể từ lần đầu tiên tôi hỏi câu hỏi này. Đối với một, PC của tôi bây giờ dựa trên UEFI, vì vậy tôi không gặp vấn đề này nữa. Vâng, loại. Tôi đã quan tâm đến việc kéo một thiết lập tương tự trên máy tính xách tay của mình (phân vùng GPT, v.v.) Cuối cùng tôi cũng đã có được một thiết lập Tianocore UEFI DUET đang hoạt động, và nó đơn giản đến mức khó tin!

Điều này giả định rằng bạn muốn tất cả các thiết lập mới, sáng bóng. Nếu bạn muốn thực sự chuyển đổi thiết lập cũ của bạn, chúc may mắn . Trên thực tế, chúc may mắn, vì đây là một hoạt động tại chỗ trong mọi tình huống.

Một lời cảnh báo: Nếu bạn là người hâm mộ thời gian khởi động nhanh, bạn có thể muốn suy nghĩ lại về quyết định này. Không phải UEFI DUET chậm, nhưng nó thêm một giai đoạn khác vào quy trình khởi động của bạn, vì vậy nếu BIOS / POST của bạn không nhanh, bạn có thể không thích điều này.

Nếu không có thêm rắc rối:

  1. Bạn sẽ muốn thiết lập Linux. Tôi đã sử dụng Fedora 16 từ một thanh USB (với UNetBootin) và tôi rất khuyến khích điều đó bởi vì nó thực sự hoạt động tốt. Dù sao bạn cũng cần ổ USB, vì vậy đừng có kế hoạch tiếp tục mà không có.

  2. Lấy một số bản dựng UEFI DUET. Không có câu hỏi, nơi tốt nhất để có được điều này là ở đây . Các tarball xây dựng thực tế nằm dưới nhánh chính của kho lưu trữ đầu tiên, ở đây . Cho nó cái cũ tar -xf.

  3. Thiết lập phân vùng của bạn. Bạn nên dự trữ 200 MB ở đâu đó trên đĩa (tốt nhất là phân vùng đầu và phân vùng đầu tiên.) Bạn có thể định dạng nó bằng FAT32, nhưng chúng tôi sẽ định dạng lại sau. Chỉ cần chắc chắn rằng nó hiển thị như là một phân vùng. Bạn nên sử dụng GPT tại đây.

  4. Bây giờ cài đặt bất kỳ phần mềm bổ sung nào bạn có thể cần. Trên bản phân phối Fedora Live, tôi thấy tôi cần yum install gdisk. Tôi nghĩ đó là nó.

  5. Bây giờ đi vào thư mục bản dựng trích xuất. chmod +x ./duet-install./duet-install -64 -F -m /dev/sda1( /dev/sda1phân vùng hệ thống EFI mong muốn của bạn ở đâu .)

  6. Bắt chéo ngón tay của bạn và khởi động lại. Nếu may mắn, bạn sẽ thấy logo TianoCore chỉ trong vài giây. Nếu vậy, bạn có lẽ là tốt! Bạn sẽ cần thiết lập các tệp cài đặt hệ điều hành của mình trên ổ USB - Tianocore không hỗ trợ ổ đĩa CD-ROM / DVD-ROM (và tôi không biết bất kỳ trình điều khiển nào cho nó.)

Bạn cũng có thể muốn một số nhị phân vỏ UEFI để chơi với. Tôi tìm thấy một số ở đây . Mặc dù vậy, vẫn chưa thử nghiệm với Tianocore.

Dù sao, cảm ơn tất cả những người đã cố gắng giúp đỡ.


Điều này hoạt động với cài đặt Windows?
Moab

Tôi đã sử dụng thành công với Windows 8 vào năm 2012. Tôi không cần nó nữa vì mọi thứ được tạo ra trong vài năm qua đều sử dụng UEFI, vì Windows 8+ yêu cầu các nhà sản xuất phần cứng hỗ trợ. Nó có thể vẫn còn hoạt động ngày hôm nay, nhưng tôi không biết nếu tôi muốn giới thiệu nó.
John Chadwick

2
Liên kết UEFI DUET bây giờ sẽ ở đây , nhưng nó không còn được duy trì; trang web nói sử dụng Cỏ ba lá thay thế.
kirbyfan64sos

1
và bạn có thể cài đặt Cỏ ba lá vào ổ cứng để loại bỏ sự cần thiết của một ổ đĩa riêng
phuclv

6

Tôi đã quản lý để khởi động Windows 8.1 trên đĩa GPT theo thiết lập BIOS KHÔNG CÓ đĩa MBR thứ hai.

Câu chuyện là: Máy tính xách tay của tôi đã được cài đặt BIOS + GPT, chỉ cài đặt Arch Linux. Gần đây tôi cần hoàn thành một số tác vụ trong Windows (điều mà các máy ảo không thể thực hiện được) vì vậy tôi đang vật lộn để cài đặt Windows theo thiết lập BIOS + GPT hiện có của mình. Theo câu trả lời của Milind , tôi đã quản lý để cài đặt các tệp khởi động Windows (Boot, bootmgr, v.v.) vào ổ USB MBR (nhỏ). Và mỗi lần tôi bật nguồn máy tính xách tay của mình với ổ USB đó, tôi có thể khởi động vào Windows 8.1, sau đó ổ đĩa có thể được cắm an toàn.

Hạn chế là rõ ràng: Tôi cần mang theo ổ USB để khởi động Windows. Vì vậy, tôi đã luôn cố gắng để thoát khỏi nó.

Sau khi thử với các phương pháp khác nhau, cuối cùng tôi đã tìm thấy mô-đun memdisk của dự án syslinux hoạt động.

  • Bạn cần từ bỏ trình quản lý khởi động Windows.
  • Bạn không phải cài đặt syslinux. Chỉ cần mô-đun memdisk (tệp 26 kB).
  • Bạn có thể sử dụng nhiều bộ tải khởi động để tải mô-đun này, trong trường hợp của tôi, bộ tải khởi động yêu thích của tôi GRUB (phiên bản 2).

Dưới đây là phác thảo về cách làm:

  • Phân vùng đĩa GPT của bạn để đáp ứng nhu cầu của GRUB, nghĩa là, một phân vùng nhỏ để nhúng core.img. Liên kết chi tiết
  • Cài đặt GRUB vào phân vùng nhỏ đó.
  • Cài đặt Windows với imagex.Và sử dụng bootsectbcdbootcài đặt các tệp khởi động Windows vào một đĩa USB MBR nhỏ..
  • Sử dụng ddhoặc dd_rescuesao chép đĩa USB nhỏ của bạn vào hình ảnh đĩa. (Đĩa USB của bạn đã hoàn thành công việc.) Hình ảnh có thể quá lớn để tải memdisk, bạn có thể gắn nó và thu nhỏ hệ thống tập tin / phân vùng trong đó.
  • Theo thử nghiệm của tôi, bạn không cần đĩa MBR vật lý để cài đặt các tệp khởi động Windows vào. Bạn có thể tạo một tập tin vhd và coi nó như một đĩa vật lý.Sau khi cài đặt các tệp khởi động Windows vào vhd, bạn có thể chuyển đổi nó thành ảnh đĩa thô (kiểu dd) bằng các công cụ được cung cấp bởi VirtualBox hoặc QEUM.Khi được tạo bằng type=fixed, tệp vhd chỉ là một hình ảnh đĩa thô bình thường (kiểu dd) với chân trang 512 Byte. Chân trang sẽ được công nhận là "không gian không liên kết" và sẽ bị bỏ qua, do đó, một type=fixedtệp vhd có thể được cung cấp trực tiếp cho MEMDISK mà không cần chuyển đổi và do đó khởi động Windows.
  • Cấu hình GRUB để sử dụng memdisk để tải hình ảnh đĩa này.
  • Windows sẽ khởi động.

Một cách chi tiết có thể được tìm thấy trong phần khởi động lại của tôi . Trả lời chủ đề của Milind.


1
@wzboy Tôi đang sử dụng Arch linux và tôi đã quản lý để có được sau khi cài đặt windows (với wimlib-imagex). Bây giờ tôi không chắc làm thế nào để tiếp tục. Bạn có thể giải thích cách tạo tập tin vhd từ trong bản phân phối linux không?
Mihai Bişog

@ MihaiBişog Bạn cần có Windows PE để tạo vhd đó. Có nhiều cách để khởi động vào Windows PE. GRUB và syslinux có thể khởi động vào các tệp iso, ví dụ.
Zhuoyun Wei

Đây không phải là sẽ phá vỡ các bản cập nhật Windows? Ý tôi là, nếu Microsoft sẽ phát hành bản cập nhật sẽ sửa đổi các tệp boot / bootmgr mà bạn đưa vào hình ảnh đĩa ảo - chúng sẽ không được cập nhật và bạn thậm chí không bao giờ nhận thấy điều này. Ngoài ra tôi cho rằng điều này có thể phá vỡ một số hoạt động sửa chữa cửa sổ. Có bất kỳ nhược điểm khác?
Powerman

Trên thực tế, BCD / Bootmgr sẽ không bao giờ được tìm thấy bởi Windows, vì nó nằm trong một hình ảnh đĩa mềm / đĩa. Vì vậy, không có câu hỏi về tự động cập nhật nó. Tự động sửa chữa sẽ không hoạt động. Bất cứ điều gì liên quan đến các công cụ microsoft liên quan đến khởi động của bạn có thể sẽ không hoạt động.
Milind R

1
Có, mọi thứ liên quan đến bootmgr sẽ không hoạt động, vì chúng đã "biến mất" sau khi giúp Windows của bạn khởi động. Trong thực tế, khi bạn chạy "bcdedit" trong cmd.exe, nó sẽ cho bạn biết rằng nó không thể tìm thấy các tệp khởi động. :-)
Zhuoyun Wei

5

Nếu bạn thậm chí có một ổ đĩa dự phòng nhỏ , bạn có thể khởi động Windows (32 hoặc 64 bit) từ GPT trên BIOS. Một đĩa mềm sẽ làm.

Khởi động vào đĩa cài đặt / sửa chữa Windows.

Tạo ổ đĩa hệ thống trên đĩa nhỏ / đĩa mềm và sử dụng bcdbootđể đặt các tệp khởi động của bạn vào ổ đĩa vừa tạo trên đĩa nhỏ. Thêm một khởi động với bootsect. Thay đổi {bootmgr} devicethành boot. Khởi động từ đĩa nhỏ.

Các bước được chi tiết ở đây .


2
Đã thử nó và nó đã làm việc. Bây giờ tôi có Windows 8.1 hoạt động trên đĩa GPT theo thiết lập BIOS. Tất cả những gì tôi phải làm là lắp ổ flash USB của mình để khởi động nó. Sau quá trình khởi động, ổ USB có thể được gỡ bỏ. Cũng giống như thời xưa, ý tôi là đĩa mềm MS-DOS ...
Zhuoyun Wei

Lol. Tôi đang làm việc trên một giải pháp không yêu cầu đĩa khác. Bạn có thể cho tôi biết nó chậm / nhanh như thế nào không?
Milind R

1
Tôi nghĩ rằng việc đặt bootmgr trên một đĩa khác không giúp khởi động Windows lâu hơn, ít nhất là tôi không cảm thấy điều đó.
Zhuoyun Wei

2
OHHHH CÓ. Xin lỗi vì quá phấn khích. Tôi đã dành cả một buổi chiều và cuối cùng đã quản lý để khởi động Windows 8.1 trên đĩa GPT theo thiết lập BIOS KHÔNG CÓ đĩa MBR thứ hai (nhỏ) - bằng cách sử dụng mô-đun memdisk syslinux có khả năng tải hình ảnh đĩa cứng.
Zhuoyun Wei

1
Dưới đây là bài viết của tôi: reboot.pro/topic/...
Zhuoyun Wei

3

Cảm ơn rất nhiều đến wzyboy.

Tôi gặp phải vấn đề này khi cố gắng cài đặt Windows 2012 lên Dell PowerEdge 2950 với RAID 6Tb. Nó không có UEFI.

Tôi đã thực hiện một số thí nghiệm. Đầu tiên tôi tạo ra ổ cứng ảo 32Mb, như wzyboy đã nói, và chỉ cần sao chép tất cả nội dung từ phân vùng dành riêng của Microsoft. Windows đã được khởi động bình thường. Nhưng với giải pháp này, dịch vụ Hyper-V không thể khởi động.

Như wiki memdisk nói, nó tự động quyết định theo kích thước hình ảnh, loại phương tiện nào phải mô phỏng. Vì vậy, tôi đã tạo đĩa mềm 720K ảo trong môi trường WMware và sao chép bootmgr, BCD và bootstat.dat trong đó (chỉ trong trường hợp, xóa menu con memtest khỏi cửa hàng BCD). Kích thước đĩa mềm tôi chọn càng nhỏ càng tốt, vì vậy nó có thể lớn hơn hoặc thậm chí nhỏ hơn, tôi không thử.

Bây giờ nó khởi động từ ổ đĩa GPT và Hyper-V hoạt động tốt.

PS có thể là phần mềm của bên thứ ba giúp. Có ai đã sử dụng bất cứ điều gì như thế này? https://www.terabyteunliated.com/bootit-bare-metal.htm


Gần đây, sau khi tôi dành nhiều giờ cho các thủ thuật hình ảnh, tôi thấy bộ điều khiển RAID Perc5-i có khả năng cắt mảng nhỏ hơn dung lượng ổ cứng vật lý. Vì vậy, trên phần cứng chuyên nghiệp, khởi động GPT không thành vấn đề.
Nikolai Vakulenko

Bạn có thể vui lòng thuật lại kịch bản của bạn và cách khắc phục của bạn cho nó, trong luồng dev này không? Tôi đang cố gắng để giữ tất cả các chi tiết với nhau.
Milind R

2

Bài viết Chuyển đổi BIOS sang UEFI mô tả chi tiết cách sử dụng TainoCore UEFI DUET.

Tôi hiểu rằng bạn đã gặp vấn đề khi sử dụng TainoCore, nhưng có lẽ bài viết này sẽ phù hợp với bạn.

Bài báo nói:

Một số máy tính không hoạt động với UEFI DUET. Quan trọng nhất, nó thực sự chỉ hữu ích trên các máy tính 64 bit x86-64, đặc biệt là ở dạng nhị phân. Trên thực tế, nó không khởi động đúng cách ngay cả trên một số máy tính x86-64. Trong các thử nghiệm trên năm hệ thống x86-64, tôi đã quản lý để có được một hoặc cả hai phiên bản hoạt động trên chỉ ba máy tính. Một tỷ lệ thành công khá ảm đạm, thực sự. Có thể chỉ là trùng hợp ngẫu nhiên, nhưng hai máy tính hoạt động tốt nhất với tôi đã sử dụng CPU Intel, trong khi hai máy hoạt động kém nhất và máy hoạt động với phiên bản 2.1 nhưng không phải phiên bản 2.3 đều có CPU AMD.

Điều này dường như ngụ ý rằng người ta nên thử một vài phiên bản của UEFI DUET trước khi từ bỏ.

Nó sẽ giúp để biết mô hình của máy tính của bạn.


Kể từ lần cuối cập nhật câu hỏi này, tôi thực sự đã nhận được UEFI DUET để khởi động thành công trên máy tính của mình. Đáng buồn thay, việc thiếu trình điều khiển DVD-ROM đã giết chết tôi, vì tôi không có bất kỳ ổ USB nào để lưu trữ Windows. Sau khi ổ cứng chính của tôi ngẫu nhiên thất bại, tôi quyết định cho nó nghỉ ngơi và sử dụng phân vùng BIOS trên một phụ tùng. Tuy nhiên, bài viết này thực sự hữu ích và tôi vẫn quan tâm đến việc tự mình làm việc này. Tôi sẽ cố nhớ để sớm nhận được một ổ đĩa flash.
John Chadwick

@JohnChadwick bạn có thể sử dụng Cỏ ba lá và cài đặt nó vào ổ cứng để bạn không cần ổ đĩa khởi động riêng nữa
phuclv

@phuclv: Bạn có để ý rằng bình luận của John Chadwick là từ năm 2011 và anh ấy đã đưa ra câu trả lời của riêng mình cho bài đăng này?
harrymc

@harrymc dĩ nhiên tôi biết. Thông tin đó dành cho những độc giả tương lai
phuclv

0

Mọi người cần lưu ý rằng không phải tất cả các chương trình cơ sở bios đều có thể xử lý ổ đĩa GPT. Tôi có ổ USB Seagate 4 Tb là GPT từ nhà máy và cả hai máy tính của tôi đều không khởi động được với ổ cắm vào cổng USB.

Các máy sẽ đóng băng tại màn hình menu F2 Enter Setup F10 Boot và điều duy nhất có thể được thực hiện tại thời điểm đó là tắt nguồn và bật lại.

Khi tôi chuyển đổi ổ đĩa thành MBR, tiêu tốn khoảng 2 Tb dung lượng ổ đĩa, cả hai hệ thống sẽ khởi động và khởi động vào HĐH như bình thường với ổ đĩa được kết nối.

Tôi đang tìm một bản vá BIOS để khắc phục vấn đề này.


BIOS không biết gì về ổ đĩa , cho dù là GPT hay MBR, hoặc thậm chí là nhãn BSD hoặc APM ... Nó chỉ tải khu vực đầu tiên (ví dụ MBR) và chạy nó. Tại thời điểm đó, công việc của BIOS có thể được coi là "hoàn thành". Nếu ổ đĩa của bạn không khởi động, điều đó chỉ có nghĩa là không có khu vực khởi động hợp lệ trên ổ đĩa
phuclv
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.