Windows 7 telepítése UEFI-s partícióról, GRUB 2 indítással

Egy laptopra kellett a hozzá adott Ubuntu mellé egy Windows 7-et tenni dual bootban. Mivel sem külső optikai meghajtó, sem nagy méretű pendrive nem volt a közelben, így egy partícióról kellett elindítani a telepítést.

A rendszer teljesen UEFI-s, GPT partíciós táblával. Mivel eleget szenvedtem vele, gondoltam, összeszedem hogyan is lehet ilyet alkotni.

Hozzunk létre egy NTFS partíciót olyan 4 GB mérettel. Erre kerül a telepítő. Ez ideiglenesen lehet a Linux swap partíciója is egy gyors formázás után. Ha szeretnénk átméretezni az eredeti linuxos partíciót, akkor erre az újra másoljunk egy SystemRescueCD .iso fájlt, és a következőt állítsuk be a GRUB 2-ben (mivel a kapott Linux egy Ubuntu volt, ezért a fájl útvonalak és parancsok arra vonatkoznak):

/etc/grub.d/40_custom:


menuentry "SystemRescueCD" {
    insmod ntfs
    insmod part_gpt
    set root=hd0,gpt5
    loopback loop /systemrescuecd-x86-x.y.z.iso
    linux (loop)/isolinux/rescue32 isoloop=systemrescuecd-x86-x.y.z.iso
    initrd (loop)/isolinux/initram.igz
}

Az x.y.z helyére értelemszerűen az aktuális verziót írjuk, a hd0,gpt5 pedig a 4+ GB-os partíció címe (itt /dev/sda5). Futtassuk az "update_grub2" parancsot. Elindítva a RescueCD rendszert gparted-del csökkentsük az ext4 méretét, hozzuk létre a Windows 7 partícióját, majd indítsuk újra a gépet.

Másoljuk át a letöltött Windows 7 .iso fájl tartalmát a kis NTFS partícióra (akár mc-vel is lehet), majd nézzük meg a partíció azonosítóját a "blkid" program segítségével. A korábbi 40_custom fájlt egészítsük ki ezzel:


menuentry "Windows telepítő" {
    insmod ntfs
    insmod part_gpt
    insmod chain
    insmod search_fs_uuid
    set root=hd0,gpt5
    search --fs-uuid --no-floppy --set=root XXXXXX
    chainloader ({$root})/efi/boot/bootx64.efi
}

Az XXXX-ek helyére a fentebb kiderített partíció-azonosító kerül. Mivel a Windows 7-ben a bootx64.efi be van csomagolva, így azt nekünk kell kibontani és a megfelelő helyre másolni a következő parancsok lefuttatásával a kis NTFS partíció gyökerében:


- cp -r efi/microsoft/boot efi/boot/
- 7z e sources/install.wim 1/Windows/Boot/EFI/bootmgfw.efi
- mv bootmgfw.efi efi/boot/bootx64.efi

Futtassuk az update-grub2 parancsot újfent, majd indulhat a Windows 7 telepítése.

Hozzászólások

Bookmark

"Jegyezze fel a vádhoz - utasította Metcalf őrnagy a tizedest, aki tudott gyorsírni. - Tiszteletlenül beszélt a feljebbvalójával, amikor nem pofázott közbe."

Bár nem a tárgyra vonatkozik, csak elindult a fantáziám. Néha pendrájvról indítom az egyik laptopomat, de ha ez működik, csinálok neki egy fat32-es minipartíciót..

Tehát ha grub2-ben egy slaxot is szeretnék, ez szerinted megfelelne menüpontnak?

menuentry "Slax 6.1.2 iso" {
set root=(hd0,6)
set isofile="/slax6.1.2.iso"
loopback iso $isofile
linux (iso)/boot/vmlinuz from=$isofile ramdisk_size=6666 root=/dev/ram0 rw autoexec=startx changes=s512.dat
initrd (iso)/boot/initrd.gz
}

---
--- A gond akkor van, ha látszólag minden működik. ---
---

Ha ez a rendszer MBR alapú, a /dev/sda6 gyökerébe teszed a slax6.1.2.iso-t és a Slax fel van készítve az .iso-ból való bootolásra, akkor így első blikkre jónak tűnik. Ellenben az utóbbi kitételnek mindenképpen nézz utána, mert ez nem általános (többek között ezért sem lehet rögtön .iso-ból bootolni a Windows telepítőt, illetve úgy olvastam, hogy az Ubi desktop fel van erre készítve, de a server változat már nem). Illetve egy "insmod fat" biztosan nem árt, és ahogy nézem, a változókat szeretik zárójelbe tenni a példakódokban. Továbbá úgy rémlik, hogy a GRUB2 alapból átadja a root= paramétert a kernelnek, de valószínű, hogy a /dev/ram0-val ezt felülírod, csak érdemes észben tartani.

--
The Elder Scrolls V: Skyrim

Régen telepítettem már windows-t így (tehát, hogy először volt fent az ubuntu, aztán jött a win), de annó úgy emlékszem volt gond azzal, hogy felülírta az mbr-t, és a grub helyett a saját bootloader-e fogadott a restart után. A 7-esnél már nincs ilyen gond? Tehát a grub érintetlen marad?

<= Powered By Ubuntu & Gentoo Linux =>

'Software is like sex: It's better when it's free!'
By Linus Torvalds