I upgraded from Jessie to Stretch yesterday (I know, better late than never...). The PC has 2 HDDs, an internal SATA drive and an external USB drive. The internal has always been sda and the USB drive sdb. After the upgrade, the initial grub menu lists the OS, and an older installation (wheezy) on sda like it's always done. Upon choosing the OS, the USB drive is seen as sda and the internal drive is seen as sdb. Per fstab it then tries to mount /dev/sda9 to /home, and /dev/sda7 and /dev/sdb1 to configured mount points. Eventually it fails at both of these and drops me into emergency mode. This did not happen when running Jessie.
The only way I've found to get a successful boot is to 1) unplug the USB drive AND 2) comment out the line in fstab referring to /dev/sdb1. Then /home and others are mounted from /dev/sda as they've always been and a normal boot occurs. After booting, I can plug in the USB drive and mount it, although it is seen as /dev/sdc even though there is no /dev/sdb in use. Obviously this is not acceptable as a solution as manual intervention is required for a successful boot.
After a successful boot without the USB drive attached, I've reinstalled grub to /dev/sda and run the update grab command, to no avail. I've checked the BIOS settings and don't see anything that would cause this confusion. Again, it appears that the internal drive is seen as /dev/sda until the OS is chosen from the initial grub menu, at which time the system sees it as /dev/sdb. I may try installing grub to /dev/sdb when all drives are attached. In the meantime, even if that solves it, I can't fathom why this is happening. Any insights are appreciated!