由于受不了RPM的气,决定把服务器上的redhat linux 9.0卸掉,使用debian系统。
因为服务器上运行着ftp,www,squid,nat等很多服务,所以关掉机子全部重装会长时间影响所提供的服务。
所以决定通过chroot环境从硬盘安装debian。
参考文档:
http://www.debian.org/releases/stable/i386/ch-preparing.en.html#s-linux-upgrade
首先准备一个空闲的分区/dev/hda5,格式化成reiserfs日志文件系统,总共有4G多,哈,浪费了点。命令如下:
$/sbin/fsck.reiserfs /dev/hda5
$mkdir /mnt/debinst
$mount /mnt/hda5 /mnt/debinst
$cd /mnt/debinst
$mkdir work
$cd work
然后下载debootstrap包系统,用于安装debian最基本的系统。命令如下:
$lynx http://ftp.debian.org/debian/pool/main/d/debootstrap/debootstrap_0.2.17.1_i386.deb
解压:
$ar -xf debootstrap_0.2.17.1_i386.deb
然后会产生如下文件:
-rw-r--r-- 1 root root 954 Nov 14 15:18 control.tar.gz
-rw-r--r-- 1 root root 55449 Nov 14 15:18 data.tar.gz
-rw-r--r-- 1 root root 4 Nov 14 15:18 debian-binary
再解压 data.tar.gz:
$cd /
$tar -zxvf /mnt/debinst/work/data.tar.gz
会在/usr目录下产生安装的命令文件
就可以运行/usr/sbin/debootstrap从安装基本的系统
总共有三种安装方法,1、是从网络上直接安装(一般不推荐);2、从CDROM上获取软件包;3、从网络上下载basedebs.tar包,然后从包里直接安装。
我已经下载了一个sarge-i386-netinst.iso,所以我选择从CDROM然后安装,命令如下:
$mount -o loog sarge-i386-netinst.iso /mnt/cdrom
$/usr/sbin/debootstrap --arch i386 sarge /mnt/debinst file:/mnt/cdrom/debian
然后,基本的debian系统就装好了。
**在运行debootstrap命令之前一定要先把chroot命令所在的路径放入path变量中,切记**
现在开始进入chroot环境:
$chroot /mnt/debinst /bin/bash
现在要紧的是
#mount -t proc proc /proc
然后编辑/etc/network/interfaces /etc/resolv.conf 和 /etc/hostname文件
/etc/network/interfaces的样本可以在/usr/share/doc/ifupdown/examples找到。
接下来马上要配置一下apt-get:
#dpkg-reconfigure apt-get
设置更新方式为ftp,地址为ftp://ftp.linuxforum.net/debian,这是大陆的一个镜像点,速度较快。版本设为stable,testing,unstable均可,区域设为main。
然后运行 apt-get update 来更新最近软件包信息
现在可以开始用apt-get安装locales包了
#apt-get install locales
然后会要求设置locales信息:
把cn_zh GB2312选上就可以了。
之后运行
# /usr/sbin/base-config
进行一般的设置,如时区、root密码,添加一般用户等等
接下来安装核心
#apt-get install kernel-image-2.4.20-3-686
安装核心过程中,会提示是否安装lilo启动器以及设置活动分区,均选择否。
然后安装grub(为了跟原系统保持一致)。
#apt-get install grub
终于搞好了!!!
现在系统已经运行在debian/GNU上了。
安装过程中出现的几个问题:
1、apache2的安装出现问题,无法绑定端口80,先已经改为apache。问题研究中,最终将升级为apache2。
2、网卡启动有问题,使系统迁移受到阻碍。错误为:
ERROR while getting interface flags: No such device
Bind socket to interface: No such device
相关问题见:
http://www.hikz.com/cgi-bin/lb5000/topic.cgi?forum=31&topic=142&show=0
后根据邮件列表上的信息,在系统启动时同时运行pcmcia,问题解决。
还有待进一步研究。
由于原来的RH系统装有grub启动器,且boot目录专门用一个分区。这位升级系统提供很大方便,menu.lst文件的信息基本不用改,能被多个系统公用,使用时只需添加相应的启动项即可。grub的root分区不变(此分区非linux的根分区)。
debian系统的apache服务启动用户为www-data,服务根目录为/etc/apache,特别apache2的默认文档根目录也不是/var/www,cgi-bin目录为/usr/lib/cgi-bin,这些都需要手工更改。debian和rh在配置文件的设置上还有很多不同。
接下来要做的是测试一段时间新的系统,在一两个月中,慢慢将整个rh系统彻底卸掉,跟 rpm说拜拜。原系统在测试期间仍保留。