在执行版本升级之前,应该采取什么步骤以避免出现问题?


10

在收到有关1404_HWE_EOL的通知后,我正在考虑将重要的生产系统升级到16.04.1.。我说“重要的生产系统”是因为这是我每天在工作中使用的工作站。我想避免错误或其他问题,因为我没有太多的时间花在调试和整理问题上(IT部门对Linux系统没有帮助)。我已经备份了所有数据,但没有当前的操作系统分区(我可能会将OS驱动器作为回退的另一层)。升级之前,我还应该执行哪些其他步骤?我想知道在使用Ubuntu提供的发行版升级时如何最大程度地减少复杂性。

我已阅读有关在升级之前删除PPA的信息。我已经安装了27个PPA,删除它们带来的所有程序都需要一些时间,然后在升级后将其恢复。这有很大的好处吗?还要别的吗?


该生产系统是VM吗?如果是这样,您可以选择在升级之前拍摄快照和/或将其还原。为了避免在本地开发计算机(而不是生产服务器)上升级失败,我已经使用了此功能。
ashes999

它不是VM。在这种情况下,这将是一个不错的选择。
史蒂文·霍维尔

1
升级后,该过程会自动禁用添加的PPA-您不必删除它们。升级后,我可以重新启用它们。(对我来说)牙齿问题主要是关于几个PPA尚未更新以支持Xenial的。
帕迪·兰道

注意 如果您有AMD显卡,请绝对确保它与16.04中提供的驱动程序兼容。我的不是,为了我的硬件长寿,我回到了14.04。
托尼·马丁

Answers:


13

重要的生产系统

我不会升级这样的系统。我将16.04安装在另一台计算机上,将实时数据复制到该计算机上。测试,再测试一些。然后使该机器成为生产服务器。

您可以在当前的14.04服务器上使用18.04重做此操作。

为什么要冒险?


在我的情况下,我没有完整的重复硬件堆栈,因此这意味着使用dd克隆驱动器(从SSD到HDD),测试原始驱动器和克隆,然后进行核对并铺装以放置新的OS。我过去一直这样做,但希望遵循以下几组步骤可以为升级到新版本提供可靠的方法。这太乐观了吗?
史蒂文·霍维尔

不。完全有可能。您可能需要考虑的1件事:16.04使用“ systemd”。因此,所有服务的启动已更改。
Rinzwind '16

那么,当do-release-upgrade用于将Ubuntu升级到下一个LTS版本时,哪些步骤可以改善结果呢?
史蒂文·霍维尔

虽然此答案提供了合理的建议,但根据我的经验,这是一种安全的升级方法,但未提供有关使用内置发行版升级选项的信息。这就是我想更好地理解的。
史蒂文·霍维尔

抱歉,“使用do-release-upgrade时改善的结果”相比又是什么?
Rinzwind '16

2

我将对工作站进行映像备份(在Linux Live System中为“ dd”),然后将其转换为VirtualBox VM。(RAW图像到VDI)。在那之后,请抓紧时间并在VB中运行该映像。进行所有升级步骤。如果某事不起作用,请按一下。升级了系统后,您可以将VDI转换回原始数据,然后将其“ dd”添加到系统中或播放运行手册。
但是,在覆盖旧系统之前,请务必进行最后的“ dd”映像备份。
我更喜欢从USB拇指驱动器运行系统,因此系统安装是通过“ VDI-> RAW-> usb tumb-drive”完成的,并从升级/安装的系统引导。准备。好的,您可以“松开”一个USB端口,但是您永远不会感到压力,并且可以轻松进行系统备份。


1

这是@rinzwind答案的一种变体,可能与您已经拥有的硬件一起使用。

如果您的内部磁盘驱动器上有(或可以释放)足够的可用空间,则可以创建2个新分区(使用实时CD / USB发行版中的gparted之类的文件)并将根(/)复制到其中一个和/ home到另一个,并将它们标记为root2和home2之类的东西,以便轻松找到它们。

如果root和home位于同一分区中,则可以将其复制,但是如果它们分开,出于很多原因,它要好得多。

您必须通过将更改编辑到/etc/fstab新的根分区上(更新新的/ home和根分区的UUID),将新的根指向新的/ home。

您可以通过执行以下操作ls -l /dev/disk/by-label来找到它们:查找新的根目录和主目录当前位于的设备,然后运行ls -l /dev/disk/by-uuid以从设备名称获取到uuid。

接下来,使用grub-customizer之类的东西(从您的生产系统中)更新grub,以将新的根目录添加到grub菜单中。

现在,您将在这些分区上拥有完整的实时系统副本。您可以在此副本上运行升级,但仍保持生产版本不变。您可以引导到任何您要处理的文件。

升级完成后,您可以告诉grub副本是实时副本(默认条目),而原始副本现在是备份。grub-customizer使这种事情变得相当容易。

如果/ home或root中的数据太多(使它们太大而无法复制),请首先将其放在其自己的分区中(确保将有关此移动的信息告知访问它的程序)。它不需要重复-只需备份即可。

这也使备份数据变得更加容易,因为它不再与系统内容混在一起。

通过第二组“测试”分区,您现在可以尝试在日常工作中依赖的系统上不愿冒险的各种事情。

我目前正在我的“开发”分区中以16.04运行这样的Kubuntu 12.04,直到按照我的方式配置它为止。

如今,由于磁盘驱动器的价格如此之低,您甚至可以将现有的内部驱动器复制到更大的新驱动器中,并在必要时使用-如果您的公司允许您使用。

该答案涵盖了如何执行此操作的所有主要细节。我没有尝试覆盖每个步骤的每个小细节。但是,由于您正在使用所有内容的副本,因此应该不会有任何严重的问题,并且在stackexchange上的某处已经涵盖了其他所有内容。


0

尽管这不适用于您的特定情况,但如果Ubuntu系统是VM,则可以解决此问题,方法是在无法正常工作之前先进行快照升级和还原。

我曾经升级过我的一台虚拟机,尽管升级失败并可以回滚,但我没有一个干净/功能良好的系统。

@Rinzwind的答案也适用于VM:创建新的VM,在其上安装新的Ubuntu版本,然后开始复制内容。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.