При установке oracle-xe на убунту может возникнуть такая замечательная ошибка.
Связана она с тем, что при установленном параметре memory_target, а по умолчанию он установлен, оракл хочет tmpfs замонтированный в /dev/shm, а убунта монтирует его в /run/shm, и делает симлинк /dev/shm на /run/shm.
Оракл так работать не хочет.
Монтирование tmpfs у убунты прописано в хитром месте /lib/init/fstab
а линк в /etc/init/mounted-dev.conf
в итоге после редактирования файлы стали выглядеть следующим образом
/lib/init/fstab
# /lib/init/fstab: static file system information.
#
# These are the filesystems that are always mounted on boot, you can
# override any of these by copying the appropriate line from this file into
# /etc/fstab and tweaking it as you see fit. See fstab(5).
#
# <file system> <mount point> <type> <options> <dump> <pass>
/dev/root / rootfs defaults 0 1
none /proc proc nodev,noexec,nosuid 0 0
none /proc/sys/fs/binfmt_misc binfmt_misc nodev,noexec,nosuid,optional 0 0
none /sys sysfs nodev,noexec,nosuid 0 0
none /sys/fs/cgroup tmpfs optional,uid=0,gid=0,mode=0755,size=1024 0 0
none /sys/fs/fuse/connections fusectl optional 0 0
none /sys/kernel/debug debugfs optional 0 0
none /sys/kernel/security securityfs optional 0 0
none /sys/firmware/efi/efivars efivarfs optional 0 0
none /spu spufs gid=spu,optional 0 0
none /dev devtmpfs,tmpfs mode=0755 0 0
none /dev/pts devpts noexec,nosuid,gid=tty,mode=0620 0 0
none /tmp none defaults 0 0
none /run tmpfs noexec,nosuid,size=10%,mode=0755 0 0
none /run/lock tmpfs nodev,noexec,nosuid,size=5242880 0 0
none /dev/shm tmpfs nosuid,nodev 0 0
none /run/user tmpfs nodev,noexec,nosuid,size=104857600,mode=0755 0 0
none /sys/fs/pstore pstore optional 0 0
/etc/init/mounted-dev.conf
# mounted-dev - Populate /dev filesystem
#
# Populates the /dev filesystem from /lib/udev/devices once the temporary
# filesystem mount is in place.
description "Populate /dev filesystem"
start on mounted MOUNTPOINT=/dev
env MOUNTPOINT=/dev
env container
env LIBVIRT_LXC_UUID
task
script
# With the /run transition, shm lives there now, but eglibc still looks in
# /dev/shm. So create a symlink there
[ -e /run/shm ] || ln -s /dev/shm /run/shm
if [ "${TYPE}" != "devtmpfs" ]
then
cd "${MOUNTPOINT}"
/sbin/MAKEDEV std fd ppp tun
# lxc and libvirt containers have set up their own console and ttys
if [ -z "$container" -a -z "$LIBVIRT_LXC_UUID" ]; then
/sbin/MAKEDEV console
fi
fi
end script
Связана она с тем, что при установленном параметре memory_target, а по умолчанию он установлен, оракл хочет tmpfs замонтированный в /dev/shm, а убунта монтирует его в /run/shm, и делает симлинк /dev/shm на /run/shm.
Оракл так работать не хочет.
Монтирование tmpfs у убунты прописано в хитром месте /lib/init/fstab
а линк в /etc/init/mounted-dev.conf
в итоге после редактирования файлы стали выглядеть следующим образом
/lib/init/fstab
# /lib/init/fstab: static file system information.
#
# These are the filesystems that are always mounted on boot, you can
# override any of these by copying the appropriate line from this file into
# /etc/fstab and tweaking it as you see fit. See fstab(5).
#
# <file system> <mount point> <type> <options> <dump> <pass>
/dev/root / rootfs defaults 0 1
none /proc proc nodev,noexec,nosuid 0 0
none /proc/sys/fs/binfmt_misc binfmt_misc nodev,noexec,nosuid,optional 0 0
none /sys sysfs nodev,noexec,nosuid 0 0
none /sys/fs/cgroup tmpfs optional,uid=0,gid=0,mode=0755,size=1024 0 0
none /sys/fs/fuse/connections fusectl optional 0 0
none /sys/kernel/debug debugfs optional 0 0
none /sys/kernel/security securityfs optional 0 0
none /sys/firmware/efi/efivars efivarfs optional 0 0
none /spu spufs gid=spu,optional 0 0
none /dev devtmpfs,tmpfs mode=0755 0 0
none /dev/pts devpts noexec,nosuid,gid=tty,mode=0620 0 0
none /tmp none defaults 0 0
none /run tmpfs noexec,nosuid,size=10%,mode=0755 0 0
none /run/lock tmpfs nodev,noexec,nosuid,size=5242880 0 0
none /dev/shm tmpfs nosuid,nodev 0 0
none /run/user tmpfs nodev,noexec,nosuid,size=104857600,mode=0755 0 0
none /sys/fs/pstore pstore optional 0 0
/etc/init/mounted-dev.conf
# mounted-dev - Populate /dev filesystem
#
# Populates the /dev filesystem from /lib/udev/devices once the temporary
# filesystem mount is in place.
description "Populate /dev filesystem"
start on mounted MOUNTPOINT=/dev
env MOUNTPOINT=/dev
env container
env LIBVIRT_LXC_UUID
task
script
# With the /run transition, shm lives there now, but eglibc still looks in
# /dev/shm. So create a symlink there
[ -e /run/shm ] || ln -s /dev/shm /run/shm
if [ "${TYPE}" != "devtmpfs" ]
then
cd "${MOUNTPOINT}"
/sbin/MAKEDEV std fd ppp tun
# lxc and libvirt containers have set up their own console and ttys
if [ -z "$container" -a -z "$LIBVIRT_LXC_UUID" ]; then
/sbin/MAKEDEV console
fi
fi
end script