Elektroda.pl
Elektroda.pl
X
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

Windows XP 64-bit lub 32-bit - czy da się odpalić z EFI?

Gelip 20 May 2017 08:15 10926 19
Wago
  • #1
    Gelip
    Level 34  
    WinXP x64 obsługuje partycje GPT ale podobno nie umie bootować z takiej partycji.

    Jak wiadomo jego młodszy brat - Win7 x64 obsługuje EFI, w tym bootowanie. Win7 tworzy 3 partycje w czasie instalacji w tym jedną 100MB FAT32 EFI. WinXP nie potrafi stworzyć takich partycji w czasie instalacji ale wpadłem na pomysł i zrobiłem tak:
    • w maszynie wirtualnej VMware EFI 64 zainstalowałem Win7 x64
    • po uruchomieniu systemu dodałem wpis do BCD odpalający WinXP - według tego poradnika -> How to dual boot Windows 7 and Windows XP using BCD
    • za pomocą LiveCD zrobiłem format NTFS trzeciej partycji na której był Win7
    • w drugiej maszynie wirtualnej zainstalowałem WinXP x64
    • przekopiowałem wszystkie pliki i katalogi z dysku C: WinXP x64 na dysk maszyny Win7 (trzecia partycja)
    Po tych czynnościach mam maszynę Win7 z plikami WinXP na partycji NTFS 20GB (poniżej zamontowany dysk .VMDK za pomocą vboot w systemie hosta WinXP x64):
    DISKPART> list disk
    
      Disk ###  Status      Size     Free     Dyn  Gpt
      --------  ----------  -------  -------  ---  ---
      Disk 0    Online       298 GB      0 B
      Disk 1    Online        20 GB  2015 KB        *
    
    DISKPART> select disk 1
    
    Disk 1 is now the selected disk.
    
    DISKPART> list partition
    
      Partition ###  Type              Size     Offset
      -------------  ----------------  -------  -------
      Partition 1    System             100 MB  1024 KB
      Partition 2    Reserved           128 MB   101 MB
      Partition 3    Primary             20 GB   229 MB

    Maszyna startuje w EFI64 z partycji EFI 100MB, odpala się menedżer rozruchu z listą systemów do wyboru:
    Windows XP 64-bit lub 32-bit - czy da się odpalić z EFI?
    ale po wybraniu WinXP pojawia się błąd:
    Windows XP 64-bit lub 32-bit - czy da się odpalić z EFI?

    Czy ten błąd oznacza iż bootloader nie wie gdzie jest plik ntldr (źle edytowałem plik BCD) czy po prostu ten loader nie działa pod EFI?
  • Wago
  • #2
    Prot
    Level 38  
    Gelip wrote:
    w drugiej maszynie wirtualnej zainstalowałem WinXP x64

    przekopiowałem wszystkie pliki i katalogi z dysku C: WinXP x64 na dysk maszyny Win7


    Ale chyba w trybie BIOS ta instalacja WinXP :?:

    Kopiowanie plików ? Czy przeniesienie obrazu dysku z systemem XP :?: Jeśli obraz to jakie modyfikacje wpisów zrobiłeś w MBR i bootsektorze odnośnie startu systemu ?

    Powszechnie wiadomo, że starsze systemy Windows nie potrafią bootować przy użyciu interfejsu UEFI - chcesz zaprzeczyć tej tezie :?:
  • #3
    Gelip
    Level 34  
    Prot wrote:
    Ale chyba w trybie BIOS ta instalacja WinXP :?:

    Oczywiście, że w trybie BIOS, w EFI nie da się zainstalować.
    Prot wrote:
    Kopiowanie plików ? Czy przeniesienie obrazu dysku z systemem XP :?:

    Wyraźnie napisałem, że skopiowałem pliki a nie przywróciłem obraz.
    Prot wrote:
    Powszechnie wiadomo, że starsze systemy Windows nie potrafią bootować przy użyciu interfejsu UEFI - chcesz zaprzeczyć tej tezie :?:

    Nie - nie chcę zaprzeczyć ale dowiedzieć się w którym miejscu jest ograniczenie bo np. Windows 7 x64 można zainstalować zarówno w trybie BIOS jak i EFI a przecież jak już system się uruchomi to korzysta z tych samych plików .dll czy .exe zarówno w trybie BIOS jak i EFI. Zresztą nawet WinXP nie korzysta ze sterowników urządzeń BIOS'u tylko ze swoich. Uważam, iż to tylko kwestia bootloadera bo WinXP 64-bit dla architektury Itanium obsługuje bootowanie z EFI za pomocą pliku IA64ldr.efi:
    Quote:


    Edytowano
    ========
    Był jednak błąd w BCD bo po odpaleniu maszyny z DVD-ISO Win7 i wybraniu opcji Napraw komputer:
    Windows XP 64-bit lub 32-bit - czy da się odpalić z EFI?
    instalator naprawił mi wpisy w BCD ale chyba tylko ten dotyczący lokalizacji Windows 7. Natomiast wpis WinXP jest albo nadal zły bo opcja Napraw komputer z płyty Win7 czy Vista nie potrafi naprawić systemów starszych albo i/lub ntldr z WinXP x64 nie obsługuje EFI bo teraz po naprawie mam takie coś:
    Windows XP 64-bit lub 32-bit - czy da się odpalić z EFI?
  • Wago
  • #5
    Gelip
    Level 34  
    Prot wrote:
    Proponuje przejrzeć artykuł o zawiłościach dual bootowania Windowsa i ograniczeniach :cry: związanych z interfejsem wej-wyj (BIOS vs UEFI), oraz typem partycji dysku (MBR vs GPT) :idea: - https://wiki.archlinux.org/index.php/Dual_boot_with_Windows

    Tak, oficjalnie wszystko się zgadza - co który system potrafi ale drążąc temat natrafiłem na system 32-bit w wersji beta - coś pomiędzy WinXP a WinVista a dokładnie Windows Longhorn (Vista Beta 1 5112):
    Windows XP 64-bit lub 32-bit - czy da się odpalić z EFI?
    który po zainstalowaniu w trybie BIOS ma jakieś pliki .efi w katalogu C:\Boot:
    Windows XP 64-bit lub 32-bit - czy da się odpalić z EFI?
    Próbuję jakoś to wykorzystać w EFI ale nie bardzo mi wychodzi bo płyta nie bootuje w trybie EFI. Program winnvram.efi ma następującą składnię:
    Windows XP 64-bit lub 32-bit - czy da się odpalić z EFI?
    ale nie wiem czy system ma być na zwykłej partycji MBR czy GPT - na pewno system obsługuje partycje GPT bo diskpart czy diskmgmt.msc rozpoznaje GPT poprawnie.
  • #7
    Gelip
    Level 34  
    Pliki winldfw.efi i winnvram.efi są też w systemie WinXP Media Center w komputerze Gateway 610 tylko w katalogu C:\Boot\EFI\Microsoft\Boot na partycji NTFS. Był to chyba jeden z pierwszych komputerów z firmware EFI i do tego 32-bit:
    Intel and Microsoft are set to start pitching "EFI"
    Quote:
    Gateway, which uses EFI in its all-in-one Gateway 610 Media Center desktop, said it chose to do so because EFI proved a more efficient way to code preboot software and can also help to improve the product from a long-term development perspective, a company representative said.

    Quote:
    Intel and Microsoft will also promote EFI by supporting it with their products. Microsoft will support EFI in Longhorn, its next version of the Windows operating system.

    Windows XP Pro SP2 DOES have EFI Support
    Windows XP 64-bit lub 32-bit - czy da się odpalić z EFI? Windows XP 64-bit lub 32-bit - czy da się odpalić z EFI?
    Tylko, nie wiem czy komputer posiadał opcję Legacy BIOS w EFI czy może Microsoft wyjątkowo w tym przypadku dodał wsparcie dla EFI w WinXP?

    Bardzo ciekawe rzeczy:
    Microsoft - Firmware Design
    UEFIrequirements.doc
    EFI - The BIOS Replacement
    Tak wygląda EFI Boot Manager w komputerze z firmware Insyde EFI:
    Windows XP 64-bit lub 32-bit - czy da się odpalić z EFI?
    a z dokumentu (Power Point) - TW04023_WINHEC2004.ppt Implementing EFI on 32-bit Systems, wynika iż Insyde zaimplementował bootowanie WinXP z EFI:
    Windows XP 64-bit lub 32-bit - czy da się odpalić z EFI?
    Znalazłem firmware tego 610 i za pomocą UEFITool wyodrębniłem kilka modułów EFI np. Csm16 i LegacyBios:
    Windows XP 64-bit lub 32-bit - czy da się odpalić z EFI? Windows XP 64-bit lub 32-bit - czy da się odpalić z EFI?
    więc wygląda na to iż WinXP bootuje na tym Gateway 610 za sprawą CSM a ten framework to nic innego jak CSM:
    Intel® Platform Innovation Framework for UEFI - Compatibility Support Module Specification
  • #8
    Gelip
    Level 34  
    Temat był założony w sprawie WinXP 64-bit ale ten post dotyczy WinXP x86

    Testowe wersje Visty to praktycznie usprawniany WinXP i okazuje się iż WinXP SP3 da się odpalić z biosu EFI. Jest to możliwe dzięki dwóm plikom z testowej wersji systemu Vista (Longhorn 6.0.5219.0) (beta2). Pliki te trzeba wypakować z obrazu ISO z lokalizacji:
    install.wim\Windows\System32\winload.efi
    install.wim\Boot\EFI\Microsoft\BootMgr\bootmgfw.efi

    Testowane w VMware Workstation 8 - oczywiście w trybie EFI32.
    • tworzymy maszynę z dyskiem np. 3GB
    • tworzymy dwie partycje podstawowe na dysku - 100MB aktywna FAT32 i reszta 2,coś NTFS
    • instalujemy WinXP SP3 w trybie zwykłego biosu na partycji drugiej 2,coś GB
    • po instalacji na partycji 100MB tworzymy folder EFI\Boot i wrzucamy tam plik bootmgfw.efi zmieniając nazwę na bootia32.efi
    • plik winload.efi kopiujemy do Windows\System32 na drugiej partycji
    • na partycji 100MB mamy plik boot.ini i edytujemy go aby wyglądał tak:
      [boot loader]
      timeout=30
      NOBCD
      default=multi(0)disk(0)rdisk(0)partition(2)\WINDOWS
      [operating systems]
      multi(0)disk(0)rdisk(0)partition(2)\WINDOWS="Microsoft Windows XP Professional" /noexecute=optin /fastdetect /usenewloader

    System bootuje, ale pojawia się BSOD 0x00000050 framebuf.dll:
    Windows XP 64-bit lub 32-bit - czy da się odpalić z EFI?
    https://www.youtube.com/watch?v=eCTF0C2bOuA
    Windows XP 64-bit lub 32-bit - czy da się odpalić z EFI?

    Oficjalnie VMware 8 nie obsługuje EFI ale wystarczy wypakować firmware EFI32 (zasób 6020) z pliku vmware-vmx.exe i dodać taki wpis do pliku konfiguracyjnego maszyny .vmx:
    firmware = "efi"
    efi32.filename = "6020.bin"
  • #9
    Gelip
    Level 34  
    Z tego co się dowiedziałem błąd STOP 0x00000050 powoduje VMware. Tutaj jest temat gdzie opisany jest ten sam BSOD, który występuje przy instalacji innej niż 5219 testowej wersji Visty 5231 w VMware:
    Vista 5231 error in VMware player
    Podobno wersja VMware Workstation 7.1.4 w trybie Hardware Compatibility 6 działa poprawnie z testową wersją Vista i tego błędu nie ma, tylko że Vista instalowana była pewnie w trybie BIOS a nie EFI, ale skoro taki sam błąd pojawił się w VMware EFI32 w WinXP 32-bit to możliwe iż w wersji EFI na VMware 7.1.4 błędu 0x00000050 nie będzie:
    https://www.betaarchive.com/forum/viewtopic.php?p=392188#p392188:
    Windows XP 64-bit lub 32-bit - czy da się odpalić z EFI?

    W laptopach jest przeważnie EFI64. Było kilka wyjątków z EFI32. Jak ktoś ma taki to może testować działanie WinXP 32-bit.

    Na laptopach z EFI64 można próbować tylko instalacji WinXP 64-bit ale potrzeba 64-bitowych plików startowych EFI. Testowej wersji 64-bit 5219 nie znalazłem i chyba takiej nie było. Były natomiast takie wersje testowe 64-bit i możliwe iż są tam odpowiednie pliki:
    • Windows Longhorn (6.0.5112.0) (x64 beta1)
    • Windows Longhorn (6.0.5231.2) (x64 beta2)

    64-bitowe pliki EFI z Win7 64-bit się nie nadają ponieważ loader Win7 działa we współpracy z plikiem BCD a nie Boot.ini:
    Windows XP 64-bit lub 32-bit - czy da się odpalić z EFI?

    Dodano po 5 [godziny] 6 [minuty]:

    Niestety ale wszystko do bani:
    • 64-bitowa wersja Vista 5112 nie ma plików EFI
    • 64-bitowa wersja Vista 5231 ma pliki EFI ale 32-bitowe (dziwne)
    • na VMware Workstation 7.1.4 WinXP x86 nadal odpala z błędem 0x00000050

    Jedyny sposób na sprawdzenie czy WinXP SP3 odpali w EFI32 to sprzęt z firmware EFI32 np. Lenovo Ideapad flex 10 z biosem 32-bit (93cn19ww.exe) - Lenovo Flex 10 BIOS Update Issue

    Jak ktoś posiada to może testować ;-)

    Dodano po 8 [godziny] 32 [minuty]:

    Jednak można bootować jakby WinXP w EFI. Tutaj mój post na innym forum:
    Does Windows XP have EFI?
    Udało mi się odpalić Windows Server 2003 R2 SP2 x86 w VMware Workstation 7.1.4 z biosem EFI32. Użyłem tych samych plików EFI co dla WinXP SP3 czyli z Visty beta2. Jak włączymy usługę Themes to system wygląda jak WinXP :D :
    Windows XP 64-bit lub 32-bit - czy da się odpalić z EFI?



    Dowiedziałem się z nieoficjalnego źródła iż system w2k3R2 ma usprawnione sterowniki HAL do działania z EFI czyli zapewne pliki takie jak framebuf.dll, hal.dll, halmacpi.dll, ntoskrnl.exe itp.

    Dodano po 10 [godziny] 7 [minuty]:

    Zrobiłem nowe testy. Jeżeli firmware EFI32 ma zintegrowany sterownik NTFS (jak w tym przypadku) to wystarczy tylko jedna aktywna partycja podstawowa MBR aby uruchomić Windows 2k3 w trybie EFI32:
    Windows XP 64-bit lub 32-bit - czy da się odpalić z EFI?
    Nie trzeba żadnej partycji EFI FAT32 czy dysku GPT jak potrzebuje Win7 i nowsze. W każdej chwili można się przełączyć pomiędzy EFI a BIOS i system wystartuje bez problemu :D Najlepiej przełączać w pliku konfiguracyjnym maszyny .vmx dodając lub usuwając komentarz np. za pomocą znaku #:

    Aby bootować w trybie EFI:
    firmware = "efi"
    efi32.filename = "6020_ntfs.bin"

    Windows XP 64-bit lub 32-bit - czy da się odpalić z EFI?

    Aby bootować w trybie BIOS:
    #firmware = "efi"
    #efi32.filename = "6020_ntfs.bin"

    Windows XP 64-bit lub 32-bit - czy da się odpalić z EFI?

    Aha. I to wszystko na VMware Workstation 8.0.2 build-591240 w trybie Hardware Compatibility 8
  • #10
    Gelip
    Level 34  
    Gelip wrote:
    Nie - nie chcę zaprzeczyć ale dowiedzieć się w którym miejscu jest ograniczenie bo np. Windows 7 x64 można zainstalować zarówno w trybie BIOS jak i EFI a przecież jak już system się uruchomi to korzysta z tych samych plików .dll czy .exe zarówno w trybie BIOS jak i EFI. Zresztą nawet WinXP nie korzysta ze sterowników urządzeń BIOS''u tylko ze swoich. Uważam, iż to tylko kwestia bootloadera bo WinXP 64-bit dla architektury Itanium obsługuje bootowanie z EFI za pomocą pliku IA64ldr.efi:

    No i miałem rację iż to tylko kwestia loadera bo da się odpalić zarówno WinXP x86 SP2 w EFI32 jak i WinXP x64 SP2 w EFI64. Oczywiście za pomocą kilku plików z testowych wersji Vista Beta2 (Longhorn). Testy robione były w VMware Workstation 8. Wszystko opisane ze szczegółami w temacie Does Windows XP have EFI? a dokładnie od postu https://www.betaarchive.com/forum/viewtopic.php?p=433345#p433345

    Uruchamianie działa automatycznie ale można też uruchomić system z poziomu EFI Shell:
    Windows XP 64-bit lub 32-bit - czy da się odpalić z EFI? Windows XP 64-bit lub 32-bit - czy da się odpalić z EFI?

    Test był również przeprowadzany z jednym laptopem z EFI64 + WinXP x64 ale WinXP ma problem z wyświetlaniem obrazu. Po wyłączeniu wszystkich sterowników graficznych tj. odinstalowaniu sterowników karty graficznej i wyłączeniu w rejestrze usług vga (vgapnp.sys) i VgaSave (vga.sys) system odpala i działa wszystko oprócz ekranu - można połączyć się za pomocą RDP jeśli wcześniej włączymy zdalny Pulpit. Szczegóły na betaarchive.com
  • #12
    Gelip
    Level 34  
    Ten mój temat ma ponad 2000 wyświetleń więc zainteresowanie jest ale jakoś nikt nie pyta, nie raportuje co i jak ale są entuzjaści, którzy aby odpalić WinXP 32 lub 64-bit (na razie w legacy bios CSM) potrafią zhakować tabele ACPI (DSDT, FACP), sterownik acpi.sys, sterowniki AHCI (SATA), USB 3.0 i odpalić WinXP na procesorze AMD Ryzen :-) - temat ma 150 stron a znajdziemy tam sterowniki wspomnianych urządzeń i screenshoty potwierdzające działanie:
    https://www.win-raid.com/t4035f45-Windows-XP-SP-bit-and-modern-PC-parts-148.html#msg87122
    Podobno te sterowniki HD Graphics 4xxx, 5xxx działają na XP: Modern hardware drivers for 32bit XP
    Windows XP 64-bit lub 32-bit - czy da się odpalić z EFI?

    Dodano po 31 [minuty]:

    P.S. Jak coś to tutaj są pliki EFI do odpalenia WinXP 32 lub 64-bit: xp_efi.zip
  • #13
    Gelip
    Level 34  
    Mając ostatnio sporo wolnego czasu udało mi się skompletować sprzęt na którym 64-bitowy WinXP uruchamia się i działa pod UEFI+CSM z kompletem sterowników. Płyta główna jest z epoki Sandy Bridge, do której producent udostępniał sterowniki do tego systemu - ASUS P8H61-M_LE R2 z CPU Intel Core i3-2120 3.30GHz. Do tego karta graficzna AMD Radeon HD6450 z wideo ROM'em Legacy.

    Co ciekawe - do uruchomienia systemu pod UEFI wystarczą tylko cztery pliki z 64-bitowej testowej wersji Windows Server Longhorn 2008 16497. Te pliki to loader bootmgfw.efi (zmieniona nazwa na bootx64.efi) i winload.efi, plik czcionki wgl4_boot.ttf oraz plik BCD z kilkoma opcjami. Ponieważ bios UEFI obsługuje przeważnie tylko system plików FAT potrzebujemy więc partycji FAT/FAT32. Może to być pendrive ale wygodniej jak mamy oddzielną partycję na dysku twardym - ja zrobiłem 100MB bez litery na początku dysku podobnie jak robią instalatory nowszych Windows, a system jest na drugiej partycji NTFS pod literą C: Styl partycji jest MBR.

    Testowałem różne inne konfiguracje dysku i może być albo MBR albo GPT:
    • MBR, jedna partycja FAT32 np. 5GB
    • MBR, jedna partycja NTFS + sterownik NTFS ładowany np. z poziomu EFI Shell
    • GPT, partycja 100 FAT + NTFS na system

    Całkiem możliwe iż wymieniając kartę graficzną na nowszą - taką, która ma podwójny wideo ROM - legacy i GOP np. AMD Radeon HD7xxx dało by się odpalić system w czystym UEFI wyłączając w biosie tryb CSM.
  • #14
    Gelip
    Level 34  
    Gelip wrote:
    Całkiem możliwe iż wymieniając kartę graficzną na nowszą - taką, która ma podwójny wideo ROM - legacy i GOP np. AMD Radeon HD7xxx dało by się odpalić system w czystym UEFI wyłączając w biosie tryb CSM.

    Sprawdziłem to z kartą, która ma GOP - HD7450. System WinXP SP2 x64 zainstalowany w legacy MBR konwertowałem nawet na GPT - loader windowsa startuje ale komputer się restartuje i automatycznie włącza CSM:
    Windows XP 64-bit lub 32-bit - czy da się odpalić z EFI?
    Także tu nie chodzi tylko o vbios GOP i partycję GPT.

    Oczywiście w UEFI + CSM uruchamia się bez problemu za pomocą winload.efi z partycji MBR lub GPT:
    Windows XP 64-bit lub 32-bit - czy da się odpalić z EFI?

    Przetestowałem też WinXP SP2 x86 na Thin Client Igel 4210 VIA C7 AWARD 6.00PG BIOS z emulatorem UEFI32 DUET. System startuje w UEFI, ale to raczej nie jest pure UEFI bo przecież karta graficzna nie ma GOP:


  • #15
    Gelip
    Level 34  
    Jakby kogoś interesowało to WinXP SP2 64-bit można odpalić w czystym UEFI class 3 bez CSM za pomocą loadera UefiSeven: https://www.betaarchive.com/forum/viewtopic.php?p=456492#p456492
    Loader robi taką sztuczkę iż w czasie uruchamiania wstawia w pamięci RAM pod adresem C0000 emulator wywołania przerwania INT10 dzięki czemu można odpalić Win7 64-bit w UEFI bez CSM i jak się okazało również WinXP 64-bit :D
  • #17
    omin172
    Level 15  
    A nie można po prostu skorzystać z GRUB2?
  • #18
    Gelip
    Level 34  
    omin172 wrote:
    A nie można po prostu skorzystać z GRUB2?

    Nie można bo WinXP to nie Linux w którym jest dodana obsługa UEFI w jądrze.