Hoe ISO-bestanden rechtstreeks vanaf de HDD te laten werken met GRUB2
De meeste Linux-distro's bieden een liveomgeving, die u kunt opstarten vanaf een USB-station, zodat u het systeem kunt testen zonder het te installeren. Je kunt het gebruiken om de distro te evalueren of als een wegwerp-OS. Hoewel het gemakkelijk is om deze naar een USB-schijf te kopiëren, zou je in bepaalde gevallen vaak dezelfde ISO-image willen gebruiken of regelmatig verschillende images willen uitvoeren. GRUB 2 kan zo worden geconfigureerd dat je de ISO's niet op een schijf hoeft te branden of een USB-drive hoeft te gebruiken, maar je moet een live-omgeving rechtstreeks vanuit het opstartmenu uitvoeren.
Het verkrijgen en controleren van opstartbare ISO-images
Om een ISO-image te verkrijgen, bezoekt u meestal de website van de gewenste distributie en downloadt u elke afbeelding die compatibel is met uw opstelling. Als de afbeelding vanaf een USB kan worden gestart, moet deze ook vanuit het GRUB-menu kunnen starten.
Zodra het downloaden van de afbeelding is voltooid, moet u de integriteit ervan controleren door een eenvoudige md5-controle uit te voeren. Hierdoor wordt een lange combinatie van cijfers en alfanumerieke tekens weergegeven
die u kunt vergelijken met de MD5-controlesom op de downloadpagina. De twee zouden identiek moeten zijn.
GRUB 2 instellen
ISO-afbeeldingen bevatten volledige systemen. Het enige wat je hoeft te doen is GRUB2 naar het juiste bestand te sturen en het te vertellen waar het de kernel en het initramdisk of het initram-bestandssysteem kan vinden (afhankelijk van welke je distributie gebruikt).
In dit voorbeeld wordt een Kubuntu 15.04-liveomgeving ingesteld om te worden uitgevoerd op een Ubuntu 14.04-box als Grub-menu-item. Het zou moeten werken voor de meeste nieuwere Ubuntu-gebaseerde systemen en derivaten.
In dit voorbeeld het bestand kubuntu-15.04-desktop-amd64.iso
woont in /home/maketecheasier/TempISOs/
on /dev/sda1
.
Om GRUB2 op de juiste plaats te laten zoeken, moet je de
/etc/grub.d/40_custom
bestand waarmee u uw eigen menu-items kunt toevoegen. Het bestand zou al moeten bestaan en een paar regels bevatten.
Om Kubuntu vanuit de bovenstaande locatie te starten, voegt u de volgende code toe (na aanpassing aan uw behoeften) onder de sectie met opmerkingen, zonder de originele inhoud te wijzigen.
menuentry "Kubuntu 15.04 ISO" {set isofile = "/ home / maketecheasier / TempISOs / kubuntu-15.04-desktop-amd64.iso" loopback loop (hd0, 1) $ isofile echo "Starting $ isofile ..." linux (loop) /casper/vmlinuz.efi boot = casper iso-scan / bestandsnaam = $ {isofile} quiet splash initrd (loop) /casper/initrd.lz}
De bovenstaande code overtreden
Stel eerst een variabele in met de naam $menuentry
. Dit is waar het ISO-bestand zich bevindt. Als u wilt overschakelen naar een andere ISO, moet u het bit wijzigen waar het zegt is isofile="/path/to/file/name-of-iso-file-.iso"
.
De volgende regel geeft het loopback-apparaat op; je moet ook het juiste partitienummer opgeven. Dit is het stukje waar het staat
loopback-lus (hd0, 1) $ isofile
Let op de hd0, 1
bit; Het is belangrijk. Dit betekent eerste HDD, eerste partitie ( /dev/sda1
).
GRUB's naamgeving hier is enigszins verwarrend. Voor HDD's begint het te tellen vanaf "0", waardoor de eerste HDD # 0, de tweede # 1, de derde # 2, enz. Is. Voor partities zal het echter vanaf 1 beginnen. De eerste partitie is # 1, de tweede is # 2, enz. Daar is misschien een goede reden voor, maar niet noodzakelijk een gezonde (UX-achtig is het een ramp, voor de zekerheid).
Dit maakt vuistschijf, eerste partitie, die in Linux er ongeveer zo zou uitzien als /dev/sda1
word hd0, 1
in GRUB2. De tweede schijf, derde partitie zou hd1, 3
, enzovoort.
De volgende belangrijke regel is
linux (loop) /casper/vmlinuz.efi boot = casper iso-scan / bestandsnaam = $ {isofile} rustige plons
Het laadt de kernel-afbeelding. Op nieuwere Ubuntu Live-CD's zou dit in de /casper
map staan en vmlinuz.efi
. Als u een ander systeem gebruikt, mist uw kernel mogelijk de extensie .efi
of bevindt deze zich ergens anders (u kunt dit eenvoudig controleren door het ISO-bestand met een archiefbeheerder te openen en naar binnen /casper.
in de map te kijken). De laatste opties, quiet splash,
zijn je normale GRUB-opties, als je ze wilt veranderen.
Tenslotte
initrd (loop) /casper/initrd.lz
zal initrd
laden, die verantwoordelijk is om een RAM Disk in het geheugen te laden voor het opstarten.
Je live systeem opstarten
Om het allemaal te laten werken, hoef je alleen GRUB2 te updaten
sudo update-grub
Wanneer je je systeem opnieuw opstart, zou je een nieuw GRUB-bestand moeten krijgen dat je in staat stelt om in de ISO image te laden die je zojuist hebt ingesteld.
Als u het nieuwe item selecteert, wordt u opgestart in de live omgeving, net zoals opstarten vanaf een dvd of USB zou doen.