You are not logged in.
Hello Folks
I'm trying to upgrade from grub-legacy to grub2, following the instructions at https://wiki.archlinux.org/index.php/GRUB2
I've installed grub-bios, and run this without problem:
# modprobe dm-mod
# grub-install --recheck /dev/sda
But this command
# grub-mkconfig -o /boot/grub/grub.cfg
gives this:
Generating grub.cfg ...
/usr/sbin/grub-probe: warning: Couldn't find physical volume `pv1'. Some modules may be missing from core image..
/usr/sbin/grub-probe: warning: Couldn't find physical volume `pv1'. Some modules may be missing from core image..
/usr/sbin/grub-probe: warning: Couldn't find physical volume `pv1'. Some modules may be missing from core image..
/usr/sbin/grub-probe: warning: Couldn't find physical volume `pv1'. Some modules may be missing from core image..
/usr/sbin/grub-probe: warning: Couldn't find physical volume `pv1'. Some modules may be missing from core image..
Found linux image: /boot/vmlinuz-linux
Found initrd image: /boot/initramfs-linux.img
/usr/sbin/grub-probe: warning: Couldn't find physical volume `pv1'. Some modules may be missing from core image..
done
So now I'm reluctant to try to reboot the system because it seems likely to be broken. Should I ignore the warnings, or fix something?
I'm using LVM2 as you can see. /boot is on a separate non-LVM partition (/dev/sdc1). root is on LVM. This is all on a recently-updated 64-bit Arch installation using systemd.
Here's a load of information -- I hope it's relevant.
# fdisk -lu
Disk /dev/sdb: 250.1 GB, 250059350016 bytes, 488397168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0xea22bb30
Device Boot Start End Blocks Id System
/dev/sdb1 63 488392064 244196001 83 Linux
Disk /dev/sda: 250.0 GB, 250000000000 bytes, 488281250 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000080
Device Boot Start End Blocks Id System
/dev/sda1 2048 488281249 244139601 8e Linux LVM
Disk /dev/sdc: 500.1 GB, 500107862016 bytes, 976773168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
Device Boot Start End Blocks Id System
/dev/sdc1 * 63 481949 240943+ 83 Linux
/dev/sdc2 481950 12482504 6000277+ 82 Linux swap / Solaris
/dev/sdc3 12482505 976773167 482145331+ 8e Linux LVM
Disk /dev/mapper/vg1-root: 64.4 GB, 64424509440 bytes, 125829120 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk /dev/mapper/vg1-home: 583.0 GB, 583008256000 bytes, 1138688000 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
# pvdisplay
--- Physical volume ---
PV Name /dev/sdc3
VG Name vg1
PV Size 459.81 GiB / not usable 1.05 MiB
Allocatable yes (but full)
PE Size 4.00 MiB
Total PE 117711
Free PE 0
Allocated PE 117711
PV UUID zaLJiO-1LCH-TGi6-hwBr-OyNs-Sjlm-HggrMo
--- Physical volume ---
PV Name /dev/sda1
VG Name vg1
PV Size 232.83 GiB / not usable 1.58 MiB
Allocatable yes
PE Size 4.00 MiB
Total PE 59604
Free PE 22955
Allocated PE 36649
PV UUID P05c2d-1d2i-bf0M-u6BX-EEq0-fvZW-VkTLhY
# lvdisplay
--- Logical volume ---
LV Path /dev/vg1/root
LV Name root
VG Name vg1
LV UUID Z68H3p-VvbC-ZNau-7Ds7-GptS-Hpl0-VZNjo4
LV Write Access read/write
LV Creation host, time ,
LV Status available
# open 1
LV Size 60.00 GiB
Current LE 15360
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 254:0
--- Logical volume ---
LV Path /dev/vg1/home
LV Name home
VG Name vg1
LV UUID uUfmS9-C4CK-Vw3V-cmwD-hEC1-VcwD-90yAyO
LV Write Access read/write
LV Creation host, time ,
LV Status available
# open 1
LV Size 542.97 GiB
Current LE 139000
Segments 2
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 254:1
Last edited by Chris Dennis (2013-04-03 19:04:58)
Offline
It appears as though your /boot is not actually on the LVM, is this correct? Because the only reason you would need grub2's LVM2 compatibility is if your kernel/initrd is stored within the LVM itself. If it is apart from the rest, stored in a regular /boot partition, this is not necessary.
[side-note] Honestly, if grub-legacy was working for you, I would stick with that. I don't see any real reason to switch to grub2, as I really don't think that the bootloader holds and security risk or anything. Grub2 tries to automate everything, including the creation of your grub.cfg. This makes it not so entirely obvious to debug like grub-legacy was.
Either that, or use syslinux, as it really reminds me of the grub-legacy. It is nice, and simple and does what it needs to do without any crazy BS for you to contend with. [/side-note]
Offline
Thanks for your reply, WonderWoofy.
It appears as though your /boot is not actually on the LVM, is this correct? Because the only reason you would need grub2's LVM2 compatibility is if your kernel/initrd is stored within the LVM itself. If it is apart from the rest, stored in a regular /boot partition, this is not necessary.
Correct, /boot is not on an LVM volume. I didn't tell grub that it was -- I just ran the grub-mkconfig command.
Is there something different that I need to do to tell grub that /boot is on /dev/sdc1 ?
[side-note] Honestly, if grub-legacy was working for you, I would stick with that. I don't see any real reason to switch to grub2, as I really don't think that the bootloader holds and security risk or anything. Grub2 tries to automate everything, including the creation of your grub.cfg. This makes it not so entirely obvious to debug like grub-legacy was.
Either that, or use syslinux, as it really reminds me of the grub-legacy. It is nice, and simple and does what it needs to do without any crazy BS for you to contend with. [/side-note]
I'll consider those ideas. I just assumed that support for grub-legacy would go away at some stage.
cheers
Chris
Offline
Oh well, I took a punt on the word 'Warning' in the message, and rebooted anyway.
It worked!
An error message flashed up that I couldn't read, but it's all up and running again now.
If I find out anything more specific about those messages, I'll post it here.
Offline
Oh well, I took a punt on the word 'Warning' in the message, and rebooted anyway.
It worked!
I've just completed a series of experiments involving LVM and GRUB2. The short story is that such warnings are innocuous and arise from extending a volume group.
Now in some detail, here's what happens (all of which was performed in VirtualBox with the current Arch rolling release just to make it easy to add and remove disk devices):
a). pvcreate /dev/sde1 /dev/sdf1
* Use partitions of type 8e, spanning the whole drive, for BOTH devices comprising the physical
volume to prove that partitioning is irrelevant to the matter.
b). vgcreate vg_x /dev/sde1
* Start with just one device in the volume group.
c). lvcreate --extents 100%VG --name boot vg_x
d). mkfs.ext4 /dev/vg_x/boot && mount /dev/vg_x/boot /mnt/other
e). grub2-install --boot-directory=/mnt/other /dev/sde
Installation finished. No error reported.
All is well...but now let's extend the vg_x volume group with the pre-allocated device, /dev/sdf1:
f). vgextend vg_x /dev/sdf1
g). grub2-install --boot-directory=/mnt/other /dev/sde
/usr/sbin/grub2-probe: warning: Couldn't find physical volume `pv1'. Some modules may be missing from core
/usr/sbin/grub2-probe: warning: Couldn't find physical volume `pv1'. Some modules may be missing from core
Installation finished. No error reported.
...and boom goes the dynamite. As Chris Dennis stated, GRUB2 installs fine and the system is bootable in spite of the warning. The grub-2.00 source where the warning arises is in ./grub-core/disk/diskfilter.c and has this comment:
/* TRANSLATORS: This message kicks in during the detection of
which modules needs to be included in core image. This happens
in the case of degraded RAID and means that autodetection may
fail to include some of modules. It's an installation time
message, not runtime message. */
I haven't tried to hack the GRUB code but, based upon my experimentation and the ease of replicating the problem, my guess is that somehow a volume group that extended in manner shown above is mishandled by GRUB. It's arguably a bug, IMHO, since a volume group, even when extended, is still a valid entity.
Offline
Thank you re_nelson for researching this issue (which persists on my system, but doesn't seem to cause a problem).
I have indeed extended and otherwise adjusted LVM volumes in the past, so that's consistent with what you found.
Offline
I have indeed extended and otherwise adjusted LVM volumes in the past, so that's consistent with what you found.
And I thank you for this followup about GRUB's behavior when an LVM volume is extended. My concern when I posted my procedure was that I had encountered a one-off scenario unique to my situation. For what it's worth, I checked out the latest development GRUB from bzr, with file timestamps as recent as 16 JUN 2013 and the problem persists with that warning.
Since it is so readily reproduced and you've been able to confirm my findings, I'll contact the GRUB developer(s) and report the recipe that yields the error.
Again, your reply is greatly appreciated.
Offline