LinuxQuestions.org
Download your favorite Linux distribution at LQ ISO.
Home Forums Tutorials Articles Register
Go Back   LinuxQuestions.org > Forums > Linux Forums > Linux - Distributions > Linux From Scratch
User Name
Password
Linux From Scratch This Forum is for the discussion of LFS.
LFS is a project that provides you with the steps necessary to build your own custom Linux system.

Notices


Reply
  Search this Thread
Old 08-17-2011, 01:19 PM   #16
kostya
Member
 
Registered: Mar 2010
Location: Moscow, Russia
Distribution: Ubuntu Studio, antix(mepis), Fedora, FreeBSD
Posts: 174
Blog Entries: 5

Rep: Reputation: 18

Hey, I finally GOT it boot.

Though I was booting from GRUB2 shell, supplying it all line by line as follows:
Quote:
set root='(hd0,1)'
linux /linux64 rw root=iso:/dev/disk/by-uuid/0451-5CDC:/lfslivecd.iso rootfstype=vfat rootdelay=20
initrd /initramfs_data64.cpio.gz
boot
It must be some bugs in this relatively new GRUB2 that it can't boot THE SAME from config file. But this way it does boot it.

So the order, it seems, must be this: kernel, then initrd, and not the other way around.
Just maybe try to supply the bold part right after "linux" and not after "append". Perhaps it will work this way?

Cause normally initrd is the very last thing to supply, so it ignores the rest of the line.
Well try this way, perhaps.
 
Old 08-17-2011, 01:29 PM   #17
kostya
Member
 
Registered: Mar 2010
Location: Moscow, Russia
Distribution: Ubuntu Studio, antix(mepis), Fedora, FreeBSD
Posts: 174
Blog Entries: 5

Rep: Reputation: 18
Quote:
Originally Posted by mbzadegan View Post
Tnx , very good hints ,

I passed that state with root=iso:/dev/disk/by-uuid/07E6-1968:/lfslivecd.iso but i hanged on another state :

My New Error :

/init: line 172: mknod: Command not found
mount: special device /dev/root does not exist
Kernel panic - not syncing: Attempted to kill init!


My syslinux.cfg :

label linux
root (hd0,1)
kernel linux
append initrd=initramfs_data.cpio.gz rw root=iso:/dev/disk/by-uuid/07E6-1968:/lfslivecd.iso rootfstype=vfat rootdelay=20

Another Thanks for your very good hints .
Another option is, perhaps, place the "initrd=..." part in the very end of your "append" command line. That will make sure that the rest of it will be passed to the kernel:
Quote:
append rw root=iso:/dev/disk/by-uuid/07E6-1968:/lfslivecd.iso initrd=initramfs_data.cpio.gz
Another interesting bit of information is found HERE and it says:
Quote:
Starting with version 3.71, an initrd can be specified in a separate statement (INITRD) instead of as part of the APPEND statement. This functionally appends "initrd=initrd_file" to the kernel command line.
Which means your configuration can be now like this:
Quote:
kernel ...
initrd ...
append ...(here goes this long kernel argument line about root=iso etc.)

Last edited by kostya; 08-17-2011 at 01:36 PM.
 
Old 08-17-2011, 01:34 PM   #18
hoes
Member
 
Registered: Sep 2005
Distribution: debian, linux from scratch
Posts: 190

Rep: Reputation: 51
I guess grub just doesn't know the append and the options need to be added to the kernel line.
 
Old 08-17-2011, 01:54 PM   #19
mbzadegan
Member
 
Registered: Jul 2011
Location: Beside of Andromeda !
Distribution: OpenBSD, RedHat, Arch, ..
Posts: 90

Original Poster
Rep: Reputation: Disabled
With changing of post #16 i got same error (post #3)
Therefore i got best result on post #13 config but unfortunately with kernel panic
 
Old 08-17-2011, 01:58 PM   #20
kostya
Member
 
Registered: Mar 2010
Location: Moscow, Russia
Distribution: Ubuntu Studio, antix(mepis), Fedora, FreeBSD
Posts: 174
Blog Entries: 5

Rep: Reputation: 18
Quote:
Originally Posted by hoes View Post
I guess grub just doesn't know the append and the options need to be added to the kernel line.
Right, the "append" command is no more used there. On the other hand, kernel options to be passed to the kernel are just passed on to it on the same line, just as it always used to be.

What bothers me is that, when it loads from the configuration file, it doesn't even load the initrd, as I can see from the boot message, which ends up in kernel panic, prior to which it says that it "can't mount the device "/dev/disk/by-uuid/...etc." Well if initrd WAS loaded it WOULD find the device with no problem.

And WTH, it DOES boot it all when I exit the menu and supply it all from the command prompt! Perhaps, I should email to the GRUB2 developers about this issue?
 
Old 08-17-2011, 01:59 PM   #21
kostya
Member
 
Registered: Mar 2010
Location: Moscow, Russia
Distribution: Ubuntu Studio, antix(mepis), Fedora, FreeBSD
Posts: 174
Blog Entries: 5

Rep: Reputation: 18
Quote:
Originally Posted by mbzadegan View Post
With changing of post #16 i got same error (post #3)
Therefore i got best result on post #13 config but unfortunately with kernel panic
How about my last suggestion from post #17?
 
1 members found this post helpful.
Old 08-17-2011, 02:50 PM   #22
mbzadegan
Member
 
Registered: Jul 2011
Location: Beside of Andromeda !
Distribution: OpenBSD, RedHat, Arch, ..
Posts: 90

Original Poster
Rep: Reputation: Disabled
Dear kostya,
i got same kernel panic with your last suggestion #17 .
I think that i must correct translate of set root='(hd0,1)' into syslinux commands .
because at the start of booting process i got the error of missing root parameters !! ( before kernel loading )
 
Old 08-18-2011, 12:05 AM   #23
kostya
Member
 
Registered: Mar 2010
Location: Moscow, Russia
Distribution: Ubuntu Studio, antix(mepis), Fedora, FreeBSD
Posts: 174
Blog Entries: 5

Rep: Reputation: 18
Quote:
Originally Posted by mbzadegan View Post
Dear kostya,
i got same kernel panic with your last suggestion #17 .
I think that i must correct translate of set root='(hd0,1)' into syslinux commands .
because at the start of booting process i got the error of missing root parameters !! ( before kernel loading )
Right!
In syslinux syntax it must be, using the new syntax, like this I think:
Code:
root (hd0,0)
kernel /path/to/linux
initrd /path/to/initramfs...gz
append rw root=iso:/dev/disk/by-uuid/07E6-1968:/lfslivecd.iso rootfstype=vfat rootdelay=20
Because in GRUB2 the partition number in (hd0,1) starts from 1, but in other older bootloaders it starts from "0"! So the 1st partition on the first device will be, not (hd0,1) but (hd0,0) I guess.
Worth trying anyway .

PS. And reading the documentation is always a good idea . Not the whole thing, maybe, but some relevant parts at least.

Last edited by kostya; 08-18-2011 at 12:11 AM.
 
1 members found this post helpful.
Old 08-18-2011, 01:37 AM   #24
mbzadegan
Member
 
Registered: Jul 2011
Location: Beside of Andromeda !
Distribution: OpenBSD, RedHat, Arch, ..
Posts: 90

Original Poster
Rep: Reputation: Disabled
My syslinux sintax is :

label linux
root (hd0,0)
kernel linux
initrd initramfs_data.cpio.gz
append rw root=iso:/dev/disk/by-uuid/07E6-1968:/lfslivecd.iso rootfstype=vfat rootdelay=20

And when start boot processes ( before kernel loading ) got me these ERROR

unknown keyword in configuration file: root
boot:
Loading linux....
Loading initramfs_data.cpio.gz....................ready
...
...
...
/init: line 172: mknod: command not found
mount: special device /dev/root does not exist
/init: line 293: ./lib/ld-linux.so.2: No such file or directory
/init: line 294: /.root/../lib/ld-linux.so.2: No such file or directory
/init: line 294: exec: /.root/../lib/ld-linux.so.2: No such file or directory

Kernel panic - not syncing: Attempted to kill init!
 
Old 08-18-2011, 02:45 AM   #25
kostya
Member
 
Registered: Mar 2010
Location: Moscow, Russia
Distribution: Ubuntu Studio, antix(mepis), Fedora, FreeBSD
Posts: 174
Blog Entries: 5

Rep: Reputation: 18
Right, syslinux doesn't support "root" argument at all...

Very strange, though! From the boot message it is clear that initrd IS loaded because init is running and it is inside initrd. And yet it can't find the ld-linux.so.2, which must be there inside initrd, too.

Which makes us think that either initrd or kernel is defective. We could, of course, suggest that the computer has not enough RAM, which results in losing data, but that's hardly possible in a computer which can boot from a USB stick...
So, what is the md5sum of your initrd and kernel? I will compare with mine then.
This will compare the original initrd with what is on your USB stick
Quote:
diff /path/to/initrd USBSTICK/initrd
And this will calculate the checksum:
Quote:
md5sum initrd
I must also ask, when you're done with initrd, to try this simple config if you haven't done that already:
Code:
label linux
kernel linux
append rw root=iso:/dev/disk/by-uuid/07E6-1968:/lfslivecd.iso rootfstype=vfat rootdelay=20 initrd=initramfs_data.cpio.gz
I'm asking this again, because I tried it in all various combinations with slightest differences before I got it to boot. So I believe every letter may be essential seeing how tricky it is to boot from USB stick. And it will be a pity to drop it when we are so close!

Last edited by kostya; 08-18-2011 at 03:23 AM.
 
1 members found this post helpful.
Old 08-18-2011, 09:16 AM   #26
mbzadegan
Member
 
Registered: Jul 2011
Location: Beside of Andromeda !
Distribution: OpenBSD, RedHat, Arch, ..
Posts: 90

Original Poster
Rep: Reputation: Disabled
@ first i tested MD5 of every files with original and never seen any different .
Then i tested your simple config and got same kernel panic !!
meanwhile,i tested these menu.lst with GRUB and got same kernel panic error !!

title LFS_USB_Booting
set root='(hd0,1)'
kernel /linux rw root=iso:/dev/disk/by-uuid/6E17-68F1:/lfslivecd.iso rootfstype=vfat rootdelay=20
initrd /initramfs_data.cpio.gz
boot


which of your grub config you tested OK ?
Tnx for your hints ...
 
Old 08-18-2011, 03:49 PM   #27
kostya
Member
 
Registered: Mar 2010
Location: Moscow, Russia
Distribution: Ubuntu Studio, antix(mepis), Fedora, FreeBSD
Posts: 174
Blog Entries: 5

Rep: Reputation: 18
Which version of GRUB are you using?
I'm using GRUB 1.99 (GRUB2) and the syntax "set root='(hd0,1)'" is for GRUB2. For GRUB it would be "root (hd0,0)".
And in GRUB2 instead of keyword "kernel" it uses "linux" and curly brackets are used for each menu entry.

OK, first here are my md5sums so you can compare what md5sums you got:
Quote:
ae824b594c48bff53399082fea093acd linux
07ddbe3e7d480eef416b17e93659a140 initramfs_data.cpio.gz
b44537e4b5ceb72601cdb4dc7e820828 lfslivecd-x86-6.3-r2145-min.iso
Now here is my GRUB2 config part for LFS LiveCD:
Quote:
menuentry "LFS" {
set root='(hd0,1)'
linux /linux64 rw root=iso:/dev/disk/by-uuid/0451-5CDC:/lfslivecd.iso rootfstype=vfat rootdelay=20
initrd /initramfs_data64_cpio.gz
}
As you can see, this GRUB2 syntax is different from GRUB legacy, for which it must be thus:
Quote:
root (hd0,0)
kernel /linux64 rw root=iso:/dev/disk/by-uuid/0451-5CDC:/lfslivecd.iso rootfstype=vfat rootdelay=20
initrd /initramfs_data64_cpio.gz
(notice that you need not the word "boot" in config, you only need it on command line prompt as described below).

And the last but not the least. It is advisable to escape from the GRUB menu to GRUB prompt and supply these argument line by line. It is better for if device (hd0,0) is wrong, it will tell you so and you'll be able to supply the correct device. Print HELP and it will give you the list of commands. In GRUB 2 the command `ls` shows you all available drives.
You then supply each line (root, kernel, initrd) from your config followed by <Enter>, after the last line followed by <Enter> you type "boot" and press <Enter>.
This was the only way I got it to boot correctly for GRUB2 would only receive full kernel command line from prompt. From config it doesn't seem to notice it or fails to load initrd, don't know why.

So after all these pains I'm a little bit surprised: WHY did you choose the LFS LiveCD at all??
I found it to be rather poor stuff for a live cd, it couldn't even find a driver for my network card. There are other LiveCD distros offering far better functionality either as Desktop or as a rescue kit, and no problems booting them from USB.

Last edited by kostya; 08-18-2011 at 03:52 PM.
 
1 members found this post helpful.
Old 02-10-2012, 03:36 AM   #28
mardon86
LQ Newbie
 
Registered: Feb 2012
Location: Bandung, Indonesia
Distribution: Archlinux, LinuxMINT, PuppyLinux
Posts: 2

Rep: Reputation: Disabled
Im aiming to build LFS with LFS-LiveCD as host. But im using a netbook which doesnt have an optical drive. And ive found an easy way to boot LFS-LiveCD from a thumbdrive.
Im using gujin.

1. download and extract the gujin (install-2.8.4.tar.gz)
$wget http://sourceforge.net/projects/guji...ar.gz/download
$tar -xvzf install-2.8.4.tar.gz

2. copy install/gujin to /usr/bin
#cp ./install/gujin /usr/bin

3. install gujin to the iso file.
$gujin lfslivecd-x86-6.3-r2145-min.iso

4. cat the iso file to your thumbdrive
#cat lfslivecd-x86-6.3-r2145-min.iso > /dev/sdc
#sync

5. boot your thumbdrive

6. after the error is occured and the system is falling back to shell, make a symbolic link /dev/lfs-cd to /dev/sdc
#ln -s /dev/sdc /dev/lfs-cd
#exit
 
Old 01-04-2013, 03:49 AM   #29
jiapei100
Member
 
Registered: Jan 2005
Location: Surrey, BC, Canada
Distribution: Ubuntu 12.04
Posts: 70

Rep: Reputation: 15
Hi:


I've got exactly the same difficulty in having a USB flash boot up.

I strictly followed LFS manual and have everything built from scratch on a USB flash. I thought if I could select the correct bootable device, I should be able to boot from that device directly. However, what I obtained is just the following picture:
http://visionopen.com/questions/lfs_...flash_boot.jpg

My configuration /boot/grub/grub.cfg on hd1 (I've got 4 hard drives hd0, hd1, hd2, hd3) of booting LFS is also pasted:
Quote:
menuentry "MyLinux distribution (on /dev/sdd1)" --class gnu-linux --class gnu --class os {
insmod gzio
insmod part_msdos
insmod ext2
set root='(hd3,msdos1)'
search --no-floppy --fs-uuid --set=root a2d0f92a-eca8-4121-a998-99c70d4df67b
echo 'Loading MyLinux ...'
linux /boot/vmlinuz-3.7.1-lfs-SVN-20130102 root=UUID=a2d0f92a-eca8-4121-a998-99c70d4df67b ro recovery nomodeset
echo 'Loading MyLinux ...'
}

1) By strictly following LFS manual, there is no initrd produced, but only vmlinuz .
2) from grub terminal, I can see my device has been correctly configured, say: /dev/sdd1 is just (hd3, msdos1), which is of UUID a2d0f92a-eca8-4121-a998-99c70d4df67b


I seriously have no idea how to make this USB flash (with LFS built) boot up. Please help.
Thank you very much.


Best Regards
Pei
 
Old 01-04-2013, 07:12 AM   #30
spiky0011
Senior Member
 
Registered: Jan 2011
Location: PLANET-SPIKE
Distribution: /LFS/Debian
Posts: 2,511
Blog Entries: 1

Rep: Reputation: 412Reputation: 412Reputation: 412Reputation: 412Reputation: 412
Hi

Is this the grub.cfg from lfs or host
 
  


Reply



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off



Similar Threads
Thread Thread Starter Forum Replies Last Post
[SOLVED] boot problem after installing LFS on a USB stick vmsda Linux From Scratch 1 03-28-2011 10:47 AM
Booting from USB stick Completely Clueless Linux - Hardware 2 08-25-2010 02:03 PM
GRUB: Booting from USB; Creating the Ultimate Bootable USB Stick Jinouchi Linux - Software 2 04-07-2010 04:17 PM
Booting from a USB stick LordAnta Linux - Hardware 2 06-22-2008 09:43 AM
Boot from USB stick if no booting USB in Bios 1kyle SUSE / openSUSE 1 03-26-2007 12:24 AM

LinuxQuestions.org > Forums > Linux Forums > Linux - Distributions > Linux From Scratch

All times are GMT -5. The time now is 09:56 PM.

Main Menu
Advertisement
My LQ
Write for LQ
LinuxQuestions.org is looking for people interested in writing Editorials, Articles, Reviews, and more. If you'd like to contribute content, let us know.
Main Menu
Syndicate
RSS1  Latest Threads
RSS1  LQ News
Twitter: @linuxquestions
Open Source Consulting | Domain Registration