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
