如何升级Debian Lenny(Debian 5.0)到Squeeze(Debian 6.0)在Xen VPS上

如何升级Debian Lenny(Debian 5.0)在Xen VPS上压缩(Debian 6.0)

本教程将介绍如何将基于Xen的虚拟专用服务器(VPS)上的Debian Lenny(Debian 5.0)安装升级到Squeeze(Debian 6.0),包括内核更新,基于依赖关系的引导顺序和转换为UUID。

如果您使用通常的Debian方式,只需使用apt-get dist-upgrade,您最有可能会遇到无法启动的系统。 这主要是因为grub的更新失败。

限制:您将无法更新grub 。 你必须保持旧的grub版本; 本教程将展示如何实现这一点。 如果有人找到解决这个问题的解决方案,请提交评论。 但是,随时欢迎您的意见和批评!

免责声明:即使本手册中的所有步骤都经过仔细测试, 我也不会保证这将为您工作! 请自行承担风险。 不要在生产环境中尝试此操作,如果您无法访问串行控制台,请勿尝试此操作,以便您能够反转步骤,并提前备份数据或创建快照! 你可能会遇到一个无法启动的系统!

0一些可选步骤

以下步骤不需要升级到Squeeze,但它们可能对您的某些人有用。

0.1添加交换文件(可选)

对于那些运行带有非常少的内存和交换空间(<512 MB)的VPS,像我一样,扩展交换空间可能是好的甚至是必要的。

以下命令将在根目录中创建一个名为swapfile的2 GB交换文件,并将其格式化并激活它:

dd if=/dev/zero of=/swapfile bs=1024 count=2097152 && mkswap /swapfile && swapon /swapfile

这会在/ etc / fstab中添加一行,以便在引导期间自动激活交换文件:

echo "/swapfile none swap sw 0 0" >> /etc/fstab

0.2 Make Shell提示彩色(可选)

此命令在您的/root/.bashrc中添加一个条目,这将在您下次登录后给您一个彩色的提示,如root @ host/ etc

echo "PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '" >>/root/.bashrc

1升级系统到Debian Squeeze(Debian 6.0)

请确保您按照所有步骤仔细。 在你完成这个操作到最​​后才能做任何事情。 特别在你完成之前不要重新启动

1.1更新sources.list

在/etc/apt/sources.list中使用以下条目:

vi /etc/apt/sources.list

你应该用靠近你的镜子来代替我们 。 在这些行之后,您可以根据需要添加其他来源。

#squeeze
deb http://ftp.us.debian.org/debian/ squeeze main contrib non-free
deb-src http://ftp.us.debian.org/debian/ squeeze main contrib non-free
# squeeze release replacement mirrors for volatile sources
deb     http://mirrors.kernel.org/debian squeeze-updates main contrib
deb-src http://mirrors.kernel.org/debian squeeze-updates main contrib
#security-squeeze
deb http://security.debian.org/ squeeze/updates main contrib non-free
deb-src http://security.debian.org/ squeeze/updates main contrib non-free

apt-get update

1.2安装/更新/配置区域设置

我们提前做这个步骤来摆脱烦人的错误信息,如无法设置区域设置; 确保$ LC_ *和$ LANG在安装过程中是正确的:

apt-get install locales

服务重新启动GNU libc库升级:
[...]
<Ok>

dpkg-reconfigure locales

选择适合您使用的语言环境,在本示例中为en_DK.UTF-8

要生成的区域设置
[...]
[*] en_DK.UTF-8
[...]

设置默认语言环境:

系统环境的默认语言环境:
en_DK.UTF-8

1.3防止grub自动升级

以下命令将配置apt 升级grubgrub-commongrub-pc (如果已安装):

echo "grub hold" | dpkg --set-selections && echo "grub-common hold" | dpkg --set-selections && echo "grub-pc hold" | dpkg --set-selections

1.4运行dist升级

现在我们准备下载并安装实际升级了。 根据您最近的更新,下载和安装将会有很多。 安装过程中会遇到几个重要问题,请仔细阅读。 跑:

apt-get dist-upgrade

只需确保从第1步.3中的所有内容通过检查以下行来正常工作:

计算升级...完成
以下包将被删除:
[...]
将安装以下新软件包:
[...]
以下软件包已被保留:
grub grub-common
以下软件包将升级:
[...]
是否要继续[Y / n]? Y

使用破折号 ,不管你喜欢什么,它不影响升级过程:

使用破折号作为默认系统shell(/ bin / sh)?
<是>

重新启动PAM库升级服务:
[...]
<Ok>

迁移到基于依赖关系的引导顺序:

将遗留引导排序迁移到基于依赖关系的排序?
<是>

使用UUID而不是设备名称:

在系统配置中更新磁盘设备ID?
<是>

将配置更改应用于磁盘设备ID?
<是>

1.5编辑/ etc / fstab

vi /etc/fstab

/ etc / fstab注释掉/ dev / pts/ dev / shm ,否则系统将无法启动:

[...]
# none             /dev/pts      devpts   gid=5,mode=620 0 0
# none             /dev/shm      tmpfs    defaults       0 0
[...]

1.6配置grub

最后,我们必须将grub配置为使用UUID而不是设备名称。

cat /etc/fstab

查找并复制您的/分区的UUID。 重要:您的 fstab复制UUID,而不是从本示例中复制UUID:

[...]
# /dev/sda1        /             ext3     defaults       1 1
UUID=your-uuid-here        /             ext3     defaults       1 1
[...]

备份当前menu.lst

mv /boot/grub/menu.lst /boot/grub/menu.lst.backup

重建menu.lst

update-grub

编辑/boot/grub/menu.lst

vi /boot/grub/menu.lst

使用从/ etc / fstab复制的UUID字符串替换root = UUID = ...root = / dev / ...的所有出现:

[...]
## ## End Default Options ##
title		Debian GNU/Linux, kernel 2.6.32-5-xen-amd64
root		(hd0)
kernel		/boot/vmlinuz-2.6.32-5-xen-amd64 root=UUID=your-uuid-here ro 
initrd		/boot/initrd.img-2.6.32-5-xen-amd64
title		Debian GNU/Linux, kernel 2.6.32-5-xen-amd64 (single-user mode)
root		(hd0)
kernel		/boot/vmlinuz-2.6.32-5-xen-amd64 root=UUID=your-uuid-here ro single
initrd		/boot/initrd.img-2.6.32-5-xen-amd64
[...]

仔细检查你是否包含单词UUID =,后跟数字,而不仅仅是UUID本身!

1.7清理(可选)

如果您确定不再需要它们,您可以自动删除已安装并不再需要的软件包:

apt-get autoremove

2重启新系统

如果您确信您遵循上述所有步骤,并且没有收到任何错误消息,那么现在是重新启动进入新系统的时候了。 再次:我不保证您的系统将启动,但我祝你好运! ;-)如果一切都失败,您必须访问VPS的串行控制台仿真,如果您知道您在做什么,或者您必须恢复备份或快照,则还原步骤。

reboot

与Debian 6.0一起玩乐! 评论和批评欢迎!

赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏