All of lore.kernel.org
 help / color / mirror / Atom feed
From: Andrei Borzenkov <arvidjaar@gmail.com>
To: Sebastian Pipping <sebastian@pipping.org>
Cc: The development of GNU GRUB <grub-devel@gnu.org>
Subject: Re: Future of installing GRUB to LVM volumes (and loop devices)
Date: Tue, 12 May 2015 14:41:43 +0300	[thread overview]
Message-ID: <20150512144143.6f4713d0@opensuse.site> (raw)
In-Reply-To: <5551D8CF.8080905@pipping.org>

В Tue, 12 May 2015 12:41:19 +0200
Sebastian Pipping <sebastian@pipping.org> пишет:

> 
> >> Auto-detection of a filesystem of /dev/mapper/loop0p1 failed.
> >> Try with --recheck.
> >> If the problem persists please report this together with the output of
> >> "/usr/sbin/grub-probe --device-map="/mnt/loop-root/boot/grub/device.map"
> >> --target=fs -v /mnt/loop-root/boot/grub" to <bug-grub@gnu.org>
> >> 1
> >> # mount | fgrep /mnt/loop-root
> >> /dev/mapper/loop0p1 on /mnt/loop-root type ext4
> > 
> > There is no feasible way to map this device back to contained device,
> > short of scanning all maps, finding all partition labels on them and
> > matching maps against labels.
> 
> Why not?
> 
> lsblk manages to detect that /dev/mapper/loop0p1 is a child of /dev/loop0:
> 
> # lsblk | fgrep loop | sed 's| \{23\}||'
> loop0                 7:0    0   100M  0 loop
> └─loop0p1 (dm-9)    254:9    0    96M  0 part  /mnt/loop-root
>

That's what mean - this is direct parent-child. But consider

bor@opensuse:~/build/grub> echo 0 2048 linear /dev/loop0 0 | sudo dmsetup create whole
bor@opensuse:~/build/grub> echo 0 59392 linear /dev/loop0 2048 | sudo dmsetup create part

At this point /dev/mapper/part refers to partition of /dev/mapper/whole
but there is not direct relationships between two that you can
easily discover

bor@opensuse:~/build/grub> sudo dmsetup ls --tree
whole (254:5)
 └─ (7:0)
part (254:6)
 └─ (7:0)

and

bor@opensuse:~/build/grub> sudo ./grub-probe  -t hints_string -m device.map /mnt 
./grub-probe: warning: unknown device type loop0
.

bor@opensuse:~/build/grub> cat device.map 
(hd0) /dev/mapper/whole

but

bor@opensuse:~/build/grub> sudo ./grub-probe  -t hints_string -m device.map /mnt 
./grub-probe: warning: unknown device type loop0
.
--hint='hd0,msdos1' 
bor@opensuse:~/build/grub> cat device.map
(hd0) /dev/loop0

So in common cases it will work and is better as nothing, but there will be corner cases that may fail.

> 
> > Half working solution would be to assume that it is always child map.
> > 
> > Or you can take shortcut and assume that /dev/mapper/XXXXpY is
> > partition of /dev/mapper/XXX but you still will need to verify it.
> > 
> > Patches are welcome.
> 
> I am still wondering: how come it was working in GRUB 2.00 but now
> longer is?
> 

But by you said in previous message that HEAD works? Not sure how
though :)


  reply	other threads:[~2015-05-12 11:41 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-05-05 16:54 Future of installing GRUB to LVM volumes (and loop devices) Sebastian Pipping
2015-05-05 17:38 ` Andrei Borzenkov
2015-05-06 12:30   ` Sebastian Pipping
2015-05-06 17:16     ` Andrei Borzenkov
2015-05-12 10:41       ` Sebastian Pipping
2015-05-12 11:41         ` Andrei Borzenkov [this message]
2015-05-15  9:28           ` Sebastian Pipping
2015-05-15  9:34             ` Andrei Borzenkov
2015-05-15 10:42               ` Sebastian Pipping
2015-05-16  3:47                 ` Jordan Uggla
2015-05-16 14:10                   ` Sebastian Pipping
2015-05-16 23:33                     ` Jordan Uggla
2015-05-17  8:14                 ` Andrei Borzenkov
2015-05-21 21:41                   ` Sebastian Pipping
2015-05-21 21:44                     ` Vladimir 'phcoder' Serbinenko
2015-05-21 21:48                       ` Sebastian Pipping
2015-05-21 22:17                         ` Vladimir 'phcoder' Serbinenko
2015-05-21 22:20                           ` Sebastian Pipping
2015-05-22  2:25                           ` Andrei Borzenkov
2015-05-07  9:35     ` Vladimir 'φ-coder/phcoder' Serbinenko
2015-05-12  9:16       ` Sebastian Pipping

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20150512144143.6f4713d0@opensuse.site \
    --to=arvidjaar@gmail.com \
    --cc=grub-devel@gnu.org \
    --cc=sebastian@pipping.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.