Re: Re: [gentoo-user] /dev/sda* missing at boot
Em 18/08/2011 23:27, Mark Knecht markkne...@gmail.com escreveu: On Thu, Aug 18, 2011 at 11:59 AM, fra...@gmail.com wrote: Hi, guys It is a shame, I know, but after several years using Gentoo, it is the first time I try to build a kernel without genkernel. And now I can't boot to that new kernel, it does not find (and really do not have a) /dev/sda* root partition (real-root); during the boot it stops, complaining about that, gives me the option to get a shell, from which I am able to see that there is no /dev/sda* . I have included everything SATA, so it looks like that is not a kernel problem, but a initramfs issue, I guess. What am I missing? Thanks a lot Francisco PS: my boot partition is sda2, sda3 is a swap partition, and everything else is in sda4. sda1 is not used (up to now) and this is my grub.conf : title Gentoo Linux 2.6.39-gentoo-r3 root (hd0,1) kernel /boot/kernel-genkernel-x86_64-2.6.39-gentoo-r3 ro root=/dev/ram0 init=/linuxrc real_root=/dev/sda4 vga=0x318 video=uvesafb:1024x768-32 nodevfs udev devfs=nomount quiet CONSOLE=/dev/tty1 initrd /boot/initramfs-genkernel-x86_64-2.6.39-gentoo-r3 Maybe I'm missing the obvious here but have you taken a copy of whatever config file was used/generated by genkernel and used that as a jumping off point for building your own kernel. kernel's a kernel's a kernel. What it is capable of doing is in the .config file. If genkernel doesn't give you a .config file - I've never used genkernel so I don't know what it does - then assuming you have the feature turned on you can get the running config using zcat /proc/config.gz. Save that to a new .config file, put it in the kernel source directory and you should be good to go. You can also use zcat /proc/config.gz on the install CD kernel if yuo boot from that. Save it to a disk and use it as the basis for creating your own config. HTH, Mark That's what I am doing right now. I am using genkernel to have something to boot on. Then I will try to find a way to optimize another one. Thanks Francisco
Re: Re: [gentoo-user] /dev/sda* missing at boot
Em 19/08/2011 07:09, Mick michaelkintz...@gmail.com escreveu: On Friday 19 Aug 2011 03:27:23 Mark Knecht wrote: On Thu, Aug 18, 2011 at 11:59 AM, fra...@gmail.com wrote: Hi, guys It is a shame, I know, but after several years using Gentoo, it is the first time I try to build a kernel without genkernel. And now I can't boot to that new kernel, it does not find (and really do not have a) /dev/sda* root partition (real-root); during the boot it stops, complaining about that, gives me the option to get a shell, from which I am able to see that there is no /dev/sda* . I have included everything SATA, so it looks like that is not a kernel problem, but a initramfs issue, I guess. What am I missing? Thanks a lot Francisco PS: my boot partition is sda2, sda3 is a swap partition, and everything else is in sda4. sda1 is not used (up to now) and this is my grub.conf : title Gentoo Linux 2.6.39-gentoo-r3 root (hd0,1) kernel /boot/kernel-genkernel-x86_64-2.6.39-gentoo-r3 ro root=/dev/ram0 init=/linuxrc real_root=/dev/sda4 vga=0x318 video=uvesafb:1024x768-32 nodevfs udev devfs=nomount quiet CONSOLE=/dev/tty1 initrd /boot/initramfs-genkernel-x86_64-2.6.39-gentoo-r3 Maybe I'm missing the obvious here but have you taken a copy of whatever config file was used/generated by genkernel and used that as a jumping off point for building your own kernel. kernel's a kernel's a kernel. What it is capable of doing is in the .config file. If genkernel doesn't give you a .config file - I've never used genkernel so I don't know what it does - then assuming you have the feature turned on you can get the running config using zcat /proc/config.gz. Save that to a new .config file, put it in the kernel source directory and you should be good to go. You can also use zcat /proc/config.gz on the install CD kernel if yuo boot from that. Save it to a disk and use it as the basis for creating your own config. If you no longer use genkernel it is likely that you do not need an initram. Build chipset and fs modules into the kernel. Other drivers you can choose if you want to build as modules. -- Regards, Mick I the case I don't need a initram, I guess that the grub line for parameter passing to the kernel would be empty. Am I wrong? I was just looking on how to build my own initram. What is it supposed to do anyway? Thanks Francisco
Re: Re: [gentoo-user] /dev/sda* missing at boot
On Fri, Aug 19, 2011 at 9:12 AM, fra...@gmail.com wrote: Em 19/08/2011 07:09, Mick michaelkintz...@gmail.com escreveu: On Friday 19 Aug 2011 03:27:23 Mark Knecht wrote: On Thu, Aug 18, 2011 at 11:59 AM, fra...@gmail.com wrote: Hi, guys It is a shame, I know, but after several years using Gentoo, it is the first time I try to build a kernel without genkernel. And now I can't boot to that new kernel, it does not find (and really do not have a) /dev/sda* root partition (real-root); during the boot it stops, complaining about that, gives me the option to get a shell, from which I am able to see that there is no /dev/sda* . I have included everything SATA, so it looks like that is not a kernel problem, but a initramfs issue, I guess. What am I missing? Thanks a lot Francisco P.S.: my boot partition is sda2, sda3 is a swap partition, and everything else is in sda4. sda1 is not used (up to now) and this is my grub.conf : title Gentoo Linux 2.6.39-gentoo-r3 root (hd0,1) kernel /boot/kernel-genkernel-x86_64-2.6.39-gentoo-r3 ro root=/dev/ram0 init=/linuxrc real_root=/dev/sda4 vga=0x318 video=uvesafb:1024x768-32 nodevfs udev devfs=nomount quiet CONSOLE=/dev/tty1 initrd /boot/initramfs-genkernel-x86_64-2.6.39-gentoo-r3 Maybe I'm missing the obvious here but have you taken a copy of whatever config file was used/generated by genkernel and used that as a jumping off point for building your own kernel. kernel's a kernel's a kernel. What it is capable of doing is in the .config file. If genkernel doesn't give you a .config file - I've never used genkernel so I don't know what it does - then assuming you have the feature turned on you can get the running config using zcat /proc/config.gz. Save that to a new .config file, put it in the kernel source directory and you should be good to go. You can also use zcat /proc/config.gz on the install CD kernel if yuo boot from that. Save it to a disk and use it as the basis for creating your own config. If you no longer use genkernel it is likely that you do not need an initram. Build chipset and fs modules into the kernel. Other drivers you can choose if you want to build as modules. I the case I don't need a initram, I guess that the grub line for parameter passing to the kernel would be empty. Am I wrong? I was just looking on how to build my own initram. What is it supposed to do anyway? The initramfs is a container for modules and stuff need to bring up the system before the mounts of / and /boot.If all the drivers are built-in to the kernel (or at least the minimum required drivers are built-in) then the initramfs isn't necessary. Passing parameters to the kernel is a different issue entirely. My grub.conf line is: kernel /vmlinuz-3.0.3-gentoo root=/dev/sda2 pata_it821x.noraid=1 with the pata_it821x driver built-in for the kenel to find a set of older IDE drives on the IT8212 card I have installed. IIRC the initramfs is built with the mkinitrd command. I haven't had to use it so I could be wrong.
Re: Re: [gentoo-user] /dev/sda* missing at boot
Em 19/08/2011 10:48, Alan McKinnon alan.mckin...@gmail.com escreveu: On Fri 19 August 2011 13:12:25 fra...@gmail.com did opine thusly: I the case I don't need a initram, I guess that the grub line for parameter passing to the kernel would be empty. Am I wrong? Yes. Using or not using kernel parameters has nothing to do with whether you use an initramfs or not. It's the initrd line in grub you do not need. I was just looking on how to build my own initram. What is it supposed to do anyway? First, it's initramfs (the previous incarnation was initrd). You should use the correct name. An initramfs is a filesystems image stored on disk in a place that grub can find. It contains a kernel, essential drivers and other bits and pieces. When booting, grub finds the image, bangs it into memory and instructs the cpu to start executing at a known point. Why is this useful? For Gentoo it usually isn't (there are times when it is - see below). Binary distros like Ubuntu and Fedora absolutely require this. These distros do not know what hardware you have and what drivers you require, so they supply drivers for everything. But Ubuntu cannot possibly compile into the kernel every possible driver you might need to boot as the list would be huge (every known floppy, CD, USB, every known MFM, IDE, SATA, SCSI, netboot, Fibre and more driver for a start), so what they do instead is probe the hardware at boot time, find out what you have, and load the driver modules you DO need. This is the problem. The kernel wants to load disk drivers so that it can access the disk and continue booting. Where are the drivers? Well, they are on the disk. Oops, circular problem. The difficulty is not finding and loading drivers, it's how do you get the disk driver off the disk before you have the disk driver in memory? (think chicken and egg here). An initramfs solves this nicely. Grub shoved a disk image into memory when it booted. The kernel knows how to access it's memory it doesn't need a driver for that. And now the files containing the needed drivers are on a virtual disk *in memory*. The kernel loads them, and can now access the real physical disks. Lots more complicated stuff then happens, like getting rid of the virtual filesystem from the initramfs and mounting the real filesystem from disk at /, but that's beyond the scope of this mail. Gentoo mostly doesn't need any of this because you do know your hardware and can just compile your disk drivers into the kernel - this is the very thing that Ubuntu cannot do. Some Gentoo users still need an initramfs, such as booting off drives in a RAID configuration. They need the RAID drivers first to read the disks so use an initramfs to fix this little problem exactly as Ubunut fixes their problem. Make sense? Completely! Thanks a lot. So I guess that my problem is to find an appropriate pair of driver and hard disk operating mode. -- alan dot mckinnon at gmail dot com Thanks again Francisco
Re: Re: [gentoo-user] /dev/sda* missing at boot
Em 18/08/2011 16:08, András Csányi sayusi.a...@gmail.com escreveu: On 18 August 2011 18:59, fra...@gmail.com wrote: Hi, guys It is a shame, I know, but after several years using Gentoo, it is the first time I try to build a kernel without genkernel. And now I can't boot to that new kernel, it does not find (and really do not have a) /dev/sda* root partition (real-root); during the boot it stops, complaining about that, gives me the option to get a shell, from which I am able to see that there is no /dev/sda* . I have included everything SATA, so it looks like that is not a kernel problem, but a initramfs issue, I guess. What am I missing? Why have you choose this way? I mean, non-genkernel way. -- - - -- Csanyi Andras (Sayusi Ando) -- http://sayusi.hu -- http://facebook.com/andras.csanyi -- Trust in God and keep your gunpowder dry! - Cromwell That's recommended in the new install manual: http://www.gentoo.org/doc/en/handbook/handbook-amd64.xml?style=printablefull=1#book_part1_chap7 Look for item 7c. The alternative way is to use genkernel. Francisco
Re: Re: [gentoo-user] /dev/sda* missing at boot
Em 18/08/2011 16:13, Michael Mol mike...@gmail.com escreveu: On Thu, Aug 18, 2011 at 2:59 PM, fra...@gmail.com wrote: Hi, guys It is a shame, I know, but after several years using Gentoo, it is the first time I try to build a kernel without genkernel. And now I can't boot to that new kernel, it does not find (and really do not have a) /dev/sda* root partition (real-root); during the boot it stops, complaining about that, gives me the option to get a shell, from which I am able to see that there is no /dev/sda* . I have included everything SATA, so it looks like that is not a kernel problem, but a initramfs issue, I guess. If you've got a SATA controller, no frills, then all you *really* need is AHCI. Build that into your kernel if you're worried about having the right modules in initramfs. You can break it out into a module later if you like. Opinions differ as to how much stuff should be broken into modules vs being built-in to the kernel. I tend to build in everything absolutely needed for boot, myself. Some people build in just about everything, and some people build in almost nothing. There's no right way for every use case. Also, check your BIOS to see if it's running your SATA controller in some kind of IDE emulation mode. If it is, disable that. (Some motherboards let you choose between IDE and RAID, where RAID is AHCI mode. Others call IDE mode 'legacy', and still others might actually call the AHCI mode 'AHCI') Motherboards running SATA controllers in IDE emulation mode is an incredibly common thing: 17:18 beh 17:18 hda1 turned into sda1 17:19 IRule: Turn SCSI-generic support, or did you switch from legacy to AHCI in your BIOS? 17:20 shortcircuit: quiet, you -- :wq Thanks, gonna try it. Francisco
Re: Re: Re: [gentoo-user] /dev/sda* missing at boot
Em 18/08/2011 16:17, fra...@gmail.com escreveu: Em 18/08/2011 16:13, Michael Mol mike...@gmail.com escreveu: On Thu, Aug 18, 2011 at 2:59 PM, fra...@gmail.com wrote: Hi, guys It is a shame, I know, but after several years using Gentoo, it is the first time I try to build a kernel without genkernel. And now I can't boot to that new kernel, it does not find (and really do not have a) /dev/sda* root partition (real-root); during the boot it stops, complaining about that, gives me the option to get a shell, from which I am able to see that there is no /dev/sda* . I have included everything SATA, so it looks like that is not a kernel problem, but a initramfs issue, I guess. If you've got a SATA controller, no frills, then all you *really* need is AHCI. Build that into your kernel if you're worried about having the right modules in initramfs. You can break it out into a module later if you like. Opinions differ as to how much stuff should be broken into modules vs being built-in to the kernel. I tend to build in everything absolutely needed for boot, myself. Some people build in just about everything, and some people build in almost nothing. There's no right way for every use case. Also, check your BIOS to see if it's running your SATA controller in some kind of IDE emulation mode. If it is, disable that. (Some motherboards let you choose between IDE and RAID, where RAID is AHCI mode. Others call IDE mode 'legacy', and still others might actually call the AHCI mode 'AHCI') Motherboards running SATA controllers in IDE emulation mode is an incredibly common thing: 17:18 beh 17:18 hda1 turned into sda1 17:19 IRule: Turn SCSI-generic support, or did you switch from legacy to AHCI in your BIOS? 17:20 shortcircuit: quiet, you -- :wq Thanks, gonna try it. Francisco Forgot to say: I am able to boot the LiveCD and chroot to that partition. Now checking the kernel configuration, there's only SATA_ACARD_AHCI set up as a module, everything else AHCI is included in the kernel. Thanks anyway Francisco
Re: Re: Re: [gentoo-user] /dev/sda* missing at boot
On Thu, Aug 18, 2011 at 3:26 PM, fra...@gmail.com wrote: Em 18/08/2011 16:17, fra...@gmail.com escreveu: Forgot to say: I am able to boot the LiveCD and chroot to that partition. Now checking the kernel configuration, there's only SATA_ACARD_AHCI set up as a module, everything else AHCI is included in the kernel. Don't forget to check your BIOS. You might also consider enabling SCSI-generic (disk), which would catch ide-emulated disks and put a scsi interface around them in the kernel. (That'd be an emulation layer on top of an emulation layer, though, so far less than ideal) Finally, check that it's coming up as /dev/sda and not something like /dev/sdb. The initial scrolling of kernel messages might tell you what devices were detected and what names they were given. -- :wq