在 Linux / Unix 管理手册中,它提到您可以编辑/etc/inittab文件以更改运行级别。我在 10.04 上没有那个文件。我在谷歌上搜索了这个,发现一个提示说该文件已被替换为/etc/event.d/rc-default- 但是我的系统上也没有该文件。
这些被删除了还是 10.04 以不同的方式处理运行级别?

这就是我所拥有的。我无法启动,我看到键盘上三个小灯中的两个一直在闪烁,冷却几乎全功率工作。
我在其他 askubuntu 主题中看到了内存测试的建议。我做到了。我没有任何错误。
我 99,9% 确定这不是硬件问题,因为我有 Windows 7,我可以启动它并且它工作得很好。
这个问题没有任何警告或什么。有一天我刚关掉笔记本电脑,有一天我无法启动。
从恢复模式我得到这个:

我在 1500 英里外的数据中心有一台无头 Ubuntu 12.04 服务器。现在两次重新启动系统决定它必须 fsck。不幸的是 Ubuntu 以交互模式运行 fsck,所以我不得不请我数据中心的某个人过去,插入控制台,然后按 Y 键。我如何设置它以便 fsck 在引导时以非交互模式运行,并且带有-yor -p(又名-a)标志?
如果我正确理解 Ubuntu 的启动过程,init 会调用mountall,而mountall又会调用 fsck。但是我没有看到任何配置 fsck 调用方式的方法。这可能吗?
(阻止一个建议;我知道我可以tune2fs -i 0 -c 0用来防止定期 fscks。这可能会有所帮助,但我需要系统尝试恢复,即使它有真正的原因 fsck,例如在电源故障后.)
为了回答后续问题,这里是我的 /etc/fstab 的相关详细信息。我不相信我已经从 Ubuntu 放在那里的内容中编辑了这个。
UUID=3515461e-d425-4525-a07d-da986d2d7e04 / ext4 errors=remount-ro 0 1
UUID=90908358-b147-42e2-8235-38c8119f15a6 /boot ext4 defaults 0 2
UUID=01f67147-9117-4229-9b98-e97fa526bfc0 none swap sw 0 0
Run Code Online (Sandbox Code Playgroud) 重启与 ubuntu 的 init 6 相同吗?
我在 Amazon EC2 上运行 Ubuntu 12.04。当 ssh 进入框中时,我可以输入runlevel并得到:
N 2
Run Code Online (Sandbox Code Playgroud)
看着man reboot我看到:
当使用 --force 或运行级别 0 或 6 调用时,此工具会调用 reboot(2) 系统调用本身并直接重新启动系统。否则,这只会使用适当的参数调用 shutdown(8) 工具。
如果我阅读,man shutdown 8我会看到:
关机安排以安全的方式关闭系统。所有登录的用户都会收到系统正在关闭的通知,并且在 TIME 的最后五分钟内,将阻止新的登录。
我对reboot和之间的区别的基本理解init 6是:
reboot只会卸载磁盘并基本上轻弹电源开关而无需运行任何关闭脚本init 6将运行所有关闭脚本,/etc/init/rc.*因为它会降低系统的运行级别reboot命令没有--force或-f将运行关闭命令,该命令基本上与init 6init 6而不是使用的习惯可能会更好,reboot因为它更安全并且跨发行版工作得更好,但是reboot如果有人使用它,它的默认行为已被更改以尝试防止错误/数据丢失。差不多吧?如果没有,我错过了什么?
老实说,我喜欢在所有事物中寻找漏洞,我正在看电视连续剧《机器人先生》,并且在某个时候一个角色提到了init 1命令,她的计算机开始一次又一次地崩溃,并且在使用该命令后她失去了理智。我正在学习操作系统,我是一个初学者,我尝试使用谷歌搜索它,我还查看了许多论坛以了解该命令的实际作用。
我所知道的是 Linux 有0-6 个运行级别,并且init 1是其中之一,有人还提到它会冻结计算机,但我还没有找到这个命令实际做什么以及它如何工作的问题的确切答案?我应该在我的电脑上试试吗?
我有许多 LVM 分区,每个分区都包含一个 Ubuntu 安装。有时,我想做一个apt-get dist-upgrade, 将安装更新到最新的软件包。我用 chroot 来做这件事——这个过程通常是这样的:
$ sudo mount /dev/local/chroot-0 /mnt/chroot-0
$ sudo chroot /mnt/chroot-0 sh -c 'apt-get update && apt-get dist-upgrade'
$ sudo umount /mnt/chroot-0
Run Code Online (Sandbox Code Playgroud)
[未显示:我还安装和卸载/mnt/chroot-0/{dev,sys,proc}作为绑定安装到真实的/dev,/sys并且/proc,因为 dist-upgrade 似乎期望这些存在]
但是,升级到精确后,此过程不再有效 - 最终卸载将失败,因为文件/mnt/chroot-0系统上仍有打开的文件。lsof确认 chroot 中有打开文件的进程。这些进程是在dist-upgrade 期间启动的,我假设这是因为chroot 中的某些服务需要service postgresql restart在包升级后重新启动(例如,通过)。
所以,我想我需要告诉 upstart 停止在这个 chroot 中运行的所有服务。有没有办法可靠地做到这一点?
我试过了:
cat <<EOF | sudo chroot /mnt/chroot-0 /bin/sh
# stop 'initctl' services
initctl list | awk '/start\/running/ {print …Run Code Online (Sandbox Code Playgroud) 运行时启动/关闭会调用什么update-rc.d myscript default?
文档看起来很模糊,我想要具体的。我猜这会发生:
在启动时(特别是在进入运行级别 2,多用户时),执行以下命令:
/etc/init.d/myscript start
Run Code Online (Sandbox Code Playgroud)
在关机/重启时,相同的脚本被称为:
/etc/init.d/myscript stop
Run Code Online (Sandbox Code Playgroud)
这就是这里真正发生的一切吗?
我已经知道这init是启动计算机和管理运行级别所需的神奇程序,但它的真正目的是什么?
为什么我们init首先需要?为什么引导加载程序不能告诉 Upstart 哪些程序可以运行,哪些程序不能运行?
这个问题在(迟到的)回复我的如果init被删除会发生什么?题。