我在 VPS 中有一个 Natty Linux 服务器,其中装有 Linux 2.6.18。
当我意识到 Natty 不再受支持时,我想现在在其中安装新软件。所以我将存储库更改为 Oneiric (debhttp://archive.ubuntu.com/ubuntu梦幻主受限宇宙等)
在解决了很多问题之后(我整个下午都在这里),我意识到一些依赖项也需要更新的内核。所以我决定将内核升级到 3.0.0-32:
apt-get 安装 linux 镜像
这里失败了。当它要求我更新 grub 时,它说无法检测到我的存储设备 (/dev/vzfs) 的文件系统,现在我被卡在这里:
root@server1:/tmp# apt-get install linux-image 正在读取软件包列表...完成 构建依赖关系树 正在读取状态信息...完成 linux-image 已经是最新版本。 升级了 0 个,新安装了 0 个,删除了 0 个,并且未升级 351 个。 3 未完全安装或删除。 此操作后将使用0B的额外磁盘空间。 您想继续吗 [Y/n]?Y 设置 linux-image-3.0.0-32-generic (3.0.0-32.51) ... 运行 depmod。 update-initramfs:生成 /boot/initrd.img-3.0.0-32-generic E: /usr/share/initramfs-tools/hooks/fixrtc 失败并返回 1。# <===== 此处 update-initramfs: /boot/initrd.img-3.0.0-32-generic 失败 无法创建 initrd 映像。 dpkg: 处理 linux-image-3.0.0-32-generic (--configure) 时出错: 子进程安装后安装脚本返回错误退出状态 2 dpkg:依赖性问题阻止了 linux-image-generic 的配置: linux-image-generic 依赖于 linux-image-3.0.0-32-generic;然而: 软件包 linux-image-3.0.0-32-generic 尚未配置。 dpkg: 处理 linux-image-generic (--configure) 时出错: 依赖问题 - 未配置 dpkg:依赖性问题阻碍了 linux-image 的配置: linux-image 依赖于 linux-image-generic (= 3.0.0.32.36);然而: 软件包 linux-image-generic 尚未配置。 dpkg: 处理 linux-image 时出错(--configure): 依赖问题 - 未配置 没有写入批准报告,因为错误消息表明它是上次故障的后续错误。 没有写入批准报告,因为错误消息表明它是上次故障的后续错误。 处理时遇到错误: Linux-映像-3.0.0-32-通用 linux-image-通用 Linux 映像 E: 子进程 /usr/bin/dpkg 返回错误代码 (1)
我到处搜索,但找不到任何答案。我甚至试图找到有关“fixrtc”为什么会失败的信息,但甚至没有关于它做什么或如何工作的文档……
任何想法?
附加信息:
root@server1:/tmp# 更新-grub 正在生成 grub.cfg ... 找到 Linux 映像:/boot/vmlinuz-3.0.0-32-generic /usr/sbin/grub-probe:错误:没有这样的磁盘。 /usr/sbin/grub-probe:错误:没有这样的磁盘。 取消共享失败:操作不允许 找不到分区列表!(尝试挂载 /sys。) 完毕
显然新内核已经安装,并且 grub 能够找到它。但我真的很担心重启服务器,因为 grub 可能无法正常工作并启动我的机器。
root@server1:/sys# mount /dev/vzfs 开启 / 类型 vzfs (rw) /proc 上的 proc 类型 proc (rw) /sys 上的 sysfs 类型 sysfs (rw) /dev/pts 上无类型 devpts (rw)
尽管我的 /boot/grub 中的 grub.cfg 文件有:
菜单项‘Ubuntu,带有 Linux 3.0.0-32-generic’--class ubuntu --class gnu-linux --class gnu --class os { 記錄失敗 设置 gfxpayload=$linux_gfx_mode 安装gzio linux /boot/vmlinuz-3.0.0-32-generic root=/dev/vzfs ro quiet splash vt.handoff=7 } 菜单项‘Ubuntu,带有 Linux 3.0.0-32-generic(恢复模式)’--class ubuntu --class gnu-linux --class gnu --class os { 記錄失敗 安装gzio echo ‘正在加载 Linux 3.0.0-32-generic...’ linux /boot/vmlinuz-3.0.0-32-generic root=/dev/vzfs ro 单一 nomodeset }
答案1
我认为这是不可能的。
我设法跳过这个“钩子”,将这个 fixrtc 设置为不可执行 (chmod -x),从而通过了 /usr/share/initramfs-tools/hooks/fixrtc。但是当他执行 update-grub 时,它发出了抱怨。
过了一会儿,我意识到我的机器上没有安装内核。是的,我仍然无法理解一台没有 Linux 内核的 Linux 机器怎么能工作,但我认为这是因为 VPS 的问题。
我的 VPS 是 Virtuozzo(我可以通过 mount -> /dev/vzfs 看到它有一个 vzfs 文件系统(不是像 ext3 这样的“普通”文件系统),并且https://serverfault.com/questions/158323/no-grub-on-vpsEEAA 的回答看起来我无法选择我的内核。
所以我卸载了内核,现在 /boot 看起来和以前一样空了。只能换到另一台服务器(这台服务器太便宜了,不好用……)