Varför är det mer komplicerat att skapa en startbar USB-enhet än att skapa startbara CD-skivor?

varför-skapar-en-startbar-usb-enhet-mer-komplicerad-än-skapa-startbara-cd-skivor foto 1

Att skapa startbara CD- och DVD-skivor brukar vara en enkel och okomplicerad process, men varför är det mer komplicerat när man skapar startbara flashenheter? Är det verkligen så stor skillnad mellan de två? Dagens SuperUser Q&A-inlägg har svaret på en nyfiken läsares fråga.

Dagens Fråge & Svar-session kommer till oss med tillstånd av SuperUser – en underavdelning av Stack Exchange, en gemenskapsdriven grupp av Frågor och Svar-webbplatser.



Frågan

SuperUser-läsaren William vill veta varför det är mer komplext att skapa en startbar USB-enhet än att skapa startbara CD-skivor:

Att skapa en startbar CD är väldigt enkelt enligt min mening, allt du behöver göra är att bränna en ISO-fil till en skiva och den är startbar. Nu när det kommer till USB-enheter har du massor av alternativ. Kan någon förklara skillnaden mellan de två och kanske ge en kort översikt över de olika alternativen?

varför-skapar-en-startbar-usb-enhet-mer-komplicerad-än-skapa-startbara-cd-skivor foto 2

Varför är det mer komplicerat att skapa en startbar USB-enhet än att skapa startbara CD-skivor?

Svaret

SuperUser-bidragsgivare Akeo har svaret för oss:

Rufus utvecklare här. Först och främst listas många av alternativen du nämner bara när du kör Rufus i avancerat läge (när avsnittet Avancerade alternativ visas), eftersom de är avsedda för personer som redan vet vad de är till för.

Till att börja med måste du förstå att ISO-formatet aldrig designades för USB-start. En ISO-fil är en 1:1-kopia av en optisk skiva, och optiska skivmedier skiljer sig mycket från USB-media, både när det gäller hur deras startladdare ska vara uppbyggda, vilket filsystem de använder, hur de är partitionerade (de är inte), och så vidare.

Så om du har en ISO-fil kan du helt enkelt inte göra med USB-media vad du kan göra med en optisk skiva, som läses från varje enskild byte av ISO-filen och kopieras som den är, i ordning, till skivan (vilken CD /DVD-brännarapplikationer gör när man arbetar med ISO-filer).

Därmed inte sagt att den här typen av 1:1-kopiering inte kan existera på USB-media, bara att 1:1-kopior på USB-media kommer att vara helt annorlunda än 1:1-kopior på optiska skivor och är därför inte utbytbara (utanför ISOHybrid) bilder som är skapade för att fungera som 1:1-kopior på både USB och optiska media). För ordens skull, i Rufus-terminologi, kallas en 1:1-kopia på USB-media en DD-bild (du kan se det alternativet i listan) och vissa distributioner, som FreeBSD eller Raspbian, tillhandahåller faktiskt DD-bilder för USB-installation, tillsammans med ISO filer för CD/DVD-bränning.

Sålunda har vi konstaterat att ISO-filer faktiskt är dåligt lämpade för att skapa startbara USB-media eftersom de motsvarar att tillhandahålla en rund stift för att passa ett mindre fyrkantigt hål, och därför måste den runda stiften ändras för att passa den.

Nu kanske du undrar, om ISO-filer är så dåligt lämpade för att skapa startbara USB-media, varför tillhandahåller de flesta operativsystemdistributörer där ute ISO-filer istället för DD Images. Tja, utanför historiska skäl är ett av problemen med DD Images att eftersom de är ett partitionerat filsystem, om du skapar en 1:1-kopia på USB-media som är större än den som används av personen som skapade bilden, då kommer du att få den uppenbara kapaciteten på ditt USB-medium reducerad till storleken på den som användes för att skapa den ursprungliga DD-bilden.

Dessutom, medan optiska skivor och därför ISO-filer bara kan använda ett av två filsystem (ISO9660 eller UDF), som båda har haft mycket bra stöd i alla större operativsystem under mycket lång tid (och låter dig ta en titt vid bildinnehållet före eller efter att du använder det), kan DD Images bokstavligen använda vilket som helst av de tusentals olika filsystem som finns. Det betyder att även efter att du har skapat ditt startbara USB-medium, kanske du inte kan se något innehåll på det förrän du startar upp det. Detta kommer till exempel att vara fallet om du använder FreeBSD USB-bilder på Windows. När det startbara USB-mediet har skapats kommer Windows inte att kunna komma åt något innehåll på det förrän du formaterar om det.

Det är därför leverantörer tenderar att vilja hålla fast vid ISO-filer där det är möjligt, eftersom det (vanligtvis) ger en bättre användarupplevelse i alla operativsystem. Men det betyder också att viss omvandling (oftast) måste ske så att vår runda ISO-pinne kan passa fint i det mindre USB-mediets fyrkantiga hålet. Hur hänger det ihop med listan med alternativ? Vi kommer till det.

En av de första sakerna som vanligtvis måste gå är ISO9660- eller UDF-filsystemet som ISO-filer använder. För det mesta innebär detta att extrahera och kopiera alla filer från ISO-filen till ett FAT32- eller NTFS-filsystem, vilket är vad startbara USB-flashenheter brukar använda. Men det betyder naturligtvis att den som skapade ISO-systemet måste ha gjort vissa åtgärder för att stödja FAT32 eller NTFS som ett filsystem för live-användning eller installation (vilket inte alla människor, särskilt de som litar lite för mycket på ISOHybrid, tenderar att att göra).

Sedan finns det själva starthanteraren, den första kodbiten som körs när en dator startar från USB-media. Tyvärr är hårddisk/USB- och ISO-startladdare väldigt olika bestar, och BIOS- eller UEFI-firmwaren behandlar också USB och optiska media väldigt olika under uppstartsprocessen. Så du kan vanligtvis inte ta starthanteraren från en ISO-fil (som vanligtvis skulle vara en El Torito-starthanterare), kopiera den till USB-media och förvänta dig att den startar.

Nu kommer den del som är relevant för vår lista med alternativ. Eftersom Rufus måste tillhandahålla en relevant starthanterare, kan den helt enkelt inte hämta den från ISO-filen. Om vi ​​har att göra med en Linux-baserad ISO-fil, är chansen stor att den kommer att använda GRUB 2.0 eller Syslinux, så Rufus inkluderar möjligheten att installera en USB-baserad version av GRUB eller Syslinux (eftersom ISO-filen vanligtvis bara innehåller den ISO-specifika versionen av dem).

Detta görs vanligtvis automatiskt när du väljer och öppnar en ISO-fil eftersom Rufus är smart nog att upptäcka vilken typ av konvertering den behöver tillämpa. Men om du vill leka, ger Rufus dig valet att även installera några tomma starthanterare som gör att du kan starta upp till en GRUB- eller Syslinux-prompt. Därifrån, om du är bekant med dessa typer av starthanterare, kan du skapa/testa dina egna konfigurationsfiler och prova din alldeles egna Syslinux- eller GRUB-baserade anpassade startprocess (eftersom i detta skede behöver du bara kopiera/redigera filer på USB-mediet för att göra det).

Så vi kan nu gå igenom alternativen du hittar i listan:

  • MS-DOS: Detta skapar en tom version av MS-DOS (Windows Me-utgåvan), vilket innebär att du kommer att starta upp till en MS-DOS-prompt och det är det. Om du vill köra ett DOS-program måste du kopiera det till ditt USB-medium. Observera att det här alternativet endast är tillgängligt på Windows 8.1 eller tidigare, men inte Windows 10 eftersom Microsoft tog bort DOS-installationsfilerna från Windows (och endast Microsoft kan omdistribuera dessa filer).
  • FreeDOS: Detta skapar en tom version av FreeDOS. FreeDOS är en gratis mjukvaruversion av MS-DOS, som är fullt kompatibel med MS-DOS, men som också har fördelen av att vara öppen källkod. Jämfört med MS-DOS kan vem som helst omfördela FreeDOS, så FreeDOS-startfilerna ingår i Rufus.
  • ISO Image: Detta är alternativet du bör använda om du har en startbar ISO-fil och vill konvertera den till startbar USB-media. Tänk på att eftersom en konvertering (vanligtvis) behöver ske och det finns miljontals sätt att skapa en startbar ISO-fil, finns det ingen garanti för att Rufus kommer att kunna konvertera den till USB-media (men den kommer alltid att berätta om det är fallet).
  • DD Image: Det här är metoden du bör använda om du har en startbar diskavbildning, som de som tillhandahålls av FreeBSD, Raspbian, etc. Filer med filtillägget .vhd stöds också (vilket är Microsofts version av en DD Image) som såväl som komprimerade (.gz, .zip, .bz2, .xz, etc.).

De fyra alternativen ovan är de enda du kommer att se i vanligt läge. Men om du kör Rufus i avancerat läge har du också tillgång till följande val:

  • Syslinux x.yz: Installerar en tom Syslinux-starthanterare som tar dig till en Syslinux-prompt och inte mycket annat. Du ska veta vad du behöver göra från den punkten och framåt.
  • GRUB/Grub4DOS: Samma som ovan, men för GRUB/Grub4DOS respektive. Det kommer att få dig till en GRUB-prompt, men det är upp till dig att ta reda på resten.
  • ReactOS: Installerar en experimentell ReactOS-starthanterare. Sedan sist jag kollade så startar inte ReactOS så bra från USB-media. Det är där för att det var lätt att lägga till, och gjort med hopp om att det kan hjälpa till med ReactOS-utveckling.
  • UEFI-NTFS: Detta kräver att NTFS väljs som filsystem och installerar en tom UEFI-NTFS-starthanterare. Detta möjliggör uppstart från NTFS i rent UEFI-läge (inte CSM) på UEFI-plattformar som inte inkluderar en NTFS-drivrutin. Eftersom den är tom, måste du kopiera din egen /efi/boot/bootia32.efi eller /efi/boot/bootx64.efi till NTFS-partitionen för att den ska vara användbar. UEFI-NTFS används automatiskt av Rufus för att komma runt den maximala filstorleken på 4 GB för FAT32, vilket till exempel tillåter installation av Microsoft Server 2016 i UEFI-läge utan att behöva dela upp filen install.wim på 4,7 GB.

Hoppas det hjälper. Det här är en förenklad översikt, så jag hoppas att folk inte kommer att börja lura på aspekter som medvetet fördunklades eller hölls tysta (som att veta att det är möjligt att ha USB-minnen utan partitioner, att låta USB och optiska medier använda samma fil system, och att vissa startprocesser har förmågan att utöka partitionsstorleken på USB-media för att lösa problemet med lägre uppenbar kapacitet).