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 |
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
Are you new to LinuxQuestions.org? Visit the following links:
Site Howto |
Site FAQ |
Sitemap |
Register Now
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
 |
GNU/Linux Basic Guide
This 255-page guide will provide you with the keys to understand the philosophy of free software, teach you how to use and handle it, and give you the tools required to move easily in the world of GNU/Linux. Many users and administrators will be taking their first steps with this GNU/Linux Basic guide and it will show you how to approach and solve the problems you encounter.
Click Here to receive this Complete Guide absolutely free. |
|
 |
08-06-2011, 06:32 PM
|
#1
|
|
LQ Newbie
Registered: Aug 2011
Location: USA/CO
Distribution: FC-14
Posts: 11
Rep:
|
Cannot get a LFS 6.8 usb build to boot
I've successfully compiled LFS onto a usb drive (as far as I can tell with no errors) and now when I try to boot into the usb drive I get nothing. I've tried to add a manual entry to my host system's GRUB (v.97) and it says that it couldn't mount the partition GRUB error 17.
I've also tried to use this plop boot manager to boot into the USB, but when I try to it just freezes;the keyboard does not work and the screen is stuck on the plop boot manager main screen. I have to power down to recover from this.
I don't seem to get any other errors so I'm stuck as to what is going wrong here.
Here's some info:
(sdb is my usb device)
/dev/sdb1 -> /boot
/dev/sdb2 -> swap
/dev/sdb3 -> /
In fdisk all the partitions show up with id 83. I know sdb1 and sdb3 are ext3 as I did the proper mkfs.ext3 to them in the beginning.
My fstab:
Code:
# file system mount-point type options dump fsck
#
/dev/sdb3 / ext3 defaults 1 1
/dev/sdb2 swap swap pri=1 0 0
/dev/sdb1 /boot ext3 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 /dev/shm tmpfs defaults 0 0
And here's a snippet of the /boot/grub/grub.cfg:
Code:
### BEGIN /etc/grub.d/10_linux ###
menuentry "GNU/Linux, with Linux 2.6.37-lfs-6.8" --class gnu-linux --class gnu --class os {
insmod ext2
set root='(hd1,1)'
search --no-floppy --fs-uuid --set 6d76e32e-d827-4990-a4f0-2fece319ec43
echo Loading Linux 2.6.37-lfs-6.8 ...
linux /vmlinux-2.6.37-lfs-6.8 root=/dev/sdb3 ro
}
menuentry "GNU/Linux, with Linux 2.6.37-lfs-6.8 (recovery mode)" --class gnu-linux --class gnu --class os {
insmod ext2
set root='(hd1,1)'
search --no-floppy --fs-uuid --set 6d76e32e-d827-4990-a4f0-2fece319ec43
echo Loading Linux 2.6.37-lfs-6.8 ...
linux /vmlinux-2.6.37-lfs-6.8 root=/dev/sdb3 ro single
}
### END /etc/grub.d/10_linux ###
I am 99% sure that the relevant USB drivers and SCSI drivers are built into the kernel not as modules. I can give the .config file but that is quite large so I'm leaving it out.
What's going on?
Additionally, I ran this boot info script from sourceforge, it outputted this
=> Grub2 (v1.97-1.98) is installed in the MBR of /dev/sdb and looks at sector
1 of the same hard drive for core.img. core.img is at this location and
looks in partition 1 for /grub.
So I think that means that GRUB is installed and is finding things to an extent within my usb drive.
Also, when I try doing the step in 8.4.3 of the V-6.8 LFS book to test my GRUB configuration, I get nowhere. In my host system, which is running legacy GRUB, I type "root (hd1,1)" in grub and it says unknown Filesystem, partition type 0x83. Then if I try to do the kernel line it says cannot mount partition.
Is there some kind of log file maybe that would give more info on any other errors that might help diagnose this problem?
Last edited by unitedfollowers; 08-07-2011 at 04:54 PM.
|
|
|
|
08-13-2011, 02:15 PM
|
#2
|
|
LQ Newbie
Registered: Aug 2011
Location: USA/CO
Distribution: FC-14
Posts: 11
Original Poster
Rep:
|
Progress
So I formatted the USB drive, and started over with LFS from chapter 6. This time I only used two partitions:
/dev/sdb1 --> /
/dev/sdb2 --> swap
I made my new fstab accordingly. I've gotten all the way back to the point I was with my first try. Then when I tried to use GRUB to boot into the USB drive with the root as (hd1,1) I got the same error as before. Then I changed it to (hd1,0) to see what would happen and I got somewhere. Then I got a kernel panic.
Code:
VFS: Unable to mount root fs via NFS, trying floppy
VFS: Cannot open root device "sdb1" or unknown block (2,0)
Please eppend a correct "root=" boot option here are available partitions:
0800 sda driver:sd
0801 sda1
0802 sda2
0803 sda3
0b00 sr0 driver:sr
kernel panic - not syncing, unable to mount root fs on unknown block (2,0)
My Legacy GRUB menu.lst looks like this for LFS:
Code:
title LFS
root (hd1,0)
kernel /boot/vmlinux-2.6.37-lfs-6.8 root=/dev/sdb1 ro
Fstab:
Code:
# Begin /etc/fstab
# file system mount-point type options dump fsck
#
/dev/sdb1 / ext3 defaults 1 1
/dev/sdb2 swap swap pri=1 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 /dev/shm tmpfs defaults 0 0
# End /etc/fstab
I've looked around on these forums and seen other's problems with kernel panic. They've tried things like changed the sd to hd but I've tried the root line with sdb1,sdb,and hdb1 with no result. I know sdb1 IS ext3 and I know the kernel has ext3 compatibility built in.
It seems that it really does not like my partition for some reason.
Also something that is perplexing me, GRUB seems to consider (hd1,0) ext2fs and hd1,1 as unknown. This is strange as hd1,1 (or sdb1) is ext3 by cfdisk and other utilites. I also have ext2 build into the kernel.
Any tips?
Last edited by unitedfollowers; 08-13-2011 at 03:16 PM.
|
|
|
|
08-14-2011, 03:53 AM
|
#3
|
|
LQ Veteran
Registered: Sep 2003
Location: the Netherlands
Distribution: lfs, debian, rhel
Posts: 8,703
|
Hi,
Are you sure you need to use sd b in your configuration files?
I've never created or used a bootable USB device, but looking at the info you posted it looks like it is picked up as sd a (which sounds kinda logical):
Code:
.
Please eppend a correct "root=" boot option here are available partitions:
0800 sda driver:sd
0801 sda1
0802 sda2
0803 sda3
.
Versus:
Code:
root (hd1,0)
kernel /boot/vmlinux-2.6.37-lfs-6.8 root=/dev/sdb1 ro
and
/dev/sdb1 / ext3 defaults 1 1
/dev/sdb2 swap swap pri=1 0 0
Hope this helps.
|
|
|
|
08-14-2011, 01:18 PM
|
#4
|
|
LQ Newbie
Registered: Aug 2011
Location: USA/CO
Distribution: FC-14
Posts: 11
Original Poster
Rep:
|
The sda partitions belong to my host harddrive, NTFS, an LVM, and a /boot. They are not partitions on the usb.
|
|
|
|
08-14-2011, 01:28 PM
|
#5
|
|
LQ Veteran
Registered: Sep 2003
Location: the Netherlands
Distribution: lfs, debian, rhel
Posts: 8,703
|
Hi,
Quote:
Originally Posted by unitedfollowers
The sda partitions belong to my host harddrive, NTFS, an LVM, and a /boot. They are not partitions on the usb.
|
True, but that is during the build.
Once you boot from the USB device it could be seen as the first device present and thus be sda instead of sdb.
|
|
|
|
08-14-2011, 07:42 PM
|
#6
|
|
LQ Newbie
Registered: Aug 2011
Location: USA/CO
Distribution: FC-14
Posts: 11
Original Poster
Rep:
|
With root still as (1,0), I've changed the GRUB root line to use sda1, sda2, and sda3. This confirmed my suspicion that these partitions were of my host system's hard-drive, and not of the USB, as sda1 was reported as NTFS (my windows partition), sda2 as unknown (as it was the LVM), and sda3 as the /boot for my fedora system. That was a good thought though, but still I only made two partitions on the USB drive that filled up the entire capacity so there was no way it could have been sda with three partitions.
I did change the fstab accordingly when I used the sda partitions.
Maybe I did something wrong when I set up the USB device?
First I unmounted the USB storage (as its automounted upon detection) and then ran fdisk on /dev/sdb (my USB device). Here I created two primary partitions, one 3GB sized, and the other approx. 0.7GB. I then made sure that both were type 83 (a linux partition) and then made the 3GB partition bootable.
I then wrote the changes and left fdisk.
At this point the 3GB partition is the / and the .7 is for the swap.
Next, I used mke2fs -jv /dev/sdb1 (I also used mkfs.ext3 /dev/sdb1 on a previous attempt). Both gave no errors and completed themselves. Then I used mkswap on /dev/sdb2. No error there.
Finally, I mounted /dev/sdb1 to /mnt/lfs and followed the book to get to the point where I am now and also used swapon on /dev/sdb2.
I'm starting to guess my USB drive is one of those that just don't work with this type of thing. Strange thing though, as I've used this universal USB installer from pendrivelinux and put Ubuntu on this same USB device before and gotten it to be able to boot (though it stopped working a couple boots after).
A further thing, when I verify the partition table in fdisk on /dev/sdb currently it gives me this:
Code:
Partition 1: previous sectors 6293503 disagrees with total 6289728
Partitions 2: cylinder 1018 greater than maximum 1017
Partition 2: previous sectors 7823295 disagrees with total 7820134
Remaining 2047 unallocated 512-byte sectors
I haven't played with partitions since I originally used fdisk to set the device up in the beginning. Maybe this is where the partitions problems are arising due to weird allocation of the sectors? (just shooting in the dark here, I have no real idea what the above means)
Last edited by unitedfollowers; 08-14-2011 at 08:03 PM.
|
|
|
|
08-15-2011, 01:51 AM
|
#7
|
|
LQ Veteran
Registered: Sep 2003
Location: the Netherlands
Distribution: lfs, debian, rhel
Posts: 8,703
|
Hi,
As I stated in one of my previous replies, I never tried to make a bootable USB device.....
If I do a quick search on creating a bootable USB device I do notice that it isn't as simple as installing an OS and setting up a bootloader (grub in this case). For one your BIOS must be able to handle this (which it probably does, you do mention running Ubuntu from an USB device). And I do believe you need to create an image that is put on the USB device.
WIKI - Live USB
You might want to do a search on linux create bootable usb and see what is involved.
Hope this helps.
|
|
|
1 members found this post helpful.
|
08-15-2011, 07:49 AM
|
#8
|
|
LQ Newbie
Registered: Aug 2011
Location: USA/CO
Distribution: FC-14
Posts: 11
Original Poster
Rep:
|
I've tried everything but realizing that haha, thanks that's what I should have done in the beginning. I'll try again after some research this weekend
|
|
|
|
08-15-2011, 08:19 AM
|
#9
|
|
LQ Veteran
Registered: Sep 2003
Location: the Netherlands
Distribution: lfs, debian, rhel
Posts: 8,703
|
You're welcome 
|
|
|
|
09-05-2011, 08:13 PM
|
#10
|
|
LQ Newbie
Registered: Aug 2011
Location: USA/CO
Distribution: FC-14
Posts: 11
Original Poster
Rep:
|
Update Again
Finally got somewhere I believe, three weeks later (I've been busy so...) So I think I found out that the fdisk verify errors I got were a factor on why LFS on bootup detected my sdb partition as unknown. I think the problem was that the partition allocations didn't match up to the cylinder and cylinders designated to one partition ran into the next, resulting in a messed up boot up process. So I redid my partitions with Gparted and aligned to cylinders, and now on LFS boot up I get further, I think. I still get a kernel panic, but at least now the list of available partitions shows my sdb1 and sdb2 (/ and swap respectively) partitions. I also get a ton more output to the boot up screen, talking about USB devices (keyboard and mouse) and talking about the USB mass storage device that holds LFS. However, I'm still getting kernel panics; When supplied with root=/dev/sdb1 and root as (1,0) it can't mount the rootfs or block (2,0). What I don't get is why its saying block 2,0...I'm on 1,X am I not? Or is this something else?
I've also seen that others have posted about LFS and USB sticks. The two summaries I've deduced is to make a bootable image like druuna linked to or make an initrd and pass it to GRUB (there was one poster that said he got LFS to work on a USB but the key part was getting the initrd right).
I'd like to give making an initrd a try, as the image is mostly read only with write operations complicating the matter.
So I've looked into what it takes to make an initrd, and it seems similar to an image in that it encompasses a copy of your system. But I am stuck on how to create the initrd. I've read that there's scripts available but you need to compile Busybox to make the scripts work, which I'm not so sure is necessary. Is there a way to make an initrd without busybox-related scripts?
|
|
|
|
09-06-2011, 04:11 AM
|
#11
|
|
LQ Veteran
Registered: Sep 2003
Location: the Netherlands
Distribution: lfs, debian, rhel
Posts: 8,703
|
Hi,
Quote:
Originally Posted by unitedfollowers
I'd like to give making an initrd a try, as the image is mostly read only with write operations complicating the matter.
So I've looked into what it takes to make an initrd, and it seems similar to an image in that it encompasses a copy of your system. But I am stuck on how to create the initrd. I've read that there's scripts available but you need to compile Busybox to make the scripts work, which I'm not so sure is necessary. Is there a way to make an initrd without busybox-related scripts?
|
This doesn't seem to be LFS specific and I would suggest you post a new thread which contains this in Linux - General to get the exposure it deserves.
Hope this helps.
PS: There is a LFS hint about initrd, but it does use busybox: initrd for LFS
|
|
|
|
09-06-2011, 04:05 PM
|
#12
|
|
Member
Registered: Sep 2011
Posts: 96
Rep:
|
hi guys, this is my first post in LQ
Ehm, just idea, have you tried to add "rootdelay=nn" as your kernel parameter into your boot loader? "nn" is number in seconds. It will delay your boot just when it about to reach root filesystem root pivoting/mounting.
I read many times that distros like Tiny core use that trick to allow Linux kernel USB subsystem to completely finish USB initialization before proceeding into loading Linux (in this, tiny core is installed in USB flash disk)
|
|
|
2 members found this post helpful.
|
09-06-2011, 11:08 PM
|
#13
|
|
LQ Newbie
Registered: Aug 2011
Location: USA/CO
Distribution: FC-14
Posts: 11
Original Poster
Rep:
|
Success!
I have finally managed to get into my LFS system on my USB stick thanks to the help of posters! It turns out the last piece I needed was to add rootdelay=10 to the kernel line in GRUB to allow the USB stick to settle and initialize and it worked! Thanks for your time in helping me out! I just have a linux console fail error which I can resolve rather quickly.
Just as a recap...
My first problem was that when I used fdisk the partitions didn't align to the cylinder so one partition ran into another. This is probably what caused my partition to be unknown during bootup time. This maybe just relevant to my USB stick.
The second problem was that I needed to add rootdelay to the kernel line in GRUB so that the USB drive could settle and thus the rootfs could then be found.
Also, in my case, my fstab needed to be sdb and not sda as even when I booted into LFS it still saw sda as my host system's hdd and sdb as my USB stick LFS drive.
This was done without images or an initrd.
Special Thanks to mulyadi for saving from going to extra lengths to get my system to boot!
Last edited by unitedfollowers; 09-06-2011 at 11:09 PM.
|
|
|
|
09-06-2011, 11:35 PM
|
#14
|
|
Member
Registered: Sep 2011
Posts: 96
Rep:
|
Hi unitedfollowers
Glad you made it  Well sometimes we could borrow knowledge from other distros....and sometimes that could be very valuable.
Regarding device name, I suggest to use label or UUID instead of names like "sda". That way, no matter how your storages are configured, it would be the same. AFAIK, to support block name laballing, you would need blkid. There could be more.....
|
|
|
|
| Thread Tools |
Search this Thread |
|
|
|
Posting Rules
|
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts
HTML code is Off
|
|
|
All times are GMT -5. The time now is 09:07 PM.
|
|
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.
|
Latest Threads
LQ News
|
|