在 do-release-upgrade 过程中按 Ctrl+c。我把它弄坏了吗?

在 do-release-upgrade 过程中按 Ctrl+c。我把它弄坏了吗?

我执行了 do-release-upgrade。在此过程中,系统询问我是否要用新版本替换 init.d 中的 rsync 配置文件或保留现有文件。我按 D 查看差异,然后无法返回问题/安装脚本。我愚蠢地按了 ctrl c,结果没有返回升级过程,而是返回到了 shell。

我现在担心安装损坏了 :( 我该怎么办?

答案1

/etc/apt/sources.list在您中止升级时,您的版本很可能已更改为新版本。这将导致do-release-upgradeapt-get dist-upgrade行为不可预测。

  • 首先更改它(假设您从 11.10 升级):

    sudo sed -i -e 's/precise/oneiric/g' /etc/apt/sources.list

  • 然后执行 a ,sudo apt-get update接着执行 a do-release-upgrade

答案2

还有一个比用 sed 替换 source.list 中的 dist 名称更好的方法,如另一个答案所述。升级程序会创建一个 /etc/apt/sources.list.distUpgrade 备份文件,您只需将其重命名为 /etc/apt/sources.list 即可恢复原始 sources.list,apt update然后重新启动 do-release-upgrade。

答案3

您可以再次运行do-release-upgrade以重新启动发布升级。

此次发布升级,又将从头开始。

答案4

有一种方法可以继续发布升级意外按下 CTRL + C 后无需终止 dpkg 进程或者重新启动发布升级

免责声明:如果你也终止了屏幕会话,此解决方案将不起作用。在这种情况下终止 dpkg 进程是正确的做法。

关于 do-release-grade 你需要知道的一切

  1. 它在屏幕内运行
  2. 该进程在端口“1022”启动一个额外的 ssh 守护进程

这个想法是启动到机器的一个新的 ssh 连接并使用屏幕返回到应该仍在运行的断开连接的会话。

脚步

  1. ssh user@machine -p 1022 # get back to the machine being upgraded
  2. sudo screen -list # this will list the screen sessions available

您将要寻找以 开头的行somenumber.ubuntu-release-upgrade-screen-window

此会话可能处于附加状态或分离状态,这并不重要。

  1. sudo screen -d -r root/somenumber.ubuntu-release-upgrade-screen-window #command will get you back to your session and go on from the point where you left it pressing that fatal CTRL + C

在此期间的某个时刻,您的控制台上可能会出现建议,让您按此或该键来恢复或暂停/取消暂停升级过程。

例子

user@machine:~# sudo screen -list
There is a screen on:
        1883.ubuntu-release-upgrade-screen-window       (11/14/2022 09:45:15 AM)        (Attached)
1 Socket in /run/screen/S-root.
user@machine:~# sudo screen -d -r root/1883.ubuntu-release-upgrade-screen-window

相关内容