Issue Details (XML | Word | Printable)

Key: FL-2639
Type: Bug Bug
Status: Open Open
Priority: Normal Normal
Assignee: António Meireles [aka doniphon]
Reporter: Jesse Zhang
Votes: 0
Watchers: 0
Operations

If you were logged in you would be able to see more operations.
Foresight Linux

fails to boot due to libata-migrate

Created: 18/Nov/10 02:42 AM   Updated: 13/Apr/11 02:00 PM
Component/s: Base Operating System
Affects Version/s: 2.3.5
Fix Version/s: None
Security Level: Public (Everyone can see this issue)

Time Tracking:
Not Specified

Environment: foresight-2.4.9.1+2010.10.18-x86_64-dvd1.iso


 Description  « Hide
1. It's a fresh install from foresight-2.4.9.1+2010.10.18-x86_64-dvd1.iso.
2. And the system has a left-over partition which is ext4. So I added this line to /etc/fstab:
/dev/sda6               /build                  ext4 users,defaults,auto        1 2

3. Then I did an updateall and rebooted.

It fails to boot and said,

/: clean
/home: clean
fsck.ext4: No such file or directory while trying to open /dev/libdata-migrate/by-id/ata-ST3320418AS_9VMCKDSA-part6

fstab was changed to:

/dev/libata-migrate/by-id/ata-ST3320418AS_9VMCKDSA-part6    /build  ext4    users,defaults,auto,        1 2

I managed to workaround this by editing /etc/fstab: (thanks to mkj)

mount -oremount,rw /
vim /etc/fstab
mount -oremount,ro /
sync
reboot

Then I found /etc/bootloader.conf is changed too. And I have no /dev/libata-migrate/ on the system.

WORKAROUND

As mkj noted below, you can workaround the problem with

sudo conary erase libata-migrate


 All   Comments   Work Log   Change History      Sort Order: Ascending order - Click to sort in descending order
Michael K. Johnson added a comment - 22/Nov/10 09:29 PM
I have reproduced this more than once on the same system.

In an update around November 10th, this happened (I did not notice it until I tried to reboot and the reboot failed), and then it happened again tonight on another update (but this time I looked for it and caught it before rebooting...)

I am wondering whether the Foresight mkinitrd is missing something from the rPL mkinitrd, and also whether the right answer is to remove libata-migrate. Its only real purpose was to facilitate migrations from rPL1 to rPL2, and anyone who is going to migrate from FL1 to FL2 at this point probably is going to have more difficult issue to deal with...

It seems likely that this happens on any system that doesn't use mount-by-label, so it is probably easy to reproduce.


Michael K. Johnson added a comment - 22/Nov/10 09:31 PM
My working fstab:
LABEL=/                 /                       ext3    defaults        1 1
tmpfs			/tmp			tmpfs	size=4g		0 0
tmpfs			/var/tmp		tmpfs	size=4g		0 0
tmpfs                   /dev/shm                tmpfs   defaults        0 0
devpts                  /dev/pts                devpts  gid=5,mode=620  0 0
sysfs                   /sys                    sysfs   defaults        0 0
proc                    /proc                   proc    defaults        0 0
/dev/sda2               swap                    swap    defaults        0 0
/dev/sda3               /home                   ext3    defaults        1 2

The form that it takes when it is broken:

LABEL=/                 /                       ext3    defaults        1 1
tmpfs			/tmp			tmpfs	size=4g		0 0
tmpfs			/var/tmp		tmpfs	size=4g		0 0
tmpfs                   /dev/shm                tmpfs   defaults        0 0
devpts                  /dev/pts                devpts  gid=5,mode=620  0 0
sysfs                   /sys                    sysfs   defaults        0 0
proc                    /proc                   proc    defaults        0 0
/dev/libata-migrate/by-id/ata-ST9320421AS_5TJ0CYZZ-part2               swap                    swap    defaults        0 0
/dev/libata-migrate/by-id/ata-ST9320421AS_5TJ0CYZZ-part3               /home                   ext3    defaults        1 2

Michael K. Johnson added a comment - 22/Nov/10 09:41 PM
Note that rPL2 has removed the dep on libata-migrate in order to allow users of rPL2 to avoid running libata-migrate when they have no need for it to run.

Michael K. Johnson added a comment - 22/Nov/10 09:55 PM
In mkinitrd, I see:
    for i in /boot/grub/grub.conf /etc/bootloader.conf /etc/fstab \
         /etc/smartd.conf /boot/grub/device.map /etc/mtools.conf $RCFILE
    do
        [ -f $i ] && DEVSUB="$DEVSUB $i"
    done
    rm -f /etc/sysconfig/devsub # or it may not modify $RCFILE
    [ -n "$DEVSUB" ] && /usr/bin/devsub /etc/sysconfig $DEVSUB

The rm -f there might be the culprit – it's not supposed to run all the time; the whole point of that /etc/sysconfig/devsub file is to know whether devsub needs to be re-run.

So I think we need to review differences between the FL and rPL mkinitrds in the if [ -x /sbin/libata-migrate-links ]; then section for relevant differences, and also remove libata-migrate by default because it is no longer necessary.


Jesse Zhang added a comment - 02/Feb/11 06:53 AM
Today I erased two older versions of kernel. Later I couldn't boot into the dual-boot windows vista. Turned out /etc/fstab was modified to contain the invalid /dev/libata-* path.

Michael K. Johnson added a comment - 08/Mar/11 08:23 AM
I have removed libata-migrate from systems I manage as an effective workaround for this issue.

libata-migrate is not needed on foresight; foresight really isn't affected by the migration issue between rpl1 and rpl2 that prompted writing libata-migrate, because production foresight 1 had and used libata modules already.

Therefore, I wouldn't invest energy in fixing libata-migrate, I'd just remove it. Preferably entirely, but if not entirely, then byDefault=False.


zodman added a comment - 13/Apr/11 02:00 PM
same problem at my machine ... i need a put a foresight linux rescue for change the data on fstab