Booting LFS from USB stick ?
Hi everybody,
How can boot LFS from usb stick ? in other words i bootabled my usb stick with syslinux and i want to boot LFS from my USB stick ... |
Do you mean to boot ALL your LFS installation from a USB stick?
Or do you want to use the USB stick to boot the kernel and then use your LFS which is installed on your HDD? |
Dear kostya ,
I have not any HDD and i want to boot from my USB Stick , At first i bootabled my usb stick with syslinux and then copy all of LFS_LiveCD files to it , I configured syslinux.cfg with : label linux kernel linux root=UUID=07E6-1968 init=/sbin/init append initrd=initramfs_data.cpio.gz BUT when i booted from it these message was notified ! LFS LiveCD could not find its device. Dropping you to a shell. Please load the needed modules and, optionally, make /dev/lfs-cd a symlink pointing to the correct device. sh: no job control in this shell sh-3.2# |
I've made a bootable USB stick with LFS on it.
I used grub and installed it to the boot sector of the USB stick. The most important part was however the initial ramdisk. The key to the success was having the ramdisk run a script to find the root system. It kept mounint every system until it found the LFS root and changed to this. I reckon that the shell you get is part of the initial ramdisk. That means that you have initial ramdisk support and could make a ramdiks to find the root. I hope you find this quick reply a helpfull start. Maybe there are better methods (although I saw a similar method on a KNOPPIX CD). However, if you have some more question, feel free to ask. |
Ok , That's right .
It seems that i must definite root.ext2 to the root append of kernel . How i can do it with syslinux ? |
I doubt whether that really is the problem.
I wouldn't mind having a look at the initrd and come up with something. Can you give a link to the LFS bootable CD website? |
ftp://ftp.osuosl.org/pub/lfs-livecd/...-r2145-min.iso
Hint , When i put a LFS-LivCD on my cdrom the booting of USB Stick was TRUE , This means that LFS search for root.ext2 on CD-ROM , We must point it to USB Stick . |
The advantage of GRUB2 is that it can actually boot from ISO image. I've done that with a number of images of different LiveCD distros, all of them on one USB stick. I'll try now with LFS one and report back :).
BTW,This HOWTO gives general steps to follow. |
Tnx Dear kostya ,
Also , memdisk ( syslinux compatible ) can do it with iso images BUT unfortunately booting directly from iso image (with grub or memdisk) needs more memory . I don't know how i can mount /dev/hda1 as /dev/lfs-cd on kernel appending ... If we customize init file and force kernel to append USB stick , Booting will complete . |
Didn't work the way I tried it :).
OK, but there's a README on the LiveCD itself. It says these interesting things: Quote:
Code:
linux /boot/isolinux/linux rw root=iso:/dev/disk/by-uuid/0451-5CDC:/lfslivecd.iso rootfstype=vfat rootdelay=20 |
Well, it is the worst case possible:
it doesn't work the way the README suggests! In fact, the kernel (linux) doesn't understand not only such complicated command line as Quote:
Quote:
So I don't know where to move further, only maybe email the developers of the LiveCD and ask them this very question. Sorry :(. |
OK, I managed to boot it this way(part of grub2 config:
Quote:
We just CAN'T stop at this point where we are almost there ;). |
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 . |
I had a quick galnce at the init file, that creates your error.
It is strange that mknod is ran. You specified an iso file using "iso:*", which should do the trick. BTW, are you sure taht initrd should be on the append line as well? Could you perhaps try this: (that's grublike structure) root (hd0,1) initrd initramfs_data.cpio.gz kernel linux append rw root=iso:/dev/disk/by-uuid/07E6-1968:/lfslivecd.iso rootfstype=vfat rootdelay=20 The stupid thing is that mknod is not included in the image. However, normally this shouldn't bother you, because iso mounting doesn't need it. But that's just a sidenote. |
Unfortunately , it was same error .
|
Hey, I finally GOT it boot.
Though I was booting from GRUB2 shell, supplying it all line by line as follows: Quote:
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. |
Quote:
Quote:
Quote:
Quote:
|
I guess grub just doesn't know the append and the options need to be added to the kernel line.
|
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 |
Quote:
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? |
Quote:
|
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 ) |
Quote:
In syslinux syntax it must be, using the new syntax, like this I think: Code:
root (hd0,0) Worth trying anyway :). PS. And reading the documentation is always a good idea ;). Not the whole thing, maybe, but some relevant parts at least. |
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! |
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:
Quote:
Code:
label linux |
@ 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 ... |
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:
Quote:
Quote:
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. |
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 |
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:
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 |
Hi
Is this the grub.cfg from lfs or host |
Hi, spiky0011:
This grub.cfg is from the host. In fact, I've got 4 hard drives: Quote:
Quote:
|
Are you trying to boot off of host grub
|
Hi
I would copy grub.cfg > grub.cfg-old Then edit grub.cfg remove "UUID=a2d0f92a-eca8-4121-a998-99c70d4df67b ro recovery nomodeset " and put root=/dev/sddx root-delay=10 ro x being the root partition |
All times are GMT -5. The time now is 03:49 AM. |