2008年10月10日星期五

打造轻巧的 Linux 服务器

打造轻巧的 Linux 服务器

 
 

Sent to you by xingxing via Google Reader:

 
 

via 花儿开了 by iStef on 10/1/08

好久没写 Blog,忙啊什么的就不说了,懒是最大的原因。最近忙着给实验室做个网站,除了我熟悉的 Web Design & Development 之外,这次我还搭建了一台 Linux 服务器。一方面用来放置我们的站点,另一方面实验室放一台服务器,也为实验室的成员们提供一些额外的服务,方便科研和学习。

虽然做 Web 我是轻车熟路了,但倒腾 Linux 服务器我绝对还是个新手。虽然平时为了开发也没少倒腾过,但基本上都是调一下 Apache 或 PHP 之类的事情。所以下面写的东西只是个记录,不敢班门弄斧,方法也都是 Google 来的,如果您有什么意见建议,欢迎您提出来。

本文只写一下搭建基本服务器的部分。发行版我选择的是 Ubuntu,虽然我知道 CentOS 或是 RHEL 可能性能会更好点,但毕竟 Ubuntu 比较熟悉也比较简单。Ubuntu 本身有 Server 版,而且可以几乎无需干预的安装好一台 LAMP Server,但 Linux 本身的乐趣就在于折腾,而且对于服务器我更希望知道到底都有什么东西在跑,所以我决定从搭建一个干净的基本系统开始。经过一番 Google,我找到了一个近乎"完美"的教程:Minimal Ubuntu 8.04 Server Install,下面的安装过程也基本就是按着这个教程来的,稍微改进满足了一下实际需要。

言归正传,开始进入安装。首先,用 Ubuntu 8.04 Desktop Live CD 引导服务器,开一个 Terminal 就可以开工了。

第一步,启动分区工具对硬盘分区。这里我使用的也是 cfdisk (不用 GPart 的原因是因为这台服务器压根就没鼠标 -_-b),对 500G 的硬盘进行了分区。命令如下:

sudo su
cfdisk /dev/sda

首先分出 60MB 主分区用作 /boot,然后分 50GB 逻辑分区作为根分区,4GB 逻辑分区作为交换分区,剩下的分一个分区作为 /home 使用。分好后不要忘了写入分区表。

完成分区之后开始对各个分区进行格式化,为了方便,我只使用了 ext3 这一种格式:

mkfs.ext3 /dev/sda1
mkfs.ext3 /dev/sda5
mkfs.ext3 /dev/sda6
mkswap /dev/sda7

完成分区后可以装基本系统了,这里需要使用 debootstrap,具体命令是:

mkdir /min
mount /dev/sda5 /min
mkdir /min/boot
mount /dev/sda1 /min/boot
mkdir /min/home
mount /dev/sda6 /min/home
apt-get install debootstrap

在执行 debootstrap 之前,建议先进行一下源设置。因为这一步需要下载大量软件,因此选用一个最快的源还是很有必要的。这里我使用的是 cn99 的源:

nano /usr/share/debootstrap/scripts/hardy

找到类似下面的段落(default_mirror),改为您需要的源:

case $ARCH in amd64|i386|sparc)
default_mirror http://ubuntu.cn99.com/ubuntu

然后开始安装最小系统

debootstrap hardy /min

完成后,我们需要对这个系统进行一番设置使其可用。首先我们可以先将一些设置信息直接复制到目标系统中:

cp /etc/hosts /min/etc/
cp /etc/network/interfaces /min/etc/network/
cp /etc/bash_completion /min/etc/
cp /etc/bash.bashrc /min/etc/

此外,我们还需要为光驱进行一些设置:

mkdir -p /min/media/cdrom0
ln -s cdrom0 /min/media/cdrom

建立 fstab:

nano /etc/fstab

fstab 文件的内容大致如下:

proc            /proc           proc    defaults                   0       0  /dev/sda5	/               ext3    relatime                   0       1  /dev/sda1	/boot           ext3    relatime                   0       1  /dev/sda6	/home           ext3    relatime                   0       1  /dev/sda7	none            swap    sw                         0       0  /dev/cdrom      /media/cdrom0   udf,iso9660 user,noauto,exec,utf8  0       0

做完这一步,我的系统基本上就装好了,现在我们就可以 chroot 进去,进行进一步的配置:

mount –bind /dev /min/dev
mount -t proc proc /min/proc
mount -t sysfs sysfs /min/sys
chroot /min

设定时区:

cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

安装一个文本编辑器,我个人比较喜欢 nano,当然你也可以装 vim:

apt-get install nano

建立源列表,还是填入最快的源:

nano /etc/apt/sources.list

内容如下,使用的是 cn99 的源(我在教育网能到 1M/s 的速度)

deb http://ubuntu.cn99.com/ubuntu hardy main restricted universe multiverse  deb http://ubuntu.cn99.com/ubuntu hardy-updates main restricted universe multiverse  deb http://ubuntu.cn99.com/ubuntu hardy-security main restricted universe multiverse

更新源并升级现有软件:

apt-get update
apt-get dist-upgrade

设置 root 用户密码,并新建一个用户,并使它有 sudo 权限:

passwd
adduser liuyang
addgroup admin
adduser liuyang admin
echo "%admin ALL=(ALL) ALL">>/etc/sudoers

安装 grub,使目标系统可以引导:

apt-get install linux-image-server grub
mkdir /boot/grub
update-grub
update-initramfs -u

目标系统已经设置完毕,现在推出 chroot,完成最后的操作 - 将 grub 装到 /dev/sda 的 MBR 上:

exit
grub-install –root-directory=/min –no-floppy –recheck /dev/sda

重新启动系统,退出 Live CD,如果一切正常的话,你应该可以用一个"干净的" Ubuntu 引导起你的服务器了。

17fav 收藏本文
Copyright © 2004-2008 iStef.info & YangLiu.name All rights reserved.


 
 

Things you can do from here:

 
 

没有评论:

免责声明

1、本人是文盲,以上内容文字均不认识,也看不懂是什么意思(包括但不限于对所以上之内容的识别、阅读、理解、分析、记忆等);

2、本人过去、现在以及将来都不认识本文中提及当事人,且自古以来与该相对人无利益关系;

3、本人昨天、今天以及明天都没有或者不准备去本文所述地点。本文表述之事与本人无关。

4、本人在此发文(包括但不限于汉字、拼音、拉丁字母、斯拉夫字母、日语假名、阿拉伯字母、单词、句子、图片、影像、录音、以及前述之各种任意组合等等)均为随意敲击键盘所出,用于检验本人电脑键盘录入、屏幕显示的机械、光电性能,并不代表本人局部或全部同意、支持或者反对文中观点。如需要详查请直接与键盘发明者及生产厂商法人代表联系;

5、人生有风险,上网需谨慎。本文不暗示、鼓励、支持或映射读者作出生活方式、工作态度、婚姻交友、股票债券买卖、子女教育的积极或消极判断。未成年人请在监护人陪同下阅读本文。无完全民事行为能力者,请立即关闭网页,并用20%高锰酸钾+75%乙醇对键盘、硬盘、电压插座、显示器、鼠标、cpu进行灌溉消毒;

6、如本人留言违反国家有关法律,请网络管理员及时删除本文,本人保留继续发文的权利;

7、因删贴不及时所产生的任何法律(包括宪法、加法、减法、乘法、除法、剑法、拳法、脚法、指法、民法、刑法、书法、公检法、基本法、劳动法、婚姻法、输入法、没办法、国际法、今日说法、吸星大法及文中涉及或可能涉及以及未涉及之法,各地治安管理条例)纠纷或责任本人概不负责;

8、本人谢绝任何跨省(包括但不限于跨国、跨洲、跨星球、跨星系)追捕行为。确因不抓不足以平民愤,或不抓就领不到薪水养家户口的公职人员,建议携带工作证、身份证、结婚证/离婚证、独生子女证、健康证、暂住证、毕业证、边防证、县以上政府机关出具的介绍信温情操作。抓捕按照以下排序倒序:作者、原作者以及网络管理员以及网络运行商、电信运营商、电力供应商、电脑生产销售商;

9、如回复内容导致回复者或第三方、第四方、第N次方怀孕,本人愿配合做亲子鉴定。