Dubbelstart med Windows

Detta är en artikel som beskriver olika metoder för Arch/Windows samexistens.

Viktig information

Windows UEFI vs BIOS-begränsningar

Microsoft inför begränsningar för vilket uppstartsläge för firmware och vilken partitioneringsstil som kan stödjas baserat på den version av Windows som används:

Den här artikeln eller det här avsnittet behöver utökas.

Anledning: UEFI/MBR stöds inte av Windows installationsprogram, men Windows kan distribueras manuellt och startas upp i UEFI/MBR (åtminstone Windows 10 kan göra det). (Diskutera i Talk:Dual boot with Windows#)

  • Windows XP både x86 32-bitars och x86_64 (även kallad x64) (RTM och alla Service Packs) versioner har inte stöd för uppstart i UEFI-läge (IA32 eller x86_64) från alla diskar (MBR eller GPT) ELLER i BIOS-läge från GPT-diskar. De stöder endast BIOS-start och endast från MBR-diskar.
  • Windows Vista eller 7 x86 32-bitars (RTM och alla Service Packs)-versioner stöder uppstart i BIOS-läge endast från MBR-diskar, inte från GPT-diskar. De har inte stöd för x86_64 UEFI eller IA32 (x86 32-bitars) UEFI-start. De stöder endast BIOS-start och endast från MBR-diskar.
  • Windows Vista RTM x86_64 (endast RTM) stöder uppstart i BIOS-läge endast från MBR-diskar, inte från GPT-diskar. Den stöder inte x86_64 UEFI eller IA32 (x86 32-bitars) UEFI-start. Den stöder endast BIOS-start och endast från MBR-disk.
  • Windows Vista (SP1 och senare, inte RTM) och Windows 7 x86_64-versioner stöder uppstart i x86_64 UEFI-läge endast från GPT-disk, ELLER i BIOS-läge endast från MBR-disk. De har inte stöd för IA32 (x86 32-bitars) UEFI-start från GPT/MBR-disk, x86_64 UEFI-start från MBR-disk eller BIOS-start från GPT-disk.
  • Windows 8/8.1 x86 32-bitars har stöd för uppstart i IA32 UEFI-läge endast från GPT-disk, ELLER i BIOS-läge endast från MBR-disk. De stöder inte x86_64 UEFI-start från GPT/MBR-disk, x86_64 UEFI-start från MBR-disk eller BIOS-start från GPT-disk. På marknaden är de enda kända systemen som levereras med IA32 (U)EFI några gamla Intel Macs (modeller före 2010?) och Intel Atom System-on-Chip (Clover trail och Bay Trail) Windows Tablets. där den startar ENDAST i IA32 UEFI-läge och ENDAST från GPT-disk.
  • Windows 8/8.1 x86_64-versioner har stöd för att starta upp i x86_64 UEFI-läge endast från GPT-disk, ELLER i BIOS-läge endast från MBR-disk. De stöder inte IA32 UEFI-start, x86_64 UEFI-start från MBR-disk eller BIOS-start från GPT-disk.

För förinstallerade system:

  • Alla system som är förinstallerade med Windows XP, Vista eller 7 32-bitars, oavsett Service Pack-nivå, bitness, utgåva (SKU) eller förekomst av UEFI-stöd i den inbyggda programvaran, startar som standard i BIOS/MBR-läge.
  • De flesta system som är förinstallerade med Windows 7 x86_64, oavsett Service Pack-nivå, bitness eller utgåva (SKU), startar som standard i BIOS/MBR-läge. Mycket få nyare system som är förinstallerade med Windows 7 är kända för att starta upp i x86_64 UEFI/GPT-läge som standard.
  • Alla system som är förinstallerade med Windows 8/8.1 startar upp i UEFI/GPT-läge. Den fasta programvarans bitness motsvarar bitness i Windows, dvs. x86_64 Windows 8/8.1 startar i x86_64 UEFI-läge och 32-bitars Windows 8/8.1 startar i IA32 UEFI-läge.

Det bästa sättet att upptäcka startläget för Windows är att göra följande:

  • Starta upp Windows
  • Tryck på Win+R för att starta dialogrutan Kör
  • I dialogrutan Kör skriver du msinfo32.exe och trycker på Enter
  • I fönstren för Systeminformation väljer du Systemöversikt till vänster och kontrollerar värdet för objektet BIOS-läge till höger
  • Om värdet är UEFI startar Windows upp i UEFI/GPT-läge. Om värdet är Legacy startar Windows i BIOS/MBR-läge.

I allmänhet tvingar Windows fram en typ av partitionering beroende på vilket firmware-läge som används, dvs. om Windows startas upp i UEFI-läge kan det endast installeras på en GPT-disk. Om Windows startas upp i Legacy BIOS-läge kan det endast installeras på en MBR-disk. Detta är en begränsning som påtvingas av Windows installationsprogram, och från och med april 2014 finns det inget officiellt (Microsoft) stöd för att installera Windows i UEFI/MBR- eller BIOS/GPT-konfiguration. Därför stöder Windows endast antingen UEFI/GPT-start eller BIOS/MBR-konfiguration.

Tips: Windows 10 version 1703 och nyare stöder konvertering från BIOS/MBR till UEFI/GPT med hjälp av MBR2GPT.EXE.

En sådan begränsning upprätthålls inte av Linuxkärnan, men kan bero på vilken starthanterare som används och/eller hur starthanteraren är konfigurerad. Begränsningen för Windows bör beaktas om användaren vill starta upp Windows och Linux från samma disk, eftersom installationsproceduren för starthanteraren beror på typen av firmware och konfigurationen av diskpartitionering. Om Windows och Linux startar upp två gånger från samma disk är det lämpligt att följa den metod som används av Windows, dvs. antingen välja UEFI/GPT-start eller BIOS/MBR-start. Se https://support.microsoft.com/kb/2581408 för mer information.

Installationsmediebegränsningar

Intel Atom System-on-Chip Tablets (Clover trail och Bay Trail) tillhandahåller endast IA32 UEFI firmware utan stöd för Legacy BIOS (CSM) (till skillnad från de flesta x86_64 UEFI-system), på grund av Microsofts riktlinjer för Connected Standby för OEM:er. På grund av avsaknaden av Legacy BIOS-stöd i dessa system och avsaknaden av 32-bit UEFI-start i Arch Official Install ISO (FS#53182) kan det officiella installationsmediet inte starta på dessa system. Se Unified Extensible Firmware Interface#UEFI firmware bitness för mer information och tillgängliga lösningar.

Bootloader UEFI vs BIOS begränsningar

De flesta av de Linux bootloaders som installerats för en firmware typ kan inte starta eller kedjelägga bootloaders av den andra firmware typen. Det vill säga, om Arch installeras i UEFI/GPT- eller UEFI/MBR-läge på en disk och Windows installeras i BIOS/MBR-läge på en annan disk, kan den UEFI-starthanterare som används av Arch inte kedjelasta det BIOS-installerade Windows på den andra disken. Om Arch är installerad i BIOS/MBR- eller BIOS/GPT-läge på en disk och Windows är installerat i UEFI/GPT-läge på en annan disk, kan BIOS-starthanteraren som används av Arch inte kedjelägga UEFI-installerade Windows på den andra disken.

De enda undantagen är GRUB i Apple Macs där GRUB i UEFI-läge kan starta upp BIOS-installerat operativsystem via kommandot appleloader (fungerar inte i icke-Apple-system), och rEFInd som tekniskt sett stöder uppstart av äldre BIOS-operativsystem från UEFI-system, men som enligt författaren Rod Smith inte alltid fungerar i UEFI-system som inte är från Apple.

Hursomhelst, om Arch installeras i BIOS/GPT på en disk och Windows installeras i BIOS/MBR-läge på en annan disk, så KAN BIOS-starthanteraren som används av Arch starta upp Windows på den andra disken, om starthanteraren i sig själv har möjlighet till kedjeladdning från en annan disk.

Observera: För att kunna starta upp dubbelt med Windows på samma disk bör Arch följa samma uppstartsläge för firmware och partitioneringskombination som används av Windows-installationen.

Windows Setup skapar en EFI-systempartition på 100 MiB (med undantag för Advanced Format 4K native-diskar där den skapar en ESP på 260 MiB), vilket innebär att användningen av flera kärnor är begränsad. Följande lösningar finns:

  • Mount ESP till /efi och använd en starthanterare som har filsystemdrivrutiner och kan starta kärnor som finns på andra partitioner.
  • Expandera EFI-systempartitionen, vanligen antingen genom att minska storleken på Recovery-partitionen eller genom att flytta Windows-partitionen (UUID:erna kommer att ändras).
  • Backupera och ta bort obehövliga teckensnitt i esp/EFI/Microsoft/Boot/Fonts/ .
  • Backupera och ta bort obehövliga språkkataloger i esp/EFI/Microsoft/Boot/ (t.ex. för att bara behålla en-US).

UEFI Secure Boot

Alla förinstallerade Windows 8/8.1-system startar som standard i UEFI/GPT-läge och har UEFI Secure Boot aktiverat som standard. Detta är ett krav från Microsoft för alla förinstallerade OEM-system.

Arch Linux installationsmedia har inte stöd för Secure Boot. Se Secure Boot#Bootning av ett installationsmedium.

Det är lämpligt att inaktivera UEFI Secure Boot manuellt i inställningen av den fasta programvaran innan du försöker starta Arch Linux. Windows 8/8.1 SKA fortsätta att starta upp utan problem även om Secure boot är inaktiverat. Det enda problemet när det gäller att inaktivera stödet för UEFI Secure Boot är att det krävs fysisk tillgång till systemet för att inaktivera Secure Boot-alternativet i inställningen av den fasta programvaran, eftersom Microsoft uttryckligen har förbjudit förekomsten av någon metod för att fjärrstyrt eller programmatiskt (från operativsystemet) inaktivera Secure Boot i alla Windows 8/8.1 förinstallerade system

Snabb start och viloläge

Det finns två operativsystem som kan viloläggas, du kan vilolägga Windows och starta upp Linux (eller ett annat operativsystem), eller du kan vilolägga Linux och starta upp Windows, eller vilolägga båda operativsystemen.

Varning: Om Windows går i viloläge och du dubbelstartar till ett annat operativsystem och gör ändringar i filer i ett filsystem (t.ex. NTFS) som kan läsas och skrivas av Windows och Linux och som har monterats av Windows, kan det leda till dataförluster. På samma sätt kan dataförlust inträffa om Linux går i viloläge och du startar upp två gånger till ett annat operativsystem osv. Windows kan gå i viloläge även när du trycker på avstängning, se avsnittet #Windows-inställningar.

Av samma anledning kan EFI-systempartitionen skadas om du delar en EFI-systempartition mellan Windows och Linux, om du går i viloläge (eller stänger av med Fast Startup aktiverat) och sedan startar Linux, eller om du går i viloläge i Linux och sedan startar Windows.

ntfs-3g lade till ett säkerhetsskydd för att förhindra läs- och skrivmontering av NTFS-filsystem i viloläge, men NTFS-drivrutinen i Linuxkärnan har inget sådant skydd.

Windows kan som standard inte läsa filsystem som ext4, som vanligtvis används för Linux. Dessa filsystem behöver inte beaktas om du inte installerar en Windows-drivrutin för dem.

Windows-inställningar

Snabb start är en funktion i Windows 8 och senare som försätter datorn i viloläge i stället för att faktiskt stänga av den för att påskynda uppstartstiderna.

Det finns flera alternativ när det gäller Windows-inställningarna för Snabb start och viloläge som behandlas i nästa avsnitt.

  • avaktivera snabbstart och inaktivera viloläge
  • avaktivera snabbstart och aktivera viloläge
  • aktivera snabbstart och aktivera viloläge

Förfarandet för att inaktivera snabbstart beskrivs här för Windows 8 och här för Windows 10. Om du inaktiverar en inställning ska du i alla fall se till att inaktivera inställningen och sedan stänga av Windows innan du installerar Linux; observera att det inte räcker med att starta om.

Inaktivera snabbstart och inaktivera viloläge

Detta är det säkraste alternativet och rekommenderas om du är osäker på saken eftersom det kräver minst medvetenhet från användaren när du startar om från ett operativsystem till det andra. Du kan dela samma EFI-systempartition mellan Windows och Linux.

Disaktivera snabbstart och aktivera viloläge

Detta alternativ kräver att användaren är medveten när han/hon startar om från det ena operativsystemet till det andra.Om du vill starta Linux medan Windows är i viloläge, vilket är ett vanligt användningsfall, måste du

  • använda en separat EFI-systempartition (ESP) för Windows och Linux, och se till att Windows inte monterar den ESP som används för Linux. Eftersom det bara kan finnas en ESP per enhet måste den ESP som används för Linux ligga på en annan enhet än den ESP som används för Windows. I det här fallet kan Windows och Linux fortfarande installeras på samma enhet i olika partitioner, om du placerar den ESP som används av linux på en annan enhet än Linux rotpartition.
  • Du kan inte läsa-skriva-montera något filsystem i Linux, som monteras av Windows medan Windows är i viloläge. Du bör vara ytterst försiktig med detta och även ta hänsyn till Automount-beteendet.
  • Om du stänger av Windows helt och hållet, i stället för att gå i viloläge, kan du läsa-skriva montera filsystemet.
Obs: Du kan undvika det här problemet för en enhet genom att montera en enhet som en extern enhet i Windows och mata ut enheten i Windows innan du går i viloläge.
Aktivera snabbstart och aktivera viloläge

Samma överväganden gäller som i fallet ”Inaktivera snabbstart och aktivera viloläge”, men eftersom Windows inte kan stängas av helt, bara i viloläge, kan du aldrig läsa-skriva montera något filsystem som monterats av Windows medan Windows är i viloläge.

Observera: Windows-uppdateringar kan återaktivera snabbstart, vilket rapporteras i .

Windows filnamnsbegränsningar

Windows är begränsat till att filvägar är kortare än 260 tecken.

Windows sätter också vissa tecken utanför gränserna i filnamn av skäl som sträcker sig ända tillbaka till DOS:

  • < (mindre än)
  • > (större än)
  • : (kolon)
  • " (dubbelt citationstecken)
  • / (snedstreck)
  • \ (backslash)
  • | (vertikalt streck eller pipe)
  • ? (frågetecken)
  • * (asterisk)

Detta är begränsningar i Windows och inte i NTFS: Alla andra operativsystem som använder NTFS-partitionen fungerar bra. Windows kommer inte att upptäcka dessa filer och om du kör chkdsk kommer de sannolikt att raderas. Detta kan leda till potentiell dataförlust.

NTFS-3G tillämpar Windows-begränsningar på nya filnamn genom alternativet windows_names (se fstab).

Installation

Det rekommenderade sättet att installera ett Linux/Windows-system med dubbla uppstarter är att först installera Windows, och endast använda en del av disken för sina partitioner. När du är klar med Windows-installationen startar du upp i Linux-installationsmiljön där du kan skapa och ändra storlek på partitioner för Linux medan du lämnar de befintliga Windows-partitionerna orörda. Windows-installationen skapar EFI-systempartitionen som kan användas av din Linux-startladdare.

Windows före Linux

BIOS-system

Användning av en Linux-startladdare

Du kan använda vilken BIOS-startladdare som helst som har stöd för flera startar.

Användning av Windows-startladdare

Med den här inställningen laddar Windows-startladdaren GRUB som sedan startar Arch.

Windows Vista/7/8/8.1 boot loader

Den här artikeln eller det här avsnittet behöver språk-, wiki-syntax- eller stilförbättringar. Se Hjälp:Stil för referens.

Orsak: Innehåller personliga kommentarer. (Diskutera i Talk:Dual boot with Windows#)

Den faktiska riktigheten i den här artikeln eller avsnittet är omtvistad.

Anledning: (Diskutera i Talk:Dual boot with Windows#)

För att Windows boot loader ska kunna se Linux-partitionen måste en av de skapade Linux-partitionerna vara FAT32 (i det här fallet /dev/sda3). Resten av installationen liknar en typisk installation. I vissa dokument anges att den partition som laddas av Windows boot loader måste vara en primär partition, men jag har använt detta utan problem på en utökad partition.

  • När du installerar starthanteraren GRUB ska du installera den på din /boot-partition istället för MBR.
    Obs: Min /boot-partition är till exempel /dev/sda5. Så jag installerade GRUB på /dev/sda5 i stället för /dev/sda. För hjälp med att göra detta, se GRUB/Tips and tricks#Installera till partition eller partitionslös disk.
  • Under Linux gör du en kopia av uppstartsinformationen genom att skriva följande i kommandoskalet:
  • Starta upp till Windows och öppna och du bör kunna se filen linux.bin på C:\. Kör nu cmd med administratörsrättigheter (navigera till Start > Alla program > Tillbehör, högerklicka på Kommandotolken och välj Kör som administratör):
bcdedit /create /d "Linux" /application BOOTSECTOR
  • BCDEdit kommer att returnera ett UUID för den här posten som jag kommer att referera till som {ID} i resterande steg. Du måste ersätta {ID} med den faktiska identifieraren som returneras. Ett exempel på {ID} är {d7294d4e-9837-11de-99ac-f3f3a79e3e93}.
bcdedit /set {ID} device partition=c:bcdedit /set {ID} path \linux.binbcdedit /displayorder {ID} /addlastbcdedit /timeout 30

Reboot and enjoy. I mitt fall använder jag starthanteraren för Windows så att jag kan mappa min Dell Precision M4500:s andra strömbrytare så att den startar Linux i stället för Windows.

UEFI-system

Om du redan har Windows installerat har det redan skapats några partitioner på en GPT-formaterad disk:

  • en partition för Windows Recovery Environment, i allmänhet med en storlek på 499 MB, som innehåller de filer som krävs för att starta Windows (dvs. motsvarigheten till Linux /boot),
  • en EFI-systempartition med ett FAT32-filsystem,
  • en Microsoft Reserved Partition, i allmänhet med en storlek på 128 MiB,
  • en Microsoft Basic Data Partition med ett NTFS-filsystem, som motsvarar C:,
  • potentiellt systemåterställnings- och säkerhetskopieringsstationer och/eller sekundära datapartitioner (som ofta motsvarar D: och högre).

Kontrollera med hjälp av verktyget Diskhantering i Windows hur partitionerna är märkta och vilken typ som rapporteras. Detta hjälper dig att förstå vilka partitioner som är viktiga för Windows och vilka andra som du kan använda på nytt. Verktyget Diskhantering i Windows kan också användas för att krympa Windows-partitioner (NTFS) för att frigöra diskutrymme för ytterligare partitioner för Linux.

Varning: De fyra första partitionerna i listan ovan är viktiga, ta inte bort dem.

Du kan sedan fortsätta med partitioneringen, beroende på dina behov.

Håll i minnet att en extra EFI-systempartition inte bör skapas, eftersom den kan hindra Windows från att starta upp. Montera helt enkelt den befintliga partitionen.

Obs: Den visas endast när Linux installeras på den andra hårddisken och en ny EFI-systempartition skapas på den andra hårddisken.

Starthanteraren måste ha stöd för kedjeladdning av andra EFI-tillämpningar för att kunna göra dubbelstart av Windows/Linux.

Tips: rEFInd och systemd-boot kommer att autodetektera Windows Boot Manager (\EFI\Microsoft\Boot\bootmgfw.efi) och visa den i sin startmeny automatiskt. För GRUB följ antingen GRUB#Windows installerat i UEFI/GPT-läge för att lägga till startmenyn manuellt eller GRUB#Detecting other operating systems för en genererad konfigurationsfil.

Datorer som levereras med nyare versioner av Windows har ofta Secure Boot aktiverat. Du måste vidta extra åtgärder för att antingen inaktivera Secure Boot eller göra ditt installationsmedium kompatibelt med Secure Boot (se ovan och på den länkade sidan).

Linux före Windows

Även om det rekommenderade sättet att konfigurera ett system med dubbla uppstartssystem för Linux/Windows är att först installera Windows, kan det göras tvärtom. I motsats till att installera Windows före Linux måste du i förväg avsätta en partition för Windows, säg 40 GB eller större, i förväg. Eller ha lite opartionerat diskutrymme, eller skapa och ändra storlek på partitioner för Windows från Linux-installationen, innan du startar Windows-installationen.

UEFI firmware

Windows kommer att använda den redan existerande EFI-systempartitionen. I motsats till vad som tidigare sagts är det oklart om en enda partition för Windows, utan Windows Recovery Environment och utan Microsoft Reserved Partition, inte duger.

Följer en översikt, förutsatt att Secure Boot är inaktiverad i firmware.

  1. Boot in windows installation. Se till att den endast använder den avsedda partitionen, men låt den i övrigt göra sitt arbete som om det inte finns någon Linuxinstallation.
  2. Följ avsnittet #Fast Startup and hibernation (Snabb uppstart och viloläge).
  3. Fixa förmågan att läsa in Linux vid start, kanske genom att följa #Cannot boot Linux after installing Windows (Kan inte starta upp Linux efter att ha installerat Windows). Det har redan nämnts i #UEFI-system att vissa Linux-starthanterare autodetekterar Windows Boot Manager. Även om nyare Windows-installationer har ett avancerat omstartalternativ, från vilket du kan starta upp till Linux, rekommenderas det att ha andra sätt att starta upp till Linux, t.ex. ett arkinstallationsmedium eller en live-cd.

Felsökning

Kunde inte skapa en ny partition eller hitta en befintlig partition

Se #Windows UEFI vs. BIOS begränsningar.

Kan inte starta upp Linux efter att ha installerat Windows

Se Unified Extensible Firmware Interface#Windows ändrar uppstartsordning.

Restorera en Windows-uppstartspost

Enligt konvention (och för att underlätta installationen) installeras Windows vanligen på den första partitionen och installerar sin partitionstabell och en hänvisning till sin uppstartsladdare till den första sektorn i den partitionen. Om du av misstag installerar en starthanterare som GRUB på Windows-partitionen eller skadar startregistret på något annat sätt måste du använda ett verktyg för att reparera det. Microsoft inkluderar ett verktyg för reparation av startsektorn FIXBOOT och ett verktyg för reparation av MBR som heter FIXMBR på sina återställningsskivor, eller ibland på sina installationsskivor. Med den här metoden kan du åtgärda referensen på startsektorn för den första partitionen till bootloaderfilen respektive åtgärda referensen på MBR till den första partitionen. Efter att ha gjort detta måste du installera om GRUB till MBR som det ursprungligen var tänkt (det vill säga att GRUB-starthanteraren kan tilldelas kedjeladdning av Windows-starthanteraren).

Om du vill återgå till att använda Windows kan du använda kommandot FIXBOOT som kedjar från MBR:n till startsektorn i den första partitionen för att återställa den normala, automatiska laddningen av Windows-operativsystemet.

Det finns ett Linux-verktyg som heter ms-sys (paketet ms-sysAUR i AUR) som kan installera MBR:er. Detta verktyg kan dock för närvarande bara skriva nya MBR:er (alla operativsystem och filsystem stöds) och startsektorer (alias boot record; motsvarar att använda FIXBOOT) för FAT-filsystem. De flesta LiveCDs har inte det här verktyget som standard, så det måste installeras först, eller så kan du titta på en räddnings-CD som har det, till exempel Parted Magic.

Först skriver du partitionsinformationen (tabellen) igen med:

# ms-sys --partition /dev/sda1

Nästan skriver du en Windows 2000/XP/2003 MBR:

# ms-sys --mbr /dev/sda # Read options for different versions

Nästan skriver du den nya startsektorn (boot record):

# ms-sys -(1-6) # Read options to discover the correct FAT record type

ms-sys kan även skriva Windows 98, ME, Vista och 7 MBRs också, se ms-sys -h.

Tidsstandard

  • Rekommenderat: Ställ in både Arch Linux och Windows så att de använder UTC, enligt System time#UTC i Windows. Vissa versioner av Windows återställer hårdvaruklockan till localtime om de är inställda på att synkronisera tiden online. Detta problem verkar vara åtgärdat i Windows 10.
  • Inte rekommenderat: Ställ in Arch Linux på lokal tid och inaktivera alla tidssynkroniseringsdemoner. Detta låter Windows ta hand om korrigeringar av hårdvaruklockan och du måste komma ihåg att starta upp Windows minst två gånger om året (på våren och hösten) när DST börjar gälla. Så fråga inte på forumet varför klockan är en timme bakåt eller framåt om du brukar gå flera dagar eller veckor utan att starta upp Windows.

Se även

  • Start av Windows från en genväg på skrivbordet
  • En gångs uppstart av Windows-partition från genväg på skrivbordet
  • Windows 7/8/8/8.1/10 ISO till Flash Drive brännverktyg för Linux (MBR/GPT, BIOS/UEFI, FAT32/NTFS)

Lämna ett svar

Din e-postadress kommer inte publiceras.