【发布时间】:2016-06-28 01:13:21
【问题描述】:
我进行了 apt-get 升级,因为我们的生产服务器的加载时间约为 40 秒。我在升级之前和之后都没有快照。(虽然有六个月大的快照)加载时间提高到 15 秒,但我们的 erizo 服务停止工作。 Erizo 也在该实例上运行。重新启动服务没有帮助,所以我尝试将软件包升级到以前的版本(https://askubuntu.com/questions/138284/how-to-downgrade-a-package-via-apt-get),就像它一样,但几乎每个软件包都有一个错误:以前的软件包版本不存在。(这很奇怪,因为我复制了 dpkg -l) 的输出
其中只有少数成功降级,但在将 e1fslibs 升级到以前的版本时出现严重错误。:以下软件包具有未满足的依赖关系: e2fsprogs: PreDepends: e2fslibs
不知何故搞砸了 initramfs 和/或 initramfs-tools,现在实例正在运行,但我无法进入它。
- 正在连接谷歌云平台中的实例:正在连接... 无法连接,正在重试 (1/3)。
- google cloud shell 无法 gcloud 计算 ssh:权限被拒绝(公钥)。
- 在本地使用 gcloud 也会说 Permission denied (publickey)。
我检查了以下内容:
- 定义了项目公钥;没有定义任何实例公钥或任何其他元数据 (Google Cloud SSH Keys)
- 在谷歌云平台>>计算引擎>>虚拟机实例>>权限>>我看到'计算'被禁用了
- 通过导航到串行控制台输出页面并查找以 accounts-from-metadata: 字符串为前缀的输出行来验证守护程序是否正在运行。如果您使用的是标准映像,但在串行控制台输出中看不到这些输出前缀,则守护程序可能已停止--> 我没有看到这个,所以我预计它没有运行。
- 检查防火墙规则:(gcloud计算防火墙规则列表) default-allow-ssh default 0.0.0.0/0 tcp:22 //规则存在
以下软件包已升级:
- 适合
- apt-transport-https
- apt-utils
- binutils
- 云初始化
- cloud-initramfs-growroot
- cloud-initramfs-rescuevol
- comerr-dev
- dosfstools
- e2fslibs
- e2fsprogs
- gce-cloud-config
- gce 守护进程
- gce-imagebundle
- gce 启动脚本
- google-cloud-sdk
- 横向客户端
- 风景常见的 l
- ibapt-inst1.4 libapt-pkg4.12
- libcomerr2
- libss2
- libudev0 mountall
- nginx
- nginx-common
- nginx-full
- ntp
- ntpdate
- 程序
- python-apt
- python-apt-common
- python-lazr.restfulclient
- udev
- 无人值守升级
- 更新管理器核心
- 暴发户
- 哎呀
- x11-utils
这是从串行输出中获取的:: - mountall:事件失败 - 未配置landscape-client,请运行landscape-config。
接下来要做什么?
将启动脚本应用到正在运行的实例(遵循此https://cloud.google.com/compute/docs/startupscript)并尝试执行 Apt-get 升级?
尝试在 google cloud shell 中(再次)创建一个新的公钥来访问实例?
- 在 google cloud shell 中第一次在键入 gcloud compute --project "enduring-palace-762" ssh --zone "europe-west1-c" "tta-media-test-2" 后生成此文件 警告:Google Compute Engine 的 SSH 私钥文件不存在。警告:您没有 Google Compute Engine 的 SSH 密钥。警告:将执行 [/usr/bin/ssh-keygen] 以生成密钥。这个工具需要创建目录/home/developer/.ssh
- 生成的公钥存储在 /home/developer/.ssh /google_compute_engine.pub 我复制了一份,添加了用户名并将公钥的内容添加到计算引擎>>元数据>>ssh密钥。 *key 被接受,但用户名不像所有其他用户名那样显示 - 密钥对 使用 gcloud compute ssh tta-media-test-2 --zone europe-west1-c 时出现 Permission denied (publickey) 错误
当我像这样提供 ssh 密钥文件时 gcloud compute ssh tta-media-test-2 --zone europe-west1-c --ssh-key-file=my-ssh-keys_copy.pub (密码在密钥文件所在的文件夹内) 警告:Google Compute Engine 的公共 SSH 密钥文件不存在。 警告:您没有 Google Compute Engine 的 SSH 密钥。 警告:将执行 [/usr/bin/ssh-keygen] 以生成密钥。
使用 ssh-keygen -t rsa -f my-ssh-keys 生成新密钥时得到相同的结果
- 非常感谢任何其他可能的解决方案。
[update] 我可以使用 ssh user@externalIpOfInstance 从本地 ssh 'broken' 实例我的计划是将其升级到稳定状态,创建一个快照并从那里查看..
- sudo apt-get -f 安装 0 升级,0 新安装,0 删除,5 未升级。 1 未完全安装或拆除。 此操作后,将使用 0 B 的额外磁盘空间。 设置 initramfs-tools (0.99ubuntu13.5) ... update-initramfs:延迟更新(触发器激活) 处理 initramfs-tools 的触发器 ... update-initramfs:生成 /boot/initrd.img-3.13.0-79-generic E: /usr/share/initramfs-tools/hooks/fixrtc 失败,返回 1。 update-initramfs:/boot/initrd.img-3.13.0-79-generic 失败,为 1。 dpkg: 错误处理 initramfs-tools (--configure): 子进程安装后安装脚本返回错误退出状态 1 处理时遇到错误: initramfs-工具 E:子进程/usr/bin/dpkg返回错误码(1)
- sudo apt-get 升级
阅读包裹清单...完成
构建依赖树
读取状态信息...完成 以下包裹已被保留: 谷歌浏览器稳定 将升级以下软件包: comerr-dev libcomerr2 libss2 无人值守升级 4 个已升级,0 个新安装,0 个要移除,1 个未升级。 1 未完全安装或拆除。 需要获得 0 B/188 kB 的档案。 此操作后,将使用 4,096 B 的额外磁盘空间。 您要继续 [Y/n] 吗?是的 预配置包... (正在读取数据库...当前安装的 178509 个文件和目录。) 准备替换comerr-dev 2.1-1.42-1ubuntu2.2(使用.../comerr-dev_2.1-1.42-1ubuntu2.3_amd64.deb)... 拆包替换comrr-dev ... 准备替换 libcomerr2 1.42-1ubuntu2.2(使用 .../libcomerr2_1.42-1ubuntu2.3_amd64.deb)... 解包替换 libcomerr2 ... 准备替换 libss2 1.42-1ubuntu2.2(使用 .../libss2_1.42-1ubuntu2.3_amd64.deb)... 解包替换 libss2 ... 准备替换无人值守升级 0.76ubuntu1.1(使用 .../unattended-upgrades_0.76ubuntu1.2_all.deb)... 拆包更换无人值守升级... 处理安装信息的触发器... 处理 man-db 的触发器 ... 处理 ureadahead 的触发器... 设置 initramfs-tools (0.99ubuntu13.5) ... update-initramfs:延迟更新(触发器激活) 设置 libcomerr2 (1.42-1ubuntu2.3) ... 设置 Comrr-dev (2.1-1.42-1ubuntu2.3) ... 设置 libss2 (1.42-1ubuntu2.3) ... 设置无人值守升级 (0.76ubuntu1.2) ... 处理 initramfs-tools 的触发器 ... update-initramfs:生成 /boot/initrd.img-3.13.0-79-generic E: /usr/share/initramfs-tools/hooks/fixrtc 失败,返回 1。 update-initramfs:/boot/initrd.img-3.13.0-79-generic 失败,为 1。 dpkg: 错误处理 initramfs-tools (--configure): 子进程安装后安装脚本返回错误退出状态 1 由于已达到 MaxReports,因此未编写任何报告报告 处理 libc-bin 的触发器 ... ldconfig 延迟处理现在正在进行 处理时遇到错误: initramfs-工具 E:子进程/usr/bin/dpkg返回错误码(1) - sudo apt-get 删除 initramfs-tools-bin
阅读包裹清单...完成
构建依赖树
读取状态信息...完成 某些软件包无法安装。这可能意味着您有 请求不可能的情况,或者如果您使用的是不稳定的 一些必需的包尚未创建的分发 或被移出 Incoming。 以下信息可能有助于解决这种情况:
以下包具有未满足的依赖关系:
- cron : 取决于:adduser 但它不会被安装
- procps:取决于:initscripts
- 暴发户:取决于:initscripts 取决于:mountall 取决于:ifupdown (>= 0.6.10ubuntu5)
E: 错误,pkgProblemResolver::Resolve 生成的中断,这可能是由持有的包引起的。
在这里做什么?
【问题讨论】:
标签: ssh linux-kernel google-compute-engine apt-get gcloud