help-grub
[Top][All Lists]
Advanced

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

Re: Grub-install documentation or override?


From: mgreger
Subject: Re: Grub-install documentation or override?
Date: Fri, 26 Jun 2015 12:35:09 +0000

---- Andrei Borzenkov <address@hidden> wrote: 
> В Thu, 25 Jun 2015 17:20:23 +0000
> <address@hidden> пишет:
> 
> > I have a 15GB image file partitioned using fdisk with a single MBR 
> > partition and containing an ext4 file system which contains my LFS system. 
> > I used kpartx on this to create /dev/loop0 and /dev/mapper/loop0p1. The 
> > file system in /dev/loop0p1 is mounted on /mnt. I am chrooted into /mnt
> 
> How exactly? chroot must have at least /dev, /sys and /proc available
> for device detection to work. 
> 

Thanks for the help.

Following the LFS instructions, I create mountpoints before entering the chroot 
environment:

mount -v --bind /dev /mnt/dev
mount -vt devpts devpts /mnt/dev/pts -o gid=5,mode=620
mount -vt proc proc /mnt/proc
mount -vt sysfs sysfs /mnt/sys
mount -vt tmpfs tmpfs /mnt/run


>  where my LFS system resides. Grub in the LFS system was built with the
>  following (from LFS documentation):
> > 
> > ./configure --prefix=/usr          \
> >             --sbindir=/sbin        \
> >             --sysconfdir=/etc      \
> >             --disable-grub-emu-usb \
> >             --disable-efiemu       \
> >             --disable-werror
> > 
> > Command used:
> >  grub-install --target=i386-pc /dev/loop0
> >
> 
> I do not have environment to test chroot, but the following works
> using current upstream master (sans two clean up patches):
> 
> address@hidden:~> sudo losetup --find --show /tmp/floppy
> /dev/loop0
> address@hidden:~> sudo kpartx -a /dev/loop0
> address@hidden:~> sudo mount /dev/mapper/loop0p2 /mnt
> address@hidden:~/build/grub> ./configure ; make
> address@hidden:~/build/grub> sudo pkgdatadir=$PWD ./grub-install -d grub-core 
> --boot-directory=/mnt /dev/loop0
> Installing for i386-pc platform.
> Installation finished. No error reported.
> address@hidden:~/build/grub> 
> 
> As Jordan suggested, you may be missing libdevmapper dependency.
>  



It does not appear libdevmapper is a part of LFS. I could be wrong, but I don't 
see it anywhere.

I don't understand why grub-install needs to find the partition 
/dev/mapper/loop0p1 at all. Surely all it needs to do is install to the MBR of 
/dev/loop0 and the embedded space before the first partition. Why would it need 
anything other than the device name /dev/loop0 ?

Assuming libdevmapper is not an option, how could I bypass grub-install, also 
assuming my /boot/grub directory is empty at start?
I know a bunch of files in /usr/lib/grub/i386-pc need to be copied to 
/boot/grub/i386-pc and LFS provides a simple grub.cfg. Beyond that I'm lost as 
to what arguments to grub-mkimage and grub-setup would allow me to build a 
core.img and apply it directly to /dev/loop0, to work around the problem.

Thanks for the help.


> > When that failed, I also tried a number of variations on this command, all 
> > of which also failed. I tried following examples on the net regarding 
> > creating a device.map and populating it with (hd0) /dev/loop0
> > Grub seems to read the file OK, but the install still fails.
> > 
> > The host machine is a 64-bit install of Debian 8, although that shouldn't 
> > matter.
> > 
> > If I do this on a real drive instead of a mounted image it works, but that 
> > doesn't help me. Shouldn't it be possible to install grub to a loopback 
> > device?
> > 
> > Thanks in advance for any help.
> > 
> > 
> > 
> > 
> > ---- Andrei Borzenkov <address@hidden> wrote: 
> > > Please, describe your configuration, and provide exact command you used. 
> > > Otherwise it is impossible to say anything.
> > > 
> > > Отправлено с iPhone
> > > 
> > > > 25 июня 2015 г., в 14:43, <address@hidden> <address@hidden> написал(а):
> > > > 
> > > > I absolutely cannot get grub-install to do what I need it to do: 
> > > > Install to the MBR on a disk image that is loop mounted with kpartx, 
> > > > while chrooted into an ext4 filesystem on the first partition of that 
> > > > image. The image will be used on a BIOS machine but the physical host 
> > > > is EFI.
> > > > 
> > > > This is for a linux from scratch 7.7 build and so uses the grub version 
> > > > found here: http://alpha.gnu.org/gnu/grub/grub-2.02~beta2.tar.xz
> > > > 
> > > > I discovered the "target" argument to override the architecture by 
> > > > searching the web (it doesn't seem to be mentioned in any detail in the 
> > > > Grub manual), but I can't get it to install regardless. I get some 
> > > > nonsensical message about being unable to find 'lvm/loop0p1' although I 
> > > > am not using lvm in the image. The image only has a single MBR 
> > > > partition.
> > > > 
> > > > This seems like it should be a simple thing to do and if it is I 
> > > > apologize, but I really hate it when software tries to be clever in an 
> > > > effort to 'help' and makes assumptions that turn a simple matter into a 
> > > > nightmare.
> > > > 
> > > > _______________________________________________
> > > > 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]