help-grub
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Re[2]: Building grub2 for use as a kernel on qemu


From: Andrei Borzenkov
Subject: Re: Re[2]: Building grub2 for use as a kernel on qemu
Date: Tue, 7 Feb 2017 17:05:31 +0300

On Mon, Feb 6, 2017 at 10:40 PM, Shaun Reitan <address@hidden> wrote:
> When using this method every time i boot into grub and attempt to search or
> even ls (hd0)/ i get a bunch of errors of missing modules.
>
> example:
>
> ls (hd0)/
> error: file `/boot/grub/i386-pc/xfs.mod` not found
> error: file `/boot/grub/i386-pc/ufs2.mod` not found
> error: file `/boot/grub/i386-pc/ufs1_be.mod` not found
> ...
>
> Any idea why?
>

That is filesystem driver autoprobe which is using
/boot/grub/$platform/fs.lst file; this file is created when grub is
built and contains all available drivers. grub-mkstandalone copies it,
but does not trims according to modules included in memory disk. It
was discussed but I cannot find reference.

>
> --
> Shaun
>
>
> ------ Original Message ------
> From: "Andrei Borzenkov" <address@hidden>
> To: "Shaun Reitan" <address@hidden>; "address@hidden"
> <address@hidden>
> Sent: 2017-02-03 09:44:07 PM
> Subject: Re: Building grub2 for use as a kernel on qemu
>
>> 03.02.2017 23:49, Shaun Reitan пишет:
>>>
>>>  Andrei,
>>>
>>>  Tried to build a kernel image using the following.
>>>
>>>  ./bin/grub-mkstandalone -O i386-pc -o grub2.img grub.cfg --fonts=""
>>>  --locales="" --themes="" --install-modules="acpi adler32 affs ahci
>>>  all_video aout ata at_keyboard biosdisk blocklist boot bufio cat cbfs
>>>  cbls cbmemc cbtable cbtime chain cmosdump cmp configfile cpio_be cpio
>>>  cpuid crc64 cryptodisk crypto date datetime diskfilter disk div div_test
>>>  dm_nv drivemap echo efiemu ehci elf eval exfat exfctest ext2 extcmd fat
>>>  file gettext gfxmenu gfxterm_background gfxterm_menu gfxterm gptsync
>>>  gzio halt hashsum help iorw iso9660 keylayouts keystatus ldm legacycfg
>>>  legacy_password_test linux16 linux loadenv loopback lsacpi lsapm lsmmap
>>>  ls lspci lzopio macbless macho memdisk memrw minicmd mmap morse mpi
>>>  mul_test multiboot2 multiboot nativedisk net newc nilfs2 normal ntldr
>>>  odc offsetio ohci part_gpt password pata pcidump pci priority_queue
>>>  probe procfs random read reboot regexp relocator romfs scsi
>>>  search_fs_file search_fs_uuid search_label search sendkey serial setjmp
>>>  setpci shift_test signature_test sleep syslinuxcfg tar terminal terminfo
>>>  test_blockarg testload test tga time trig tr true udf uhci usb_keyboard
>>>  usb usbms usbtest vbe verify vga vga_text video_cirrus video xfs xzio"
>>>
>>>  basically i took every module from the i386-pc/*.mod directory and
>>>  attempted to add it.  The image was too large so i went through the
>>>  module list and removed stuff that i was pretty sure i didnt need.
>>>
>>>  When i boot the image, i see nothing but the memdisk, i'm also in that
>>>  same grub2 shell.  I should see a (hd0) along with my (memdisk)
>>>
>>
>> You need to include biosdisk into image (or in memory disk and load
>> explicitly from grub.cfg). PC BIOS offers alternative disk driver so
>> this is image-build-time option.
>>
>> address@hidden:~/build/grub$ echo "insmod biosdisk" >
>> /tmp/grub.cfg
>> address@hidden:~/build/grub$ pkgdatadir=$PWD ./grub-mkstandalone
>> -d grub-core -O i386-pc -o grub.img --locales= --themes= --fonts=
>> --install-modules="all_video boot btrfs cat chain configfile echo ext2
>> fat font gettext gfxmenu gfxterm gfxterm_background gzio halt hfsplus
>> iso9660 jpeg keystatus loadenv loopback linux memdisk minicmd normal
>> part_apple part_msdos part_gpt password_pbkdf2 png reboot search
>> search_fs_uuid search_fs_file search_label sleep squash4 test true video
>> zfs zfscrypt zfsinfo biosdisk echo linux linux16 ls"
>> /boot/grub/grub.cfg=/tmp/grub.cfg
>>
>> address@hidden:~/build/grub$ qemu-system-x86_64 -m 1G -device
>> virtio-scsi-pci -drive
>> file=/home/bor/vm/tw/hd0.img,if=none,id=hd0,discard=on,format=raw
>> -device scsi-hd,drive=hd0 -drive
>> file=/home/bor/vm/tw/test1.img,if=virtio,format=raw -drive
>> file=/home/bor/vm/tw/test2.img,if=virtio,format=raw -net user -net
>> nic,model=virtio -kernel grub.img
>>
>> And "ls" in CLI shows me all disks. Of course you also need to manually
>> load suitable partition drivers to access partitions.
>>
>> Alternative is to use grub-mkstandalone ... --modules=biosdisk.
>>
>> May be we should add --disk-module option of grub-install to other high
>> level tools.
>>
>> Oh, and $prefix in standalone image is set to (memdisk)/boot/grub, which
>> means you need to put grub.cfg in /boot/grub if you want it to be
>> executed automatically; you use graft syntax for this
>>
>> grub-mkstandalone ... /boot/grub/grub.cfg=/path/to/your/config/file
>>
>> _______________________________________________
>> Help-grub mailing list
>> address@hidden
>> https://lists.gnu.org/mailman/listinfo/help-grub
>
>



reply via email to

[Prev in Thread] Current Thread [Next in Thread]