如何升级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
不升级grub
, grub-common
和grub-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一起玩乐! 评论和批评欢迎!