You are not logged in.
Hi,
Earlier my desktop (after a week uptime) didn't boot anymore. It got the "Reboot required" error at filesystem check (the rc.sysinit script gives this when fsck returns exit status 2).
I tried several things, made sure from a live that the partitions were all clean, yet nothing helped. Then i noticed i wasn't all up to date and made a pacman -Su (after refreshing the list) and at the kernel26 upgrade it said 'SUCCESS' but it gave a small error message during it:
:: Parsing hook [autodetect]
/lib/initcpio/install/autodetect: Zeile 17: filesystem:ext3:1.0: Kommando nicht gefunden.
(Sorry in German but it really is just "line 17" and "command not found").
The Message only appeared in the normal kernel, during building the fallback it didn't say anything.
I had done the same updates a day before on my netbook and there i can't remember any error message and it also boots just fine.
As long as i disable automatic fsck at boot in the fstab the system boots fine.
I'm too tired right now to try any more things, i need sleep. I'd appreciate some help in this, however it's not too urgent, as i can boot and use the system without automatic filesystem check at boot-time.
Ogion
EDIT:
Forgot to add the filesystems and autodetect files from the directory mentioned in the error message:
/lib/initcpio/install/filesystems:
# vim: set ft=sh:
install ()
{
MODULES=" $(checked_modules '/kernel/fs' | grep -v "nls") $(checked_modules '/kernel/fs/nls/nls_cp437')"
BINARIES=""
FILES=""
SCRIPT=""
}
help ()
{
cat<<HELPEOF
This hook adds filesystems modules to the image. If you would like to
minimize the modules installed in the image, add the autodetect hook too.
HELPEOF
}
/lib/initcpio/install/autodetect
# vim: set ft=sh:
install ()
{
MODULE_FILE="${TMPDIR}/autodetect_modules"
#blegh, we'll let /tmp clean itself up
AUTODETECT="$(auto_modules -e '/scsi/' -e '/block' -e '/fusion/' \
-e '/usb/' -e '/ide/' -e '/ieee1394/' -e '/cdrom' \
-e '/net/' -e '/pcmcia' -e '/ata' \
| grep -v -e 'ata_generic.ko' -e 'ide-generic.ko')"
#Filesystem detection, use sysfs instead of /proc
findfs ()
{
for blkdev in $(find /dev -type b | grep -v -e /dev/loop -e /dev/ram -e /dev/fd); do
(eval $(/sbin/blkid -o udev -p "${blkdev}"); [ "${ID_FS_USAGE}" = "filesystem" ] && echo $ID_FS_TYPE)
done
}
if [ ${UID} -eq 0 -o "$(groups | grep disk)" != "" ]; then
for fs in $(findfs | sort | uniq); do
for mod in $(find "${MODULEDIR}" -type f -name "${fs}.ko"); do
if [ -n "${mod}" ]; then
AUTODETECT="${AUTODETECT} ${mod}"
fi
done
done
if [ -e /sbin/mdadm ]; then
for raidmod in $(/sbin/mdadm -E -s -v /dev/hd* /dev/sd* /dev/rd/* /dev/ida/* /dev/cciss/* /dev/ataraid/* /dev/mapper/* \
| awk -Flevel= '{print $2}' | awk '{print $1}'); do
case "${raidmod}" in
raid4|raid5|raid6)
AUTODETECT="${AUTODETECT} raid456" ;;
*)
AUTODETECT="${AUTODETECT} ${raidmod}" ;;
esac
done
fi
else
err "User does not have proper permissions to read superblocks, raid and filesystem modules are not detected"
fi
for m in ${AUTODETECT}; do
modname="$(basename ${m%%\.ko})"
grep "^${modname}$" "${MODULE_FILE}" >/dev/null 2>&1 && continue
case "${m}" in
#*/ieee1394/*) echo -e "sbp2\nsd_mod\nsr_mod" >> "${MODULE_FILE}";;
*ext3*) echo "jbd" >> "${MODULE_FILE}" ;;
*ext4*) echo -e "jbd2\nmbcache\ncrc16" >> "${MODULE_FILE}" ;;
*afs*) echo "rxrpc" >> "${MODULE_FILE}" ;;
*cramfs*) echo "zlib_inflate" >> "${MODULE_FILE}" ;;
*isofs*) echo "zlib_inflate" >> "${MODULE_FILE}" ;;
*msdos*) echo "fat" >> "${MODULE_FILE}" ;;
*vfat*) echo -e "fat\nnls_cp437" >> "${MODULE_FILE}" ;;
*ocfs2*) echo -e "ocfs2_dlm\njbd\nocfs2_nodemanager\nconfigfs" >> "${MODULE_FILE}" ;;
esac
echo "${modname}" >> "${MODULE_FILE}"
done
BINARIES=""
SCRIPT=""
}
help ()
{
cat <<HELPEOF
This hook shrinks your initramdisk to a smaller size
by autodetecting your needed modules. Be sure to verify
included modules are correct and none are missing.
This hook must be run before other subsystem hooks in
order to take advantage of auto-detection. Any hooks
placed before 'autodetect' will be installed in full.
HELPEOF
}
Last edited by Ogion (2010-02-06 01:23:07)
(my-dotfiles)
"People willing to trade their freedom for temporary security deserve neither and will lose both." - Benjamin Franklin
"Enlightenment is man's leaving his self-caused immaturity." - Immanuel Kant
Offline
Deinstalling and reinstalling various packages didn't help (e2fsprogs, mkinitcpio, kernel26 ..).
I copied the kernel from my netbook over to my desktop as an additional kernel image, and booted with that and behold, it did work out correctly. After that boot i booted with the normal kernel of the desktop again and yes, it now works.
But, mkinitcpio still, when autodetect is in the HOOKS, complains about that:
:: Parsing hook [autodetect]
/lib/initcpio/install/autodetect: Zeile 17: filesystem:ext3:1.0: Kommando nicht gefunden.
So this is partially solved, in that i can boot and use the system again. But i still find this message above weird (it does not appear on my netbook, using the same version-numbers of kernel and mkinitcpio).
Ogion
Last edited by Ogion (2010-02-06 13:36:10)
(my-dotfiles)
"People willing to trade their freedom for temporary security deserve neither and will lose both." - Benjamin Franklin
"Enlightenment is man's leaving his self-caused immaturity." - Immanuel Kant
Offline
Hi,
:: Parsing hook [autodetect] /lib/initcpio/install/autodetect: Zeile 17: filesystem:ext3:1.0: Kommando nicht gefunden.
...
/lib/initcpio/install/autodetect# vim: set ft=sh: install () { MODULE_FILE="${TMPDIR}/autodetect_modules" #blegh, we'll let /tmp clean itself up AUTODETECT="$(auto_modules -e '/scsi/' -e '/block' -e '/fusion/' \ -e '/usb/' -e '/ide/' -e '/ieee1394/' -e '/cdrom' \ -e '/net/' -e '/pcmcia' -e '/ata' \ | grep -v -e 'ata_generic.ko' -e 'ide-generic.ko')" #Filesystem detection, use sysfs instead of /proc findfs () { for blkdev in $(find /dev -type b | grep -v -e /dev/loop -e /dev/ram -e /dev/fd); do (eval $(/sbin/blkid -o udev -p "${blkdev}"); [ "${ID_FS_USAGE}" = "filesystem" ] && echo $ID_FS_TYPE) ... }
If I'm counting right it's complaining about the last quoted line, correct?
Try on your command line, what happens when you do:
for blkdev in $(find /dev -type b | grep -v -e /dev/loop -e /dev/ram -e /dev/fd); do
(
eval $(sudo /sbin/blkid -o udev -p "$blkdev")
[ "${ID_FS_USAGE}" = "filesystem" ] && echo "$ID_FS_TYPE"
)
done
Offline
Hi Profjim,
sorry but atm i'm not at home and athough i have my hdd with me, it would be in another computer (though i can see about testing it out on it, but i don't have much time for now.) I will see to do it some day. (As far as i can see it prints the fs-types of the partitions? In that case, my partitions are all either ext3, swap or one extended).
Ogion
(my-dotfiles)
"People willing to trade their freedom for temporary security deserve neither and will lose both." - Benjamin Franklin
"Enlightenment is man's leaving his self-caused immaturity." - Immanuel Kant
Offline
I wasn't asking in order to find out the expected correct output. I was asking to find out what output the script was really generating for you, to help identify what had gone wrong.
Before troubleshooting too much, I'd recommend doing another
pacman -Syu
pacman -S kernel26
You may hopefully find that makes the problem go away by itself. Did you try to boot from your fallback kernel image as well as the regular one? The fallback doesn't use autodetect so I'd expect it at least should have worked for you.
EDIT: Just went back and re-read this:
As long as i disable automatic fsck at boot in the fstab the system boots fine.
Last edited by Profjim (2010-02-17 12:40:36)
Offline
Yea, well apart from that little message "command or file not found" while calling mkinitcpio with the default mkinitcpio.conf (with autodetect in the HOOKS) i don't notice any problem at the moment. The message doesn't appear on the fallback mkinitcpio (without autodetect), it doesn't either on my netbook. I will try your script sometime soon and i will also try building the kernel26.img with the new mkinitcpio (maybe the change from klibc affects it somehow?)
Ogion
(my-dotfiles)
"People willing to trade their freedom for temporary security deserve neither and will lose both." - Benjamin Franklin
"Enlightenment is man's leaving his self-caused immaturity." - Immanuel Kant
Offline
"My script" was just the relevant pieces of the autodetect install script.
Yes, there have been lots of changes to the new mkinitcpio so it doesn't make much sense to troubleshoot against the old version. See if the new version works for you.
Offline