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

Reply via email to