|
Bugzilla – Full Text Bug Listing |
| Summary: | Upgrade: /dev/hdX, /dev/sdX confusion with mixed ATA and SATA drives | ||
|---|---|---|---|
| Product: | [openSUSE] openSUSE 10.3 | Reporter: | Klaus Kämpf <kkaempf> |
| Component: | Update Problems | Assignee: | Lukas Ocilka <locilka> |
| Status: | RESOLVED FIXED | QA Contact: | E-mail List <qa-bugs> |
| Severity: | Blocker | ||
| Priority: | P5 - None | CC: | hare, stefan.fent |
| Version: | Beta 2 | ||
| Target Milestone: | --- | ||
| Hardware: | x86-64 | ||
| OS: | Other | ||
| Whiteboard: | |||
| Found By: | --- | Services Priority: | |
| Business Priority: | Blocker: | --- | |
| Marketing QA Status: | --- | IT Deployment: | --- |
| Attachments: |
/etc/sysconfig/kernel as requested
hwinfo --disk compressed tar of /var/log/YaST2 |
||
|
Description
Klaus Kämpf
2007-08-24 11:42:43 UTC
running mkinitrd with "sh -x" also reveals: /lib/mkinitrd/setup/11-storage.sh: line 256: syntax error near unexpected token '<' /dev/hda2 comes from /etc/fstab -> Blocker Manually changing /dev/hdXY to /dev/sdXY in fstab fixed it. Adapting summary Could you please attach the sysconfig/kernel file? Usually the disk module should be in there and have priority over the automatically detected one. By manually fixing /etc/fstab (and running mkinitrd successfully !) things got worse. When YaST retried the kernel installation, all /dev/sdaX entries were rewritten to /dev/sdbX. The existing /dev/sdb1 entry was left untouched. A nice mess :-( Created attachment 159731 [details]
/etc/sysconfig/kernel as requested
amd74xx comes after pata_amd so the libata drivers get used. Maybe this is the intended behavior, but that means that yast seems to have changed that line so libata gets used. In other words this is a pure yast bug, since when the INITRD_MODULES entry gets changed, /etc/fstab and everything else should be changed accordingly as well. I don't know exactly who is responsible for this. Maybe we should CC fehr? Could you please attach /boot/grub/device.map as well? This is the current device.map (probably not very helpful after the upgrade) (fd0) /dev/fd0 (hd0) /dev/sda (hd1) /dev/sdb Rewriting $summary again to make the issue clearer Created attachment 159746 [details]
hwinfo --disk
setting component to "Upgrade problems" To comment #8: just wanted to verify wether at least the device.map got rewritten correctly, what seems to be the case. Need y2log files. Created attachment 159933 [details]
compressed tar of /var/log/YaST2
Lukas you changed semantic of second parameter in call to Storage::DeviceMatchFstab compared to SLES10SP1. In SLES10SP1 the second parameter in call to Storage::DeviceMatchFstab was the untranslated device name from /etc/fstab of the system to update. In 10.3 you do the translations of device names in fstab of the system to update (by calling TranslateFsOrCryptoTab in function read_fstab_and_cryptotab) before calling Storage::DeviceMatchFstab. Storage::DeviceMatchFstab still assumes to get an untranslated name and therefore translates it again. This of course leads to wrong return values of Storage::DeviceMatchFstab. Since RootPart.ycp is the only user of function DeviceMatchFstab it is no problem to change this to expect translated fstab names. Sould i? Unfortunately there seem to be further problems. No idea why updated fstab still has hda2, the translation from y2log file are correct: Storage.ycp:5360 GetTranslatedDevices names ["/dev/hda2", "/dev/hda3", "/dev/hda1", "/dev/sda1" Storage.ycp:5376 GetTranslatedDevices ret ["/dev/sda2", "/dev/sda3", "/dev/sda1", "/dev/sdb1" Please have a look at the code in RootPart.ycp and tell me if I should change semantics of Storage::DeviceMatchFstab. I've change the semantics to call Storage::DeviceMatchFstab with the *old* instead the *new* device name according to comment #14. Tested with /dev/hda6 -> /dev/sdb6 (openSUSE 10.2) Changed in yast2-update-2.15.22 Let's test it again with next build, please. |