Boot Windows 7 iso dari grub2

12

Saya ingin melakukannya karena saya ingin menginstal Windows 7 dan menu BIOS saya tidak muncul; ia melompat ke menu grub2 saat mulai, tapi itu cerita lain ... Apakah ada cara untuk mem-boot iso instalasi Windows 7 langsung dari grub2?

pengguna208513
sumber
1
"menu BIOS saya tidak muncul" Tapi apakah Anda sudah mencoba masuk ke BIOS?
Mitch
Bagaimana jika saya memformat HDD? Akankah windows boot? :)

Jawaban:

7

Booting Windows XP dengan grub4dos

Mem-boot ISO aktual dengan grub legacy atau grub2 tidak akan berfungsi, tetapi dengan versi windows yang lebih lama (yaitu XP) dimungkinkan untuk membongkar folder i386 dari ISO ke stik USB, dan kemudian menggunakan grub4dos untuk memanggil bootloader:

title windows installer via setupldr.bin
find --set-root /i386/setupldr.bin
chainloader /i386/setupldr.bin

atau

title windows installer via /bootsect.bin
find --set-root /i386/setupldr.bin
chainloader /bootsect.bin

Ini mungkin tidak bekerja dengan versi windows yang lebih baru atau dengan perangkat keras yang lebih baru tetapi ada juga pilihan ..

Booting Windows 7 dengan grub2

Dengan grub2 tampaknya sesuatu seperti ini bisa berfungsi untuk 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
}

Opsi A mengasumsikan USB stick / HDD bootable Anda adalah perangkat pertama dan memiliki tabel partisi gaya msdos. Sesuaikan agar sesuai dengan konfigurasi Anda. Jika perangkat boot Anda memiliki tabel partisi GPT, maka kemungkinan besar Anda harus menggunakan (hd0,gpt1)(GPT secara umum lebih sulit untuk diatur).

Opsi B menggunakan UUID unik drive, yang dapat dilihat di Linux dengan sudo blkidatau pada OSX dengan misalnya diskutil info disk0s1(atau Disk Utility> Info).

Entri terakhir mungkin terlihat seperti ini:

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
}
ccpizza
sumber
Bagus. Saya memang menggunakan --set = root --fs-uuid UUIDHERE (mengubah urutan) sebagai gantinya, (tidak bisa mengatakan apakah itu diperlukan atau tidak). Terima kasih
Jan Kyu Peblik
@JanKyuPeblik Bisakah Anda boot dari ISO?
Anwar
Itu ingatan saya, ya. Saya tidak akan tertarik pada hal-hal lain.
Jan Kyu Peblik
5

Ya, Anda akan berpikir sesuatu seperti ini akan berhasil:


menuentry "Boot Windoze" {
  search -f "--set-root /Winblows.iso"
  drivemap "/Winblows.iso" '(hd32)'
  drivemap '--hook' ''
  set root='(hd32)'
  chainloader +1
}

Tetapi Windows hanya akan menolak itu.

Jika Anda memiliki setidaknya 4GB RAM, Anda dapat memilih untuk memuat seluruh iso DVD dalam memdisk dan boot itu. Untuk melakukannya, unduh SysLinux dan ekstrak memdiskfile ke bootdirektori Anda . Maka Anda perlu menambahkan kode ke Grub2 sesuatu seperti ini


menuentry "Boot Windoze" {
  search -f "--set-root /Winblows.iso"
  insmod memdisk
  linux16 /boot/memdisk iso
  initrd16 /Winblows.iso
}

Namun, saya bahkan tidak akan menguji kodenya, karena memasukkan 3+ GB data ke dalam RAM benar-benar salah (dari sudut pandang idealogis). Tidak, saya benar-benar menginginkan yang Anda inginkan, tetapi pada akhirnya saya menempatkan instalasi Windows pada partisi pada USB menggunakan alat pengunduhan Windows 7 USB / DVD dan di-load ke sana. Maaf sepertinya tidak ada cara lain yang bisa saya lihat.

Warpspace
sumber
Kode pertama akan mem-boot windows tetapi gagal setelah beberapa waktu karena windows tidak tahu di mana iso dipasang
totti
Kode kedua mungkin tidak berfungsi, karena tidak akan berfungsi dengan iso dari Ubuntu
totti
OP merujuk khusus untuk Windows 7. Sudah bisa mengujinya?
Warpspace
Anda mungkin tidak menyukai Windows, tetapi memposting "Winblows" dan "Windoze" di sini agak tidak profesional. -1.
0xC0000022L
1
Karena saya bukan programmer bootstrap profesional, saya dapat hidup dengan "tidak profesional". Saya pikir Anda mungkin berarti "tidak sopan". Ya, komentar itu 6 tahun yang lalu. Saya telah banyak berubah sejak saat itu (dan juga Windows)
Warpspace
5

Instalasi teknis dari .isofile windows tidak mungkin dilakukan. Anda dapat mem-boot dari .isogrub yang menggunakan tetapi setelah itu Windows akan kehilangan kontak dengan lokasi yang dipasang atau tidak mampu melakukannya. Jadi, kedua grub& Windows harus sadar me-mount dan boot. Saat ini Windows tidak mendukung.

Jadi, Anda perlu mengekstrak / menyalin konten .isoke root partisi dan kemudian rantai-load ke dalamnya menggunakan grub.

totti
sumber
2
ide yang bagus untuk berbagi pengetahuan, tetapi Anda dapat menambahkan langsung menjawab pertanyaan secara teknis. yaitu menggunakan kembali teks saat ini sebagai penafian tetapi kemudian Anda dapat memperluas "Anda bisa boot dari .iso" ke menuentries atau sesuatu. dengan cara itu Anda akan membuat metode yang tepat yang Anda bayangkan untuk mencapai apa yang diminta, meskipun Anda tahu tidak bekerja untuk tujuan yang diasumsikan. ini juga akan mengacaukan hitungan solusi yang Anda pertimbangkan.
n611x007