I have a SATA disk and an IDE disk on my desktop machine, and I've installed Windows 7 in the SATA disk while ArchLinux in the IDE, the grub is installed on the IDE disk.
In ArchLinux /etc/fstab I set the root mount device as /dev/sda2 instead of /dev/sdb2, as detected in ArchLinux setup program.
However, every time I boot from grub into ArchLinux, there will be chances that initrd cannot read from /dev/sda2 since it seems that /dev/sda is the Windows 7 disk instead of the ArchLinux one. But sometimes it works since /dev/sda becomes the ArchLinux one. In other words, whether the ArchLinux disk is /dev/sda or /dev/sdb differs after rebooting.
I'm wondering if it helps to use UUID to choose partition instead of device path. And is there any other solution to this problem?