On 9/17/19 4:53 PM, Jared Stevens via blfs-support wrote:
Hi all,
I figured before I continued with my build, I should try and solve one
of the two main issues I am currently experiencing (the other being
related to not being able to get Wi-Fi w/ WPA2 password to
authenticate/connect w/ wpa_supplicant + dhclient).
Essentially since Day 1 of my completed LFS build, I have been unable to
get my PC to boot the system from JUST the kernel vmlinuz file. It will
always fail to find the rootfs partition and VFS panic.
However, the initrd.img I created has no trouble whatsoever booting up
my system, and the GRUB entry for it was essentially a copy/paste of my
other entry with the initrd line added.
At that time, I had made the build using the Linux 5.2.8 kernel version.
More recently, I attempted to update to using the 5.2.11 Linux kernel. I
compiled and installed it identically to how the book explains like before.
This time around, neither the vmlinuz option nor the created
initrd.img-5.2.11 options will boot the system. The 5.2.8 initrd.img
option remains as the only of the four options listed in the GRUB2 boot
menu on startup to actually succeed to find the rootfs partition and boot.
To answer previous questions asked by Christopher in my last thread:
Are you using a USB drive / how many hard disks and partitions?
I am using a typical 500 GB HDD disk that is attached to a SATA-to-USB
adapter + case connected to my laptop (Dell) with 12 GB of RAM and boots
with UEFI. The disk is GPT and is partitioned as follows:
The reason you need an initrd is because the grub.cfg is using
root=UUID=aa72e154-0f87-47ea-bf33-c17db827f78e
What you need to skip initrd is to use root=PARTUUID=<value> or the
traditional root=/dev/sda2. Since you are using an external usb drive,
sda may be something else like sdb.
You can use fdisk, expert mode, to print the partition table to get the
partition uuid value.
-- Bruce
sda1 = vfat : 512 MB
sda2 = ext4 : 483 GB
sda3 = swap : 16 GB
As this was my first LFS build, I opted for the simple partitioning
layout. Therefore, there is no separate /usr or /tmp partitions for this
build.
Because my PC uses UEFI, I followed the hint on the LFS site for
configuring GRUB with UEFI and have efivars and efibootmgr installed.
Because the initrd.img will boot the system through UEFI, I am led to
believe my issue is not related to the steps I followed for configuring
GRUB with UEFI, although I could be wrong.
I only tried using an initrd.img because the disk naming for GRUB is
very weird with naming my disk partitions on both my LFS system and the
existing partitions on my laptop.
For example, sometimes my LFS system would be named 'sda' and other
times it would be 'sdb' or even 'sdc' if I had anything else plugged
into the laptop.
Here is the contents of my /etc/fstab file in LFS (excuse the format
mess-- copy/paste cli to Gmail isn't the best):
# file system mount-pt type
options dump fsck
PARTUUID=34f54da4-22c7-4037-a514-00139bac5672 /boot/efi vfat
defaults 0 1
#UUID=aa72e154-0f87-47ea-bf33-c17db827f78e / ext4
noatime,errors=remount-ro 0 0
PARTUUID=2273fa1c-2403-4350-850a-e7bfa3859bae / ext4
noatime,errors=remount-ro 0 0
PARTUUID=23ecb3ba-2855-44b4-9411-cfa2ef31feeb swap swap
pri=1 0 0
proc /proc proc
nosuid,noexec,nodev 0 0
sysfs /sys sysfs
nosuid,noexec,nodev 0 0
devpts /dev/pts devpts
gid=5,mode=620 0 0
tmpfs /run tmpfs defaults
0 0
devtmpfs /dev devtmpfs
mode=0755,nosuid 0 0
efivarfs /sys/firmware/efi/efivars efivarfs
defaults 0 1
And here are the contents of my grub.cfg file (custom made):
# Begin /boot/grub/grub.cfg
set default=0
set timeout=5
insmod gzio
insmod part_gpt
insmod ext2
set root=(hd0,gpt2)
# hd[x] is the drive of the LFS partion and gpt[y] is the partition
insmod efi_gop
insmod efi_uga
insmod font
if loadfont /grub/unicode.pf2; then
loadfont /grub/unicode.pf2
set gfxmode=auto
insmod gfxterm
set gfxpayload=keep
terminal_output gfxterm
fi
menuentry "GNU/Linux, Linux 5.2.11 (LFS-JWS-9.0-Sept19)" {
linux /boot/vmlinuz-5.2.11-lfs-9.0-systemd;
root=UUID=aa72e154-0f87-47ea-bf33-c17db827f78e ro rootdelay=10 pci=noaer
# initrd .img for Intel microcode
initrd /boot/microcode.img
}
# Generic initramfs identified by UUID (w/ Intel microcode initrd .img)
menuentry "GNU/Linux, Initrd.img 5.2.11 (LFS-JWS-9.0-Sept19)" {
linux /boot/vmlinuz-5.2.11-lfs-9.0-systemd;
root=UUID=aa72e154-0f87-47ea-bf33-c17db827f78e ro rootdelay=10
# initrd .img for Intel microcode + initramfs .img
initrd /boot/microcode.img /boot/initrd.img-5.2.11
}
menuentry "GNU/Linux, Linux 5.2.8 (LFS-JWS-9.0-Aug19)" {
linux /boot/vmlinuz-5.2.8-lfs-9.0-rc1-systemd;
root=UUID=aa72e154-0f87-47ea-bf33-c17db827f78e ro rootdelay=10
# initrd .img for Intel microcode
initrd /boot/microcode.img
}
# Generic initramfs identified by UUID (w/ Intel microcode initrd .img)
menuentry "GNU/Linux, Initrd.img 5.2.8 (LFS-JWS-9.0-Aug19)" {
linux /boot/vmlinuz-5.2.8-lfs-9.0-rc1-systemd
root=UUID=aa72e154-0f87-47ea-bf33-c17db827f78e ro rootdelay=10
initrd /boot/microcode.img /boot/initrd.img-5.2.8
}
As I stated before, only that last menu entry successfully manages to
find the root partition despite all four having been configured the same.
I will also display the contents of my /boot partition:
config-5.2.11 *grub * microcode.img
vmlinuz-5.2.11-lfs-9.0-systemd
config-5.2.8 initrd.img-5.2.11 System.map-5.2.11
vmlinuz-5.2.8-lfs-9.0-rc1-systemd
*efi * initrd.img-5.2.8 System.map-5.2.8
(efi is the mounted directory for sda1 containing the grubx64.efi file
and grub is the directory containing grub.cfg and unicode.pf2)
Please let me know what other information to provide so that you can
provide me assistance, and as always thanks guys!
Jared Stevens
--
http://lists.linuxfromscratch.org/listinfo/blfs-support
FAQ: http://www.linuxfromscratch.org/blfs/faq.html
Unsubscribe: See the above information page