archboot/hooks/arch_filesystems
2007-10-26 13:05:22 +02:00

91 lines
2.9 KiB
Text

run_hook ()
{
# fix reiserfs symlinks
ln -s /sbin/debugfs.reiserfs /sbin/debugreiserfs
ln -s /sbin/mkfs.reiserfs /sbin/mkreiserfs
ln -s /sbin/reiserfsck /sbin/fsck.reiserfs
ln -s /sbin/resizefs.reiserfs /sbin/resize_reiserfs
ln -s /sbin/tunefs.reiserfs /sbin/reiserfstune
# fix ext2/ext3 symlinks
ln -s /sbin/e2fsck /sbin/fsck.ext2
ln -s /sbin/e2fsck /sbin/fsck.ext3
ln -s /sbin/findfs /sbin/e2label
ln -s /sbin/findfs /sbin/tune2fs
ln -s /sbin/mkfs.ext2 /sbin/mkfs.ext3
ln -s /sbin/mkfs.ext2 /sbin/mke2fs
# fix jfs symlinks
ln -s /sbin/jfs_fsck /sbin/fsck.jfs
ln -s /sbin/jfs_mkfs /sbin/mkfs.jfs
# fix vfat symlink
ln -s /sbin/mkdosfs /sbin/mkfs.vfat
ln -s /sbin/mkdosfs /sbin/mkfs.msdos
ln -s /sbin/dosfsck /sbin/fsck.msdos
ln -s /sbin/dosfsck /sbin/fsck.vfat
# fix ntfs symlinks
ln -s /usr/sbin/mkntfs /sbin/mkfs.ntfs
ln -s /usr/bin/ntfsmount /sbin/mount.ntfs-fuse
ln -s /usr/bin/ntfsmount /sbin/mount.fuse.ntfs
# fix ntfs-3g symlink
ln -s /bin/ntfs-3g /sbin/mount.ntfs-3g
# fix nfs
ln -s /sbin/mount.nfs /sbin/mount.nfs4
ln -s /sbin/mount.nfs /sbin/umount.nfs
ln -s /sbin/mount.nfs /sbin/umount.nfs4
# fix cifs
ln -s /sbin/mount.cifs /sbin/mount.smbfs
ln -s /sbin/umount.cifs /sbin/umount.smbfs
#needed for switching
if ! [ "${root}" = "" ]; then
msg -n ":: Loading root filesystem module..."
if [ "x${rootfstype}" != "x" ]; then
FSTYPE="${rootfstype}"
else
if [ ! -e "${root}" ]; then
msg -e "\nAttempting to create root device '${root}'"
if [ "x${rootdelay}" != "x" ]; then
msg -n "Waiting for devices to settle..."
/bin/sleep "${rootdelay}"
msg "done."
export rootdelay=0
kinit_params="${kinit_params} rootdelay=0"
fi
eval $(/bin/parseblock "${root}")
if [ "${BLOCKNAME}" = "unknown" ]; then
FSTYPE="unknown"
echo "ERROR: Failed to parse block device name for '${root}'"
elif [ "x${BLOCKDEVICE}" = "x" ]; then
FSTYPE="unknown"
echo "ERROR: Failed to parse block device ids for '${root}'"
else
export root="${BLOCKNAME}"
echo "/bin/mknod \"${BLOCKNAME}\" b ${BLOCKDEVICE}"
/bin/mknod "${BLOCKNAME}" b ${BLOCKDEVICE} >/dev/null
fi
fi
if [ -e "${root}" ]; then
eval $( /bin/fstype < "${root}" )
else
FSTYPE="unknown"
fi
fi
msg " ${FSTYPE}"
if [ "${FSTYPE}" = "unknown" ]; then
echo "ERROR: root fs cannot be detected. Try using the rootfstype= kernel parameter."
else
kinit_params="${kinit_params} rootfstype=${FSTYPE}"
/sbin/modprobe -q "${FSTYPE}" >/dev/null 2>&1
fi
fi
}