如何修改 Ubuntu 12.04(&12.10)的默认行为以防止在启动时创建从 /dev/shm 到 /run/shm 的符号链接?

如何修改 Ubuntu 12.04(&12.10)的默认行为以防止在启动时创建从 /dev/shm 到 /run/shm 的符号链接?

在 Ubuntu 12.04 上安装 Oracle 11gR2 Express Edition 时,请按照Linux Ubuntu 11.10 上的 Oracle 11gR2 Express 版本操作指南并且遇到了 Oracle 内存目标问题/dev/shm(如该指南第 7 节所述),因为/dev/shm现在默认以符号链接的形式实现,如 Ubuntu 11.10 发行说明中所述/dev/shm/run/shm符号链接与 Oracle 的预期不兼容,这会导致数据库启动时出现 Oracle 错误(ORA-00845:MEMORY_TARGET)。

《Linux Ubuntu 11.10 上的 Oracle 11gR2 Express Edition 操作指南》第 7 节记录了一个启动脚本,/etc/init.d/oracle-shm该脚本旨在配置/dev/shm使用 Ubuntu 的/run/shm,然而这不是在 Ubuntu 12.04 上似乎有预期的效果,但/dev/shm未按预期安装 - 大概在 11.10 上有效。尽管这已经被注意到并且提出了各种解决方案我选择以稍微不同的方式解决这个问题,即添加一个条目/etc/fstab并修改/etc/init.d/oracle-shm脚本,如下所示:

  1. 添加共享内存临时文件系统的条目/etc/fstab,例如(对于 2 GB 的文件)

    shm /dev/shm    tmpfs   size=2g 0   0
    
  2. 更改以下mount/etc/init.d/oracle-shm

    rm -f /dev/shm  
    mkdir /dev/shm
    mount -B /run/shm /dev/shm
    

    简单地

    rm -f /dev/shm
    mkdir /dev/shm 
    mount /dev/shm
    

无论如何,所有提出的解决方案都涉及撤消启动时的默认 Ubuntu 行为,首先删除符号链接,然后实现所需的行为。

我希望能够设置共享内存文件系统一劳永逸经过:

  1. 添加共享内存临时文件系统的条目/etc/fstab,例如(对于 2 GB 的文件)

    shm /dev/shm    tmpfs   size=2g 0   0
    
  2. 删除到 /dev/shm 的现有符号链接并以 sudo 身份创建目录。

    rm –f /dev/shm
    mkdir /dev/shm
    
  3. 挂载共享内存临时文件系统

    mount /dev/shm
    

这一切都正常,直到您重新启动,此时从/dev/shm到的符号链接/run/shm会重新出现,而不是/dev/shm作为共享内存临时文件系统安装。

那么问题来了。

/dev/shm我如何修改 Ubuntu 12.04(&12.10)的默认行为以防止/run/shm在启动时首先创建符号链接?

操作=显示&重定向=OneiricOcelot/TechnicalOverview#Upgrades

答案1

删除/etc/init/mounted-dev.conf

 [ -e /dev/shm ] || ln -s /run/shm /dev/shm

相关内容