Tôi muốn làm điều đó bởi vì tôi muốn cài đặt Windows 7 và menu BIOS của tôi không xuất hiện; nó bỏ qua menu grub2 khi bắt đầu, nhưng đó là một câu chuyện khác ... Có cách nào để khởi động cài đặt Windows 7 iso trực tiếp từ grub2 không?
Tôi muốn làm điều đó bởi vì tôi muốn cài đặt Windows 7 và menu BIOS của tôi không xuất hiện; nó bỏ qua menu grub2 khi bắt đầu, nhưng đó là một câu chuyện khác ... Có cách nào để khởi động cài đặt Windows 7 iso trực tiếp từ grub2 không?
Câu trả lời:
Khởi động ISO thực tế bằng grub legacy hoặc grub2 sẽ không hoạt động, nhưng với các phiên bản Windows cũ hơn (ví dụ XP), có thể giải nén thư mục i386 từ ISO sang thanh USB, sau đó sử dụng grub4dos để gọi bộ tải khởi động:
title windows installer via setupldr.bin
find --set-root /i386/setupldr.bin
chainloader /i386/setupldr.bin
hoặc là
title windows installer via /bootsect.bin
find --set-root /i386/setupldr.bin
chainloader /bootsect.bin
Điều này có thể không hoạt động với các phiên bản Windows mới hơn hoặc với phần cứng mới hơn nhưng cũng có tùy chọn ..
Với grub2 rõ ràng một cái gì đó như thế này có thể hoạt động cho Windows 7 :
menuentry "Windows 7 (bootmgr)" --class windows --class os {
insmod part_msdos
insmod ntfs
insmod ntldr
### A: either use this line or the next one, but not both
set root='(hd0,msdos1)'
### B:
### search --no-floppy --fs-uuid --set=root ____INSERT_PARTITION_UUID_HERE___
ntldr ($root)/bootmgr
}
Tùy chọn A giả định thanh USB / ổ cứng có thể khởi động của bạn là thiết bị đầu tiên và có bảng phân vùng kiểu msdos. Điều chỉnh để phù hợp với cấu hình của bạn. Nếu thiết bị khởi động của bạn có bảng phân vùng GPT, thì rất có thể bạn sẽ cần sử dụng (hd0,gpt1)
(nói chung GPT sẽ khó cài đặt hơn).
Tùy chọn B sử dụng UUID duy nhất của ổ đĩa, có thể thấy trên Linux với sudo blkid
hoặc trên OSX với ví dụ diskutil info disk0s1
(hoặc Disk Utility> Info).
Mục cuối cùng có thể tìm ví dụ như thế này:
menuentry "Windows 7 installer" --class windows --class os {
insmod part_msdos
insmod ntfs
insmod ntldr
search --no-floppy --fs-uuid --set=root 0E239BC6-F960-3107-89CF-1C97F78BB46B
ntldr /bootmgr
}
Vâng, bạn sẽ nghĩ một cái gì đó như thế này sẽ hoạt động:
menuentry "Boot Windoze" {
search -f "--set-root /Winblows.iso"
drivemap "/Winblows.iso" '(hd32)'
drivemap '--hook' ''
set root='(hd32)'
chainloader +1
}
Nhưng Windows sẽ chùn bước ở đó.
Nếu bạn có ít nhất 4GB RAM, bạn có thể chọn tải toàn bộ iso DVD trong memdisk và khởi động nó. Để làm điều đó, tải xuống SysLinux và giải nén memdisk
tệp vào boot
thư mục của bạn . Sau đó, bạn cần thêm mã vào Grub2 một cái gì đó như thế này
menuentry "Boot Windoze" {
search -f "--set-root /Winblows.iso"
insmod memdisk
linux16 /boot/memdisk iso
initrd16 /Winblows.iso
}
Tuy nhiên, tôi thậm chí sẽ không kiểm tra mã, vì việc đưa hơn 3 GB dữ liệu vào RAM hoàn toàn sai (theo quan điểm ý tưởng). Không, tôi thực sự muốn những gì bạn muốn, nhưng cuối cùng tôi đã cài đặt Windows trên một phân vùng trên USB bằng công cụ tải xuống USB / DVD của Windows 7 và được tải vào đó. Xin lỗi, dường như không có cách nào khác mà tôi có thể thấy.
Kỹ thuật cài đặt từ .iso
tập tin của windows không thể. Bạn có thể khởi động từ .iso
grub bằng cách sử dụng nhưng sau đó Windows sẽ mất liên lạc với vị trí được gắn hoặc nó không có khả năng. Vì vậy, cả grub
& Windows nên biết về mount và boot. Hiện tại Windows không hỗ trợ.
Vì vậy, bạn cần trích xuất / sao chép nội dung .iso
vào thư mục gốc của phân vùng và sau đó tải chuỗi vào đó bằng cách sử dụng grub
.