Fuck yeah, kurwa!!!
After 3 days (1 of which I spent configuring grub), I got this shit to work!
----
OK, here's how it goes: Grub boots from /boot partition so we need to set root=(hd0,1) which corresponds to /boot (/dev/sdb1 in my case) - sorry druuna, it's opposite of what you said. Now that we reside on boot partition temporarily, it is the root. So vmlinuz is /vmlinuz-3.1-lfs-7.0 rather than /boot/vmlinuz-3.1-lfs-7.0. As an argument to vmlinuz we need to supply true root of out system - in my case /dev/sdb4. So in my example my external disk is layed out as follows:
Code:
# Begin /etc/fstab
# file system mount-point type options dump fsck
# order
/dev/sdb4 / ext4 defaults 1 1
/dev/sdb2 swap swap pri=1 0 0
/dev/sdb1 /boot ext4 defaults 0 0
/dev/sdb5 /home ext4 defaults 0 0
proc /proc proc defaults 0 0
sysfs /sys sysfs defaults 0 0
devpts /dev/pts devpts gid=4,mode=620 0 0
tmpfs /run tmpfs defaults 0 0
# End /etc/fstab
and proper way to configure
grub.cfg assuming you are using one external usb hdd is:
Code:
# Begin /boot/grub/grub.cfg
set default=0
set timeout=5
menuentry "GNU/Linux, Linux 3.1-lfs-7.0" {
insmod ext2
set root=(hd0,1)
linux /vmlinuz-3.1-lfs-7.0 root=/dev/sdb4 rootdelay=10 ro
}
btw. the trick that I saw in tutorial Druuna tutorial share - with using UUIDs in grub is not working for me. I get kernel panic when try to boot, so I assume it's unable to locate the root partition.
Well at this point I would really like to thank Druuna and Spiky, for pointing out a lot of things, that were really useful and eventually lead me to the right solution!