> Sent: Wednesday, November 06, 2019 at 3:30 AM
> From: "Christopher Gregory via blfs-support" 
> <[email protected]>
> To: [email protected]
> Cc: "Christopher Gregory" <[email protected]>
> Subject: Re: [blfs-support] Best approach for lvm2
>
> 
> 
> > Sent: Wednesday, November 06, 2019 at 2:54 AM
> > From: "Pierre Labastie via blfs-support" 
> > <[email protected]>
> > To: [email protected]
> > Cc: "Pierre Labastie" <[email protected]>
> > Subject: Re: [blfs-support] Best approach for lvm2
> >
> > Le 05/11/2019 à 06:00, Christopher Gregory via blfs-support a écrit :
> > > 
> > > 
> > >> Sent: Sunday, October 27, 2019 at 3:20 AM
> > >> From: "Pierre Labastie via blfs-support" 
> > >> <[email protected]>
> > >> To: [email protected]
> > >> Cc: "Pierre Labastie" <[email protected]>
> > >> Subject: Re: [blfs-support] Best approach for lvm2
> > >>
> > >> On 26/10/2019 14:46, Christopher Gregory via blfs-support wrote:
> > >>> Hello,
> > >>>
> > >>> I am about to install another version of lfs/blfs on a new ssd hard 
> > >>> drive, and I am wanting to move all my drives to using lvm2.  What I 
> > >>> need to know is the best approach for this.  I understand that it needs 
> > >>> to happen at the partitioning stage of installing lfs.
> > >>>
> > >>> I was wondering if I used a distro such as fedora from a live dvd if I 
> > >>> would be able to achieve this on the new hard drive and then be able to 
> > >>> use jhalf as normal to install lfs.  I was hoping to avoid having to 
> > >>> have a seperate /boot and having to use an initramfs image if at all 
> > >>> possible, but do not know if this would be achieveable or not.
> > >>>
> > >>> I am wanting to continue using guid partitions as well.  I have not 
> > >>> seen antyhing on the lists that show that anyone has been able to 
> > >>> install lfs on an lvm2 controlled drive.
> > >>>
> > >>
> > >> Maybe I've not communicated much on it, by I have done that :) here is 
> > >> the
> > >> partition layout (you can have something simpler, but I need Windows [1] 
> > >> for
> > >> my job). Note that there is nothing special with dos partitioning, and
> > >> certainly gpt is OK:
> > >>
> > >> Device     Boot     Start       End   Sectors  Size Id Type
> > >> /dev/sda1  *         2048   2101247   2099200    1G  7 HPFS/NTFS/exFAT
> > >> /dev/sda2         2101248 197413747 195312500 93.1G  7 HPFS/NTFS/exFAT
> > >> /dev/sda3       197414910 620937215 423522306  202G  5 Extended
> > >> /dev/sda4       620937216 625131519   4194304    2G  b W95 FAT32
> > >> /dev/sda5       197414912 620937215 423522304  202G 8e Linux LVM
> > >>
> > >> Now, the lvm layout is:
> > >> /dev/mapper/vg-debian64: 37.26 GiB
> > >> /dev/mapper/vg-swap: 7.46 GiB
> > >> /dev/mapper/vg-home: 37.26 GiB
> > >> /dev/mapper/vg-lfs: 60 GiB
> > >>
> > >> I first installed debian on /dev/mapper/vg-debian64, mounting
> > >> /dev/mapper/vg-home on /home. Actually, I used the partitioning tool 
> > >> coming
> > >> with the debian installer to shrink the NTFS partition and create the lvm
> > >> setup. I installed grub onto the disk. Grub can perfectly well boot from 
> > >> an
> > >> lvm partition.
> > >>
> > >> From debian, I mounted /dev/vg/lfs on /mnt/lfs, and installed lfs on it. 
> > >> Then
> > >> I made an initramfs. The reason why it _is_ needed (no way without it, 
> > >> unless
> > >> you have the root filesystem on a regular partition) is because the 
> > >> kernel
> > >> does not know about lvm, so it needs some help to be able to mount an 
> > >> lvm root
> > >> partition. The initramfs in the book works well for lvm.
> > >>
> > >> I created /boot/grub/grub.cfg on /dev/vg/lfs with
> > >>
> > >> # Begin /boot/grub/grub.cfg
> > >> set default=0
> > >> set timeout=5
> > >>
> > >> insmod ext2
> > >> insmod lvm
> > >> set root='lvm/vg/lfs'
> > >>
> > >> menuentry "GNU/Linux, Linux 5.3.6-lfs-SVN-20191017" {
> > >>         linux   /boot/vmlinuz-5.3.6-lfs-SVN-20191017 root=/dev/vg/lfs ro 
> > >> quiet
> > >>         initrd  /boot/microcode.img /boot/initrd.img-no-kmods
> > >> }
> > >> ...
> > >>
> > >> Then I ran update-grub on debian. There is a small problem here: 
> > >> update-grub
> > >> only copies the first initrd, so I had to manually add the second to
> > >> /boot/grub.gfg on /dev/vg/debian. Actually, It'd be better to merge both
> > >> initramfs.
> > >>
> > >> And that's it.
> > >>
> > >> Pierre
> > >> [1] I am not sure why Windows is using two small partitions + one big, 
> > >> but the
> > >> computer came with that, and I just shrank the big partition to make 
> > >> room for
> > >> linux.
> > >> --
> > >> http://lists.linuxfromscratch.org/listinfo/blfs-support
> > >> FAQ: http://www.linuxfromscratch.org/blfs/faq.html
> > >> Unsubscribe: See the above information page
> > >>
> > > 
> > > Hello Pierre,
> > > 
> > > I have finally got round to attempting this, and have spent a couple of 
> > > days now trying to get it to work.
> > > 
> > > I used Fedora 31 (as I am working with a developer to package his 
> > > software in rpm format) to create the lvm and the volumes.  This went 
> > > well.  I then used jhalfs to build the lfs system, and I got a completed 
> > > install.  I then went ahead and added the entries to grub, and then the 
> > > true nightmare began.  No matter what I put in the grub.cfg file it just 
> > > refuses to find the kernel.  I have generated the initrd.img-no-kmods 
> > > using the script in the book.  Using this script, it complains that there 
> > > is a missing operand after tmp/filename/lib but proceeds and completes 
> > > the image.
> > > 
> > > I have no idea where you got the root=/dev/vg line from.
> > > 
> > > With my installation, I have rootvg in /dev with the following: (this is 
> > > on fedora 31)
> > > 
> > > lrwxrwxrwx.  1 root root    7 Nov  5 17:17 home -> ../dm-4
> > > lrwxrwxrwx.  1 root root    7 Nov  5 17:17 opt -> ../dm-6
> > > lrwxrwxrwx.  1 root root    7 Nov  5 17:17 root -> ../dm-7
> > > lrwxrwxrwx.  1 root root    7 Nov  5 17:17 swap -> ../dm-3
> > > lrwxrwxrwx.  1 root root    7 Nov  5 17:17 tmp -> ../dm-5
> > > 
> > > 
> > > root [ /dev/rootvg ]# vgdisplay
> > >   --- Volume group ---
> > >   VG Name               fedora_localhost-live
> > >   System ID
> > >   Format                lvm2
> > >   Metadata Areas        1
> > >   Metadata Sequence No  5
> > >   VG Access             read/write
> > >   VG Status             resizable
> > >   MAX LV                0
> > >   Cur LV                3
> > >   Open LV               3
> > >   Max PV                0
> > >   Cur PV                1
> > >   Act PV                1
> > >   VG Size               <464.76 GiB
> > >   PE Size               4.00 MiB
> > >   Total PE              118978
> > >   Alloc PE / Size       118978 / <464.76 GiB
> > >   Free  PE / Size       0 / 0
> > >   VG UUID               VbdXPM-nzJY-gQ1I-IbpW-N2NP-Ct5G-vKYL10
> > > 
> > >   --- Volume group ---
> > >   VG Name               rootvg
> > >   System ID
> > >   Format                lvm2
> > >   Metadata Areas        1
> > >   Metadata Sequence No  6
> > >   VG Access             read/write
> > >   VG Status             resizable
> > >   MAX LV                0
> > >   Cur LV                5
> > >   Open LV               0
> > >   Max PV                0
> > >   Cur PV                1
> > >   Act PV                1
> > >   VG Size               <222.59 GiB
> > >   PE Size               4.00 MiB
> > >   Total PE              56983
> > >   Alloc PE / Size       56983 / <222.59 GiB
> > >   Free  PE / Size       0 / 0
> > >   VG UUID               7MAzgc-XlQZ-C53H-pKF8-ReV0-NaM2-ADSQQy
> > > 
> > > It does not matter if I use root=(lvm/rootvg-root) or 
> > > /dev/mapper/rootvg-root or any other varient, it complains that it can 
> > > not find vmlinuz-5.3.6-lfs-20191101-systemd.
> > 
> > Hmm, debian's "update-grub" finds the system on the lvm volume, but I am not
> > sure fedora works exactly the same as debian for that, so you may have to 
> > try
> > something else...
> > 
> > Concerning what you write, I am not sure which "root=" you are talking 
> > about:
> > there are two places where "root=" is used, and they do not have the same 
> > syntax:
> > - in "set root=". This is a grub instruction, and it uses grub's syntax for
> > files, that is, set root=(lvm/rootvg-root) (in your case). It indicates 
> > where
> > to find linux and initrd.
> > - in the "linux ..." line, where it uses linux syntax, that is, "linux
> > /boot/vmlinuz-5.3.6-lfs-20191101-systemd root=/dev/rootvg/root <other
> > options>". Note that you can replace with root=/dev/mapper/rootvg-root on
> > _this_ line, not the grub one. Both /dev/mapper/* and /dev/rootvg/* are
> > symlinks created by udev while running the initrd.
> > 
> > > 
> > > I have even tried using UUID= and PARTUUID= with similar results.
> > 
> > UUID may work for lvm2 (not tried), PARTUUID obviously doesn't, since a
> > logical volume is not a partition.
> > 
> > > 
> > > I have a seperate /boot partition outside of the lvm, and a bios_grub (as 
> > > I am using guid partition) this is the way that Fedora sets things up, ie 
> > > with a seperate /boot.  Even with updating grub on fedora, it still will 
> > > not boot.  I have appended /boot to both the initrd file and the linux 
> > > line.
> > > 
> > > After I had completed the installation of lfs, I proceeded to login to 
> > > the chroot and set the password for root, then I installed lvm2 and the 
> > > script to make the initramfs along with the runtime required files.  This 
> > > is the stage that I am at now.
> > > 
> > > I am at a loss as to what is going wrong here.  Fedora 31 is installed on 
> > > an external usb hard drive.  I have three hard drives installed in my 
> > > computer, two of which are ssd drives.
> > 
> > To test that the initrd is OK, you may try to have the lfs kernel and initrd
> > in the separate /boot partition (then , when it works, move those to lfs
> > volume, see below):
> > - copy vmlinuz-5.3.6-lfs-20191101-systemd and initrd.img-no-kmods to this
> > partition
> > - edit grub/grub.cfg on this partition so that there is an entry for the lfs
> > system (it may have been created by "update-grub")
> > - check that the "set root=" line for this entry (it may be global or local 
> > to
> > the entry) points to this partition
> > - the linux/initrd lines should read (you may add other options):
> > linux /vmlinuz-5.3.6-lfs-20191101-systemd root=/dev/rootvg/root ro
> > initrd /initrd.img-no-kmods
> > 
> > If this boots:
> > - move back vmlinuz-5.3.6-lfs-20191101-systemd and initrd.img-no-kmods to
> > /mnt/lfs/boot
> > - edit the grub/grub.cfg file on the separate boot partition so that:
> >    - the set root= line points to (lvm/rootvg-root)
> >    - the linux/initrd lines point to /boot/vmlinuz* and /boot/initrd*
> > 
> > HTH
> > 
> > Pierre
> > -- 
> > http://lists.linuxfromscratch.org/listinfo/blfs-support
> > FAQ: http://www.linuxfromscratch.org/blfs/faq.html
> > Unsubscribe: See the above information page
> > 
> 
> Hello Pierre,
> 
> I have now wiped all the other drives other than the external usb which 
> fedora is on, and the internal ssd that has this new version of lfs on. I 
> have tried having the lfs kernel and initrd on the /boot partition of the 
> fedora drive, and that does not work either.  This is how fedora adds the 
> entry to grub.cfg:
> 
> menuentry 'Linux From Scratch (20191025-systemd) (on 
> /dev/mapper/rootvg-root)' --class linuxfromscratch --class gnu-linux --class 
> gnu --class os $menuentry_id_option 
> 'osprober-gnulinux-simple-4155330c-5db1-4113-834f-afefb2d2570e' {
>         insmod part_gpt
>         insmod ext2
>         set root='hd3,gpt2'
>         if [ x$feature_platform_search_hint = xy ]; then
>           search --no-floppy --fs-uuid --set=root --hint-bios=hd3,gpt2 
> --hint-efi=hd3,gpt2 --hint-baremetal=ahci3,gpt2  
> 099738b6-ac51-455f-9d60-fac5d900ba8b
>         else
>           search --no-floppy --fs-uuid --set=root 
> 099738b6-ac51-455f-9d60-fac5d900ba8b
>         fi
>         linux /vmlinuz-5.3.6-lfs-20191025-systemd root=/dev/dm-7
>         initrd /initrd.img-no-kmods
> 
> Regards,
> 
> Christopher.
> -- 
> http://lists.linuxfromscratch.org/listinfo/blfs-support
> FAQ: http://www.linuxfromscratch.org/blfs/faq.html
> Unsubscribe: See the above information page
> 

Hello Pierre,

Having this as the grub.cfg file results in it complaining that it cannot find 
vmlinuz-5.3.6-lfs-20191025-systemd (it drops me to an shell in initrd)

# Begin /boot/grub/grub.cfg
set default=0
set timeout=5

insmod lvm
insmod insmod part_gpt
insmod ext2
set root=(lvm/rootvg-root)

menuentry "GNU/Linux, Linux 5.3.6-lfs-20191025-systemd" {
        linux   /boot/vmlinuz-5.3.6-lfs-20191025-systemd 
root=/dev/mapper/rootvg-root ro
        initrd /boot/initrd.img-no-kmods
}

Regards,

Christopher.
-- 
http://lists.linuxfromscratch.org/listinfo/blfs-support
FAQ: http://www.linuxfromscratch.org/blfs/faq.html
Unsubscribe: See the above information page

Reply via email to