I've got several bootable usb installs of Centos, Fedora and Ubuntu. All work great now, I think i understand all the details about drive labeling, getting the initrd correct, and so forth. I was active in this list back in the Fedora 4 and 5 days, when these things were getting ironed out. Examples of the old posts (The COMPLETE guide to installing Linux Fedora Core 5 on your external HD, http://forums.fedoraforum.org/archive/index.php/t-119764.html,
On one of the external drives, I have esata port as well, and finally a new PC arrived that has an esata port built in. I've not tried this with Fedora 11 yet, but I have one running Centos-5.4, the external drive can boot from the USB connection, and while running, the esata drive is recognized and can be mounted easily. However, when I disconnect the USB and boot from the esata connection, the boot fails in a kernel panic because the /root drive cannot be found. I believe this is the exact same problem that afflicted efforts to boot from USB in the past, before we learned about adding the usb-storage modules into the mkinitrd command. Remember those days?
Anyway, I wonder if anybody knows what modules are needed in the initrd in order to boot from an esata drive. Currently, for the USB boot, the modules needed are specified in /etc/modprobe.conf, they are:
alias scsi_hostadapter ata_piix alias scsi_hostadapter1 usb-storage
If one of you knows the similar recipe for esata, I would very much appreciate it.
On Thu, Dec 31, 2009 at 1:14 PM, Paul Johnson pauljohn32@gmail.com wrote:
If one of you knows the similar recipe for esata, I would very much appreciate it.
You'll need a driver for the SATA controller that is built into your PC. SATA uses the ATA data stream over twisted pair serial cables. The controllers that drive the SATA cables are made by many different vendors; each of them needs its own specific driver.
If you're able to access the drive when you're booted up, try an lsmod to see if its driver is loaded as a module. It might be compiled directly into the kernel though - if it is, you'll need to configure a kernel build that makes a module for that driver.
If you intend to make an initrd that anyone can use, you'll need to build modules from all of the available SATA drivers and include them.
eSATA is just a regular SATA cable with a different kind of physical connector; there's no special software support needed for eSATA as opposed to internal SATA. My motherboard has a bunch of internal SATA ports; I bought an SATA to eSATA adapter that just has two SATA cables that attach to a PCI slot cover, which has two eSATA ports on it. It's nothing more than a cabling adapter - there's no logic circuits or software for it.
Don Quixote
On Thu, Dec 31, 2009 at 3:37 PM, Don Quixote de la Mancha quixote@dulcineatech.com wrote:
On Thu, Dec 31, 2009 at 1:14 PM, Paul Johnson pauljohn32@gmail.com wrote:
If one of you knows the similar recipe for esata, I would very much appreciate it.
You'll need a driver for the SATA controller that is built into your PC.
I think Don is not quite right here. From what I can tell, the sata drivers are loaded and present and they also make the external thing work, it is the same stack.
I have installed Fedora 12 to an external SATA device with no trouble. It works just like installing to an external USB. That proves the "principle" is good, and I just need to figure out if there is a way to figure out what their magic is and apply it in Centos.
I am starting to think the problems I'm having with Centos are due to the somewhat-well-known problem with support for sata drives in the old kernels. In the 2.6.18 era, there were plenty of reports about sata drivers not being loaded early enough in the boot process. The symptom was that Fedora-7 or 8 would install on sata drives, but if there were several drives in the system, somehow one or more would not get recognized. This is at the level of technical detail where I just have to trust the experts in the linux kernel mailing list. From what I can tell it was apparently addressed in the 2.6.26 era. It could be I have some completely separate problem.
I have not tried to update a kernel on a Centos system to use a Fedora-12 generation kernel. The whole point of using Centos is "stability", after all. But I'm temped to try.
PJ
2010/1/1 Don Quixote de la Mancha quixote@dulcineatech.com:
If you intend to make an initrd that anyone can use, you'll need to build modules from all of the available SATA drivers and include them.
Further to this, check your PCI bus for the SATA controller:
$ lspci |grep -i sata 00:1f.2 SATA controller: Intel Corporation 82801IR/IO/IH (ICH9R/DO/DH) 6 port SATA AHCI Controller (rev 02)
This might help you work out what driver to include or look for, i.e. mine is an AHCI controller so it will most likely use the ahci driver. On my F12 system the "ahci" SATA driver is not loaded as a module, therefore it is probably built into the kernel.
Indeed, the following seems to confirms that: $ cat /boot/config* |grep AHCI CONFIG_SATA_AHCI=y
If your machine is new, them most likely it will use the AHCI driver, however check that the controller is set to AHCI mode in the BIOS.
Anyway, Don is correct - for all intents and purposes, eSATA is just the same as a drive plugged directly onto the main board. It's not like USB at all, where you need SCSI storage emulation.
If your CentOS box can detect and mount the drive as whilst booted to the USB system, then check lsmod for a driver, run dmesg to see what it detected (if you hot plug it - which may not work on an old kernel), etc.
-c