[linux] opstart van iso op disk, wat gaat hier fout?

Der cl3m0t op gmail.com
Zo Jun 2 17:19:28 CEST 2019


On 02-06-19 14:07, Julien Michielsen wrote:
> Der schreef op 2019-06-01 16:16:
>> On 31-05-19 11:03, Julien Michielsen wrote:
>>
>>>
>>> Ik heb een partitie van 2 GBb (grote getallen zijn mooi, nr 23 is mijn
>>> iso-partitie) bestemd tot iso-partitie.  En mijn /etc/grub.d/40_custom
>>> ziet eruit als volgt:
>>> ,.. > menuentry "ubuntu-18.04.2-ISO" {
>>>          set isofile=(hd0,22)/ubuntu-18.04.2-desktop-amd64.iso
>>>          loopback loop (hd0,22)$isofile
>>>          linux (loop)/vmlinuz boot=casper iso-scan/filename=$isofile 
>>> noprompt noeject
>>>          initrd (loop)/casper/vmlinuz
>>> }
>>
>> Ik zie dat je de partitie waarop je iso file staat en het pad
>> veranderd hebt. Vervang bovenstaande menuentry met het het volgende,
>> de toelichting heb ik al gegeven.
>>
>> menuentry "ubuntu-18.04.2-ISO" {
>>         set isofile="/ubuntu-18.04.2-desktop-amd64.iso"
>>         loopback loop (hd0,23)$isofile
>>         linux (loop)/casper/vmlinuz.efi boot=casper
>> iso-scan/filename=$isofile noprompt noeject
>>         initrd (loop)/casper/vmlinuz.lz
>> }
>>
>>
>>> Na dit geplaatst te hebben het commando
>>> sudo grub update
>>>
>>> en na uitvoering daarvan geen boot, wel de foutmelding
>>>
>>> error invalid file name '(hd0,22)/ubuntu-18.04.2-desktop-amd64.iso'
>>> error no server is specified
>>> error you need to load the kernel first
>>>
>>> En ik ben verstomd: De bovenste regel uit de melding
>>> "invalid file name '(hd0,22)/ubuntu-18.04.2-desktop-amd64.iso'"
>>> lijkt bijna fout te zijn: sda23 is toch hd0,22?!!!
>>>
>> Nee, sda23 is hd0,23. De melding invalid file name krijg je omdat jouw
>> _set_ _isofile_ regel fout is!
> 
> Dit laatste vind ik een beetje verbazend, en - denk ik - minder juist
> dan mijn specificatie. Namelijk:
> op 
> https://superuser.com/questions/182161/grub-how-find-partition-number-hd0-x
> kun je lezen:
> An example is: hda1 = (hd0, 0)
> 

Secondly, in grub-legacy, the partition number starts at 0, not 1 like 
in Linux, so subtract 1 from the linux partition number. And in *grub2*, 
it starts at *1*.

> Finally, grub does not differentiate between hd and sd devices, so 
> everything is labeled hd.
> 
> Thus, in your case, your grub entry for /dev/sda6 should read (hd0, 5)
> 
> Overeenkomstig daarmee zou /dev/sda23 gespecificeerd moeten worden als 
> (hd0,22).
> 
> Maar goed: mijn specificatie wrkte niet, en gaf de melding
> "error invalid file name".
> Ik heb dus jouw suggestie gebruikt, en proberen te booten met (hd0,23).
> (Niet na eerst de vmlinuz.efi goed in te hebben gevuld als "vmlinuz")
> 

WAAROM??? dit heb ik eerder geschreven:

linux (loop)/casper/vmlinuz.efi boot=casper iso-scan/filename=$isofile 
noprompt noeject
# /casper/vmlinuz.efi voor 64 bit kernel zie:
https://help.ubuntu.com/community/Grub2/ISOBoot/Examples

en ook dit:

initrd (loop)/casper/vmlinuz.lz

echter je maakt er weer:

initrd (loop)/casper/vmlinuz

WAAROM???


> Met jouw correctie aangebracht, en proberend te booten vanaf een iso op
> (hd0,23) kreeg ik meer dan een scherm vol meldingen, eindigend met de regel
> 
> ---[error Kernel panic not syncing: VFS: unable to mount root fs on unknown
> -block (1,0) ] ---
> 
> Daarop dacht ik: Der heeft het inderdaad mis, en ik corrigeerde hd0,23 naar
> hd0,22.  Daarna startte ik op, en kreeg precies de zelfde melding.
> Iemand die een suggestie heeft wat er mis kan zijn?
> Mogelijk overbodig, maar ik geef het toch mee: de inhoud van de 
> grub-correctie-
> file (/etc/grub.d/40_custom):
> 
> #!/bin/sh
> echo "Adding 40_custom." >&2
> exec tail -n +4 $0
> # This file provides an easy way to add custom menu entries.  Simply 
> type the
> # menu entries you want to add after this comment.  Be careful not to 
> change
> # the 'exec tail' line above.
> 
> menuentry "ubuntu-18.04.2-ISO" {
>          set isofile="/ubuntu-18.04.2-desktop-amd64.iso"
>          loopback loop (hd0,22)$isofile
>          linux (loop)/casper/vmlinuz boot=casper 
> iso-scan/filename=$isofile noprompt noeject
>          initrd (loop)/casper/vmlinuz
> }
> 
> Dank!

Der


Meer informatie over de Linux maillijst