然后 13.04 版本就发布了。不幸的是,我只在早期升级时遇到过问题,并且总是以失败告终,最终不得不重新安装整个系统。这次我想避免这种情况。
我有一个装有 Ubuntu 12.10 32 位的盒子,运行 Gnome 3 classic + 各种服务,如 BIND9、MySQL、Postfix、Apache 等。
经过反复考虑,我决定创建当前系统的克隆。如果系统崩溃,我可以恢复。
问题是如何最好地做到这一点。我可以使用 克隆分区dd
,但猜测升级也意味着对 GRUB 和 MBR 进行一些更改。
目前的布局大致如下:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 931.5G 0 disk
├─sda1 8:1 0 7.6G 0 part [SWAP]
├─sda2 8:2 0 93.5G 0 part /mnt/old_ubu_11.04
├─sda3 8:3 0 93.5G 0 part /
├─sda4 8:4 0 1K 0 part
└─sda5 8:5 0 737G 0 part /mnt/storage
sdb 8:16 0 1.8T 0 disk
└─sdb1 8:17 0 1.8T 0 part /mnt/develop
sdc 8:32 0 1.8T 0 disk
...
系统和主页位于sda3
。
首先想到的可能是这样的:
dd if=/dev/sda3 of=/mnt/storage/ubuntu_12.10.img
dd if=/dev/sda bs=512 count=1 of=/mnt/storage/MBR.img
dd if=/dev/sda bs=512 skip=1 count=3 of=/mnt/storage/POST_MBR.img
我猜,这种方法的问题在于伪文件系统,如/sys
和/proc
(所以我应该从实时 CD/USB 执行此操作)。将这些图像写回去会不会有问题?
会克隆或者类似的东西更好?(从未使用过)。
另外,我真正想做的是使用虚拟系统。猜测它将有 80% 左右的相似度(由于硬件层等)。然后do-release-upgrade
通过 VirtualBox 等在其中运行。这是一个可行的选择吗?
变更说明
我添加这一点是因为这是我的问题的部分内容——并且可能对其他人有帮助。我还想知道它是否准确地描述了将要更新的内容。如果能确认这一点就更好了。
不!
apt-get --simulate dist-upgrade
,不会模拟从一个版本到另一个版本的升级。例如正如这里解释的那样:
apt-get dist-upgrade
和上面一样(apt-get upgrade 原文如此。),除了添加“智能升级”复选框。它告诉 APT 使用“智能”冲突解决系统,并且它将尝试升级最重要的软件包,而如果有必要,则牺牲不太重要的软件包。
“apt-get dist-upgrade” 不执行分发升级。
(查看网络上的许多注释和“答案”,它们都将此作为一种选择。)
经过一番折腾之后,我得出了以下结论:
cd /etc/apt/
sudo cp sources.list sources.list_bak
sudo vi sources.list
# in vim:
:%s/quantal/raring/gc
# Yes, I can do sed -i 's/...' but like to have bit more control.
:wq
# make log
sudo apt-get update
cd /tmp
apt-get --simulate dist-upgrade > quantal-2-raring.log 2>&1
# and better to be safe then sorry so at once:
su -c 'cp sources.list sources.raring && mv sources.list_bak sources.list && apt-get update'
给我此列表的變化。
附注:
美国/etc/apt/sources.list
:
# See http://help.ubuntu.com/community/UpgradeNotes for how to upgrade to
# newer versions of the distribution.
该文件已经过时,可能(也)应该链接到此。
答案1
/sys /dev 等。temp 和 memdisk fs 将不会出现在您的备份中,因为 dd 只会从磁盘进行原始读取的转储。将发生变化的是 /var/run 等的临时文件,这些文件将保留在您的转储中。是的,磁盘或 usb 启动可以帮助覆盖此问题。