如何在 Xen VPS 上升级 Linux

有客户询问能否重新 rebuild 他的 Ubuntu 10.04 VPS 并升级到我们刚推出的 Ubuntu 12.04 LTS Server 版本,其实用户可以自己完成升级而不用我们 rebuild,不损失任何数据。和其他一些 Xen VPS 服务商不同,我们采用 PyGrub 来启动和管理 domU 的内核而不是在 dom0 范围内统一管理内核,这意味着用户可以在自己 VPS 上启动和使用自己的内核,这样做的好处是用户完全可以自己升级 VPS 的内核以及整个 Linux 系统(版本),完全不用我们的干预。升级办法很简单,就和在自己电脑上升级 Linux 一样,不过 OpenVZ VPS 是不能这样包括内核在内完整升级到新版本的。VPSee 建议在做任何升级之前做好备份。

Linode 和 SliceHost 两大 Xen VPS 服务商都相继发布了 Ubuntu 10.04 LTS 版本的 VPS. 我们上个星期安装和测试了 Ubuntu 10.04 LTS VPS,使用 8GB SUN V20z 服务器跑32个 128/256MB VPS 的混合,每个 VPS 上跑不同的应用和压力,测试结果在意料之中,Ubuntu 10.04 LTS 已经被我们加入到 VPS 计划之中并应用到了生产环境。

升级 Ubuntu 12.04 到 14.04(2014年4月17日更新)

我们的用户可以在自己的 VPS 上升级 Ubuntu 12.04 LTS Server 到 Ubuntu 14.04 LTS Server:

# apt-get update
# apt-get upgrade
# do-release-upgrade -d
# reboot

升级 Ubuntu 10.04 到 12.04

同样的,升级 Ubuntu 10.04 LTS Server 到 Ubuntu 12.04 LTS Server:

# apt-get update
# apt-get upgrade
# do-release-upgrade -d
# reboot

升级 CentOS 5.4/5.5 到 5.8

正在使用 CentOS 5.4/5.5 VPS 的用户想要升级到刚发布的 CentOS 5.8 版本的话就更简单了,直接在命令行:

# yum update
# reboot

升级 CentOS 5.x 到 6.x

除了重装系统,没有办法从 5.x 直接升级到 6.x:

升级 Fedora 12, 13 到 14

使用 Fedora 12 VPS 的用户可以这样升级到 Fedora 14:

# rpm --import https://fedoraproject.org/static/97A1071F.txt

# yum update yum
# yum --releasever=14 distro-sync --skip-broken

升级 Debian 5 到 6

使用 Debian 5 VPS 的用户可以这样升级到 Debian 6:

# wget http://ftp-master.debian.org/keys/archive-key-6.0.asc
# apt-key add archive-key-6.0.asc
# aptitude update

# vi /etc/apt/sources.list
:%s/lenny/squeeze/g
:wq

# apt-get update
# apt-get install apt dpkg
# apt-get dist-upgrade

# reboot

升级 Debian 6 到 7

正在使用 Debian 6 的用户可以这样升级到 Debian 7:

# vi /etc/apt/sources.list
deb http://mirrors.kernel.org/debian/ wheezy main
deb-src http://mirrors.kernel.org/debian/ wheezy main

deb http://security.debian.org/ wheezy/updates main
deb-src http://security.debian.org/ wheezy/updates main

# apt-get update
# apt-get upgrade
# apt-get dist-upgrade

# reboot

评论 (21 Comments)

  1. 如果要用新的内核启动VPS呢?
    CentOS 5.4升级后也自动用新的内核启动吗?

  2. 可以,如果不是自动的话,可以在 grub.conf 里面指明新内核启动。

  3. 请教一下,俺安装您的指南装好了debian 为dom0的xen 环境,也在上面装了debian5和ubuntu dapper的domU,但是10.04的始终装不成功,想请问您安装10.04的方法是怎样,谢谢。

  4. 和安装其他版本 ubuntu 一样啊,没有什么很特别的地方,你安装不成功的错误提示是什么?

  5. FATAL: Error inserting fan (/lib/modules/…/fan.ko): No such device
    WARNING: Error inserting processor (/lib/…/acpi/processor.ko): No such device
    [ 1.308284] thermal: Unknown symbol acpi_processor_set_thermal_limit
    FATAL: Error inserting thermal(…): Unknown symbol…, or… (see dmesg)
    done.
    Begin: Mounting root file system …
    Begin: Running /scripts/local-top …
    [ 1.542807] device-mapper: uevent: version 1.0.3
    [ 1.543440] device-mapper: ioctl: 4.13.0-ioctl (2007-10-18) initialised
    Volume group “debian5xen” not found
    done.
    Begin: Running /scripts/local-premount … done.
    [ 1.617003] kjournald starting. Commit interval 5 seconds
    [ 1.617012] EXT3-fs: mounted filesystem with ordered data mode.
    Begin: Running /scripts/local-bottom … done.
    done.
    Begin: Running /scripts/init-bottom … done.
    init: ureadahead main process (550) terminated with status 5
    libudev: udev_monitor_new_from_netlink: error getting socket: Invalid argument
    mountall:mountall.c:3194: Assertion failed in main: udev_monitor = udev_monitor_ new_from_netlink (udev, “udev”)
    init: mountall main process (553) killed by ABRT signal
    init: console-setup main process (556) terminated with status 1
    General error mounting filesystems.
    A maintenance shell will now be started.
    实在不好意思贴这么多代码上来,对于linux的启动过程我也不太了解,安装提示输入密码后,进去了A maintenance shell,除了查看不能做任何动作,我是通过您讲的第一种方法从网络安装的,因为那个镜像网站俺翻墙倒是进去了,但是下载好像还要$10。谢谢。

  6. 看不出来什么原因,这个错误信息是在哪个阶段出现的?是在装 domU 里面还是在 dom0 外面?为什么会出现 Volume group “debian5xen” not found?难道你的逻辑卷启动的时候没有成功挂载吗?

  7. 这个是domU启动时用xm console进去看到的;您是用xen-create-image还是直接用镜像呢?前者如果使用您提到的–dist=lucid参数就会提示没有相关的hook(记不太清了)去处理,需要手动创建指向以前老版本的hook文件的新链接,我猜测是hook里面的操作不再适合新ubuntu了。

  8. 问题解决了,谢谢。
    参考了这个:http://ubuntuforums.org/showthread.php?p=9333412
    这个帖子和我的环境一模一样。

  9. 问个小问题,我的VPS刚刚升级为Ubuntu 10.04
    File system type还是ext3,有没有必要升级为ext4呢
    我本地的Ubuntu升级后直接就是ext4的,谢谢

  10. 没必要升级到 ext4,我们 host 服务器是 ext3,所以 VPS 升级到 ext4 没多大意义。升级文件系统很危险,如果非常想升级文件系统的话,请确保全面备份后再操作。

  11. 多谢回复,VPS就不升级了
    自己在本地玩玩吧

  12. @vpsee,请教一下,debian在升级的时候,为什么aptitude和apt-get都是用呢?有什么区别,现在我基本都用aptitude了,第二个问题,apt-get install apt dpkg,这个的目的是什么?

  13. @matrix.ding
    aptitude 安装后的依赖包可以在删除的时候一并删除掉,这个会让系统更干净。apt-get install apt dpkg 是用来安装和升级 apt dpkg 自己本身。

  14. 请教VPSsee2个问题:

    我的宿主机是8.04 64位ubuntu系统:
    1、可以安装比宿主机更高版本的系统么?
    2、如果安装了8.04的虚拟机,然后升级到10.04 版本, 这虚拟机重启启动不了,是不是本身不支持,还是可以通过相关设置解决该问题

    希望能得到您的回复,谢谢。

  15. @xen-fans
    1、可以;
    2、这是可以解决的问题,修改设置什么的,具体看情况,可能性太多。

  16. VPSee,你好!
    我在8.04 的dom0上安装10.04 的domU,设置root密码后完成了安装。启动10.04 的domU系统报错,信息如下:
    Begin: Running /scripts/local-bottom …
    Done.
    Done.
    Begin: Running /scripts/init-bottom …
    Done.
    init: ureadahead main process (2105) terminated with status 5
    libudev: udev_monitor_new_from_netlink: error getting socket: Invalid argument
    mountall:mountall.c:3194: Assertion failed in main: udev_monitor = udev_monitor_new_from_netlink (udev, “udev”)
    init: mountall main process (2108) killed by ABRT signal
    General error mounting filesystems.
    A maintenance shell will now be started.
    CONTROL-D will terminate this shell and reboot the system.
    Give root password for maintenance

    请教该问题从哪些方面考虑解决?
    PS:我在这个8.04的dom0系统上安装8.04的domU可以正常启动。

  17. @xen-fans
    ubuntu 8.04 dom0 上不能(或者说很困难)装 ubuntu 10.04 domU,但是可以装 8.04 domU,从 10.04 开始 ubuntu 有重大变化,init, upstart, mount_all 等等包含了新内核才用到的 system calls,中间还夹着 python 版本和 xen 版本问题。

  18. 谢谢VPSee的回复。
    我现在放弃了在8.04上安装10.04的domU,改在10.04的dom0上安装10.04的domU,然而同样遇到了问题。
    1、采用你的blog 的方法安装的内核(编译了4次,确认编译没有问题),启动后卡在挂载文件系统这里不动了。
    信息如下:
    0.500248] Magic number: 1:252:3141
    [ 0.500264] XENBUS: Device with no driver: device/console/0
    [ 0.500271] drivers/rtc/hctosys.c: unable to open rtc device (rtc0)
    [ 0.500277] BIOS EDD facility v0.16 2004-Jun-25, 0 devices found
    [ 0.500281] EDD information not available.
    [ 0.500425] Freeing unused kernel memory: 356k freed
    [ 0.500585] Write protecting the kernel read-only data: 7332k
    [ 5.628409] EXT4-fs (xvda2): INFO: recovery required on readonly filesystem
    [ 5.628422] EXT4-fs (xvda2): write access will be enabled during recovery
    [ 5.628744] EXT4-fs (xvda2): barriers enabled
    [ 5.724892] kjournald2 starting: pid 137, dev xvda2:8, commit interval 5 seconds
    [ 5.724937] EXT4-fs (xvda2): delayed allocation enabled
    [ 5.724945] EXT4-fs: file extents enabled
    [ 5.726799] EXT4-fs: mballoc enabled
    [ 5.726817] EXT4-fs (xvda2): ecovery complete
    [ 5.726946] EXT4-fs (xvda2): mounted filesystem with ordered data mode
    就卡在这里不动了。
    2、我采用pvops的内核文件编译的内核,可以进去系统,但系统无网卡,只有1个lo接口,mii-tool显示无网卡设备。
    启动过程有报错信息:
    registered taskstats version 1
    No TPM chip found, activating TPM-bypass!
    XENBUS: Device with no driver: device/vbd/51714
    XENBUS: Device with no driver: device/vbd/51713
    XENBUS: Device with no driver: device/vif/0
    XENBUS: Device with no driver: device/console/0
    Magic number: 1:252:3141
    drivers/rtc/hctosys.c: unable to open rtc device (rtc0)
    Initalizing network drop monitor service

    请教一下,在10.04上安装domU ,还有哪些办法可以尝试?期待您的回复。谢谢

  19. @xen-fans
    无网卡可能是因为在内核配置的时候没有选择自己机器的网卡型号,重新配置内核后再编译安装内核。
    在 ubuntu 12.04 上安装 xen 可以直接用 sudo apt-get install xcp-xapi,简单方便,而且官方支持。
    源代码编译安装问题多多在这里不是一句话就可以搞定的~

  20. @vpsee
    请问在ubuntu 12.04上用apt-get install xcp-xapi后网络配置应该怎么配置?
    原来的网卡有eth0,是一个固定的ip地址,新的xenbr0该怎么配置呢?我装了xcp后网络就断了,不能连接外网了。请指导下,谢谢。

  21. 玩Xen的可以升级内核的,升级OS的,真不多。国内基本没一家可以做到的。不信大家去阿里云折腾一下。

发表评论