SuSe 9.3 (possibly others) SATA boot issues
This is gonna be a bit long-winded. Seeing several posts here and elsewhere wherein users are having this problem and getting frustrated to the point of going to another distro has made me realize I need to let some folks know how to overcome some issues.
The problem is with GRUB, SATA drives, booting, and an error message saying "can't access tty". In my case, it's with an epox motherboard and nVidia chipset with SATA and RAID capabilities.
This usually happens during the first reboot after installing SuSe, but I have had it happen to me on other occasions, such as post-kernel upgrade or after changing or installing hardware (most of the time, a drive of some kind).
You will usually go thru initial installation, reboot, then several errors are thrown such as SuSe being unable to find partitions and finally it will drop you to a prompt and the last message coming from the kernel is the "can't access TTY" one.
The issues causing this are very simple to fix, but for new users coming over from Windows; they have no clue where to start.
issue #1 (most common on first reboot): GRUB's default boot is kinda funked up. When GRUB installs itself, it usually does so into the boot sector of the "first drive" in the system. That's where the confusion lies - the BIOS may tell the SuSe install one thing while installing, but then on first reboot, the BIOS says another. Since SuSe has set GRUB's boot settings to boot from a device or partition that no longer exists (or is in a different order) after rebooting; the boot process cannot find the partitions from which it gets stage 2.
Issue #2: Combine the above with the fact the nVidia bootrom may assume you want to boot from IDE instead of SATA, you may be booting from the wrong drive unbeknownst to yourself. This means you may instead get the error "GRUB boot error" or "operating system not found", or similar (depends upon BIOS). This is despite the fact you may have correctly chosen the right boot device inside the BIOS (have no idea why it won't override-seems like it should).
Solution: Take the SuSe CD out. Reboot. On nVidia mobo's, hit "esc" to bring up the boot choice menu (dunno if similar exists on other mobo's). Choose hard drive, then the drive onto which (in my case the SATA drive) you installed the operating system (I am assuming here you have chosen to install the bootloader into the first sector of the drive onto which you installed linux). When GRUB comes up (if it doesn't, then you installed the boot loader onto another partition - try process of elimination until you find the bootloader, then write that down), hit esc. This will drop you to GRUB's text mode. Highlight the default section of grub's menu and hit "e" on the keyboard. This allows you to scroll back and forth and edit the command line for grub. Make sure the drive onto which you installed SuSe is reflected on the command line.
In my case, the grub command line entries had hda2 and hda3 in the command line options. On my system, the SATA drive partitions are actually sda2 and sda3 (due to SATA being handled like SCSI). I changed the entries to reflect those partitions, and hit "enter" to save. Thereafter I hit "b" to boot from the modified command line, and voila.... it still didn't effing work!
Don't STOP - it disenfuculates itself!
Issue #2: I managed to get myself into a rescue mode using the SuSe CD, and noticed (via fdisk -l which lists all drives that I have) I now had drives called sda and sdb. I have an old jaz drive hooked up to my system that apparently decided it hadda be "alpha male", and suddenly became sda. Well, of COURSE there are no partitions on that drive, so booting was puking because of that. I turned the jaz off, and suddenly Linux booted perfectly.
I turned it back on when Linux was past stage 2, and everything was copacetic. Will be modifying the SCSI id's and SCSI BIOS settings to prevent it from jumping in too early again.
I don't believe the last issue will hit too many people UNLESS one of your CD devices, etc., emulates SCSI - but i put it in just in case.