在Debian 5 lenny中chroot安装Debian 6 squeeze

Linux下面总有那么些闭源程序。但是也非常好用,μtorrent就是其中一个。但是Debian 5 lenny的Glibc库是2.7的。μtorrent硬编码来必须使用Glibc 2.11系列才行。现在的主流发行版 包括Debian6和Ubuntu,都是Glibc 2.11系列的。
但是服务器什么的 不是想重装就重装的。VPS不可能也没必要跑虚拟机,没办法咱们用Chroot在Debian 5 lenny中chroot Port 安装Debian 6 squeeze.


本文参考了 http://www.debian.org/releases/stable/i386/apds03.html.en
文件系统准备略,我们这使用网络安装,使用加拿大镜像http://ftp.ca.debian.org/debian/

[bash]apt-get install debootstrap -y
mkdir /debian6
debootstrap --arch i386 squeeze /debian6 http://ftp.ca.debian.org/debian/[/bash]

等待提示Base system installed successfully.基本系统就安装完毕了
现在 chroot into it。

[bash]LANG=C chroot /debian6 /bin/bash
#让Debian6能跑起来
mount -t proc proc /proc
mount -t devpts devpts /dev/pts
mount -t sysfs sysfs /sys
#更换一下源,然后想装什么装这么
[/bash]

由于udev的使用,dev目录下的东西现在是自动生成的 如果你想在这个chroot环境里面直接操控宿主机的硬件 可以使用mount --bind或者mount -o bind来做(在宿主机运行命令)

[bash]mount -o bind /dev /debian6/dev[/bash]

如果你想把宿主机的proc和sys目录也这样绑定过来 当然也可以

再开一个终端,拷贝宿主机的DNS设定到这里来

[bash]cp /etc/resolv.conf /debian6/etc/
cp /etc/locale.gen /debian6/etc/
#后面自己别忘记了运行下locale-gen
[/bash]

为了和宿主机的命令行终端看起来不一样,防止搞混淆,编辑.bashrc,在PS1=那一行前面加上

debian_chroot=debian_chroot

写fstab

[text]# UNCONFIGURED FSTAB FOR BASE SYSTEM
proc /proc proc defaults 0 0
sysfs /sys sysfs defaults 0 0
devpts /dev/pts devpts rw 0 0[/text]

基本上到这里就可以用了 你可以像使用一个Debian 6一样使用他,只要你chroot进这个环境,你就拥有了全套Debian6下面的C库什么的。所有μtorrent在这个环境下也能顺利运行。


升级宿主机的C库是有风险的,我们通过chroot port来规避了这样的风险,在不重装系统的前提下“移植”整套Debian6的东西到Debian5里面来了。这个方法同样也适用于CentOS(CentOS的套件只能用老掉牙来形容。)。
现在我用着的一个VPS就是基于OpenVZ虚拟化的,所以这个Debian6拥有EL的内核,Debian 5的宿主。感觉像俄罗斯套娃。

可能遇到的问题
在chroot环境下非root用户执行screen提示Cannot open your terminal '/dev/pts/0' - please check.
这是因为/dev/pts/0已经在宿主机的root用户上打开了。解决办法就是用script在wrap一层就可以了
比如
[bash]sudo -Hu nobody script /dev/null
screen[/bash]
或者直接[bash]sudo -Hu nobody script /dev/null -c screen[/bash]

Author Info :
  • From:在Debian 5 lenny中chroot安装Debian 6 squeeze
  • URL:https://blog.ihipop.com/2011/07/2568.html
  • Please Reserve This Link,Thanks!
  • 《在Debian 5 lenny中chroot安装Debian 6 squeeze》上有2条评论

    发表回复

    您的电子邮箱地址不会被公开。 必填项已用*标注