《在路上 …》 第一日 买服务器, 装系统

=== 琐事 ===

昨晚看网络小说到拂晓,今天中午才起床 -- 我一向是一个自控力很差的人.

手淫伤身, 意淫伤脑. 生活应该有节制一点儿. 这道理几乎人人都懂, 可惜事到临头往往又会想人人短短数十载,年轻的时候若是不能快意江湖,老了以后岂不是很遗憾.

所 谓纠结态的青春啊.

下午去中关村再买了一台服务器, 这是我的第二台服务器了.之前那台的机房偶尔会不稳定, 还是新买一台比较好. 

手头乱七八糟的杂 事终于都接近尾声了, 我期盼已久的创业(或者说是失业?)终于可以正式宣告开始. 

=== 技术笔记 ===

=== 新买的服务器配置/报价 ===

X4-945GM+1U 风扇                990+150
华硕M4A785T-M                    680
kingston2Gddr3-1333×4         345×4
WD1002FBYS×2                   830×2
机 箱1U+FSP 400 601UG 80plus     1100

总价                            5920 

=== 安装Linux ===

==== 选择发行版 ====

Linux有很多发行版本, 我最喜欢Gentoo .

Red Hat 不说了 , 包管理太混乱 , 装软件常常要手工编译 -- 估计也只有那些有专人维护系统的企业才会用.

Ubuntu 因为安装很友好 , 最近用的人比较多 . 不过可定制性比较差 , 预装了很多用不到的东西 , 用来做桌面还行 , 做服务器就感觉过于臃肿了. 

Arch 和 Debian 其实都不错, 但由于他们是包管理是基于编译好的二进制文件的, 不是很方便定制安装某个特定版本软件包 -- 让我很不爽. 

而 Gentoo的emerge则可以选择特定的软件版本 , 几乎不需要手工去编译安装程序 -- 就是他了.

=== Windows下硬盘安装Gentoo ===


在电脑城配服务器 的时候 , 预装了windows7 , 我并没有买光驱, 因而硬盘安装gentoo

首先下载 gentoo Weekly Minimal Install CD ( 网址 http://www.gentoo.org/main/en/where.xml )

我用的版本 是 install-amd64-minimal-20100408.iso

下载后, 新开一份分区 格式化为 FAT32 .

解压iso 中的 livecd, image.squashfs 和 isolinux 到新建分区的根目录 .

解压工具可以用 7zip ( http://www.7-zip.org/  ).

然后下载 超级急救盘 2010.01.02 硬盘版 ( http://www.onlinedown.net/soft/33878.htm ), 安装.

在 windows的  文件 -> 查看 -> 选择显示隐藏文件

进入 C:\dosh\gho1 用记事本打开 menu.lst, 加入类似如下的内容


title gentoo
root (h0,1)
kernel /isolinux/gentoo root=/dev/ram0 init=/linuxrc looptype=squashfs loop=/image.squashfs cdroot udev nodevfs  vga=791 dokeymap 
initrd /isolinux/gentoo.igz


其中 root (h0,1) 是用来标识启动所需文件所在的分区

备注:

    hd(X,Y)中的X是指计算机中的第几块硬盘,编号从0开始,在BIOS中设置引导的第一块硬盘为0,其他的硬盘按照IDE号的顺序排列,依次为 1,2,3,……。

    Y是指硬盘中划分出来的第几个分区。编号从0开始,其他的分区依次为1,2,3,……

    需要注意的是:0,1,2,3是指硬盘中 的主分区

    如是扩展分区,那么编号将从4 开始,一直到最后一个扩展分区。



重 启系统,  选择 超级急救盘 -> gentoo , 进入gentoo的命令行 ,现在我们可以开始安装操作系统了


打 开Gentoo手册 ( http://www.gentoo.org/doc/zh_cn/handbook/ ), 阅读 如何安装Gentoo . 

当然, 不要忘记给服务器连着网线, 没有网络电脑就像没有钞票的哥一样寂寞.

我 家中是有一直在线的路由, 如果是拨号上网的同学请参考手册来配置网络.

服务器是接的从垃圾桶中翻 出来的键盘和显示器,难用无比,我决定用和自己相依为命的笔记本来远程安装

启动SSHD服务

/etc/init.d/sshd start

然后 给root设置密码 ,方便远程登录. 因为这只是安装盘的临时密码, 可以简单的设置为 1

passwd root

运 行 ifconfig 看到 eth0 的 inet addr:192.168.1.10 -- 这就是网卡的IP地址

SSH 登录上去 , 在这里我推荐一下我一直用的SSH客户端 -- Xshell ( http://www.netsarang.com/ ) , 方便好用 , 并且对学生免费 -- 其实就是安装的时候自己选是不是给钱了, 功能完全一样 . 

接 下来先格式化硬盘 -- 我的windows是不打算要的 , 所以就很暴力的格式化了.

如果想保 留windows的同学 , 可以先在windows下面用 Partition Magic分好区 , 然后跳过这一步

我 有两块硬盘 sda 和 sdb , 如果是ide的接口 , 那么硬盘可能就是 hda , hdb, hdc 等等...

系 统装在sdb 盘上

fdisk /dev/sdb

输 入p 看分区 , 输入 d 来把他们删除了 -- 直到一无所有.

接着,我们创建一个小一点的启 动分区。键入n创建一个新分区,然后键入p来选择一个主分区,接下来键入1选择第一个主分区。当提示输入第一个柱面的时候,敲回车键。当提示输入最后一个 柱面的时候,输入+32M,来创建一个32M大小的分区,并设置它的启动标记:

我们需要把这个分区 设置成可启动的。键入a来给分区添加启动标志,然后键入1。如果你再次按p键,你就会注意到,在“Boot”那一列有个*。

接 着创建交换分区。键入n创建一个新分区,然后键入p来告诉fdisk你创建的是主分区。

接着输入2 来创建第2个主分区,在本例中是/dev/sda2。当提示输入第一个柱面的时候,直接敲回车。

当 提示输入最后一个柱面的时候,因为内存大小是8G, 8*1.5 = 12 , 输入+12G来创建一个12G大小的分区。

之 后,键入t来设置分区类型,键入2选择第二个分区,然后再输入82把分区类型设置成“Linux Swap”。

剩 下来的再分为四个个分区 , 分别用来挂载 /home , /var/log , /tmp 和 /

/ 给 32G , /tmp 给 32G , /var/tmp 给 32G ,  /var/log 给 32G , 其他给 /home

/ 用主分区, /tmp , /home , /var/log 的挂载点用逻辑分区

创建逻辑分区 很简单 , 输入 n , 然后 e , 然后回车, 回车

接下来需要选择文件系统, 启动分区用ext2,其他统一使用ext4 

mkfs.ext2 /dev/sdb1  
mkswap /dev/sdb2
mkfs.ext4 /dev/sdb3
mkfs.ext4 /dev/sdb5
mkfs.ext4 /dev/sdb6
mkfs.ext4 /dev/sdb7
mkfs.ext4 /dev/sdb8

下 面来挂载这些分区

mkdir /mnt/gentoo/boot
mkdir -p /mnt/gentoo/var/log
mkdir -p /mnt/gentoo/var/tmp
mkdir /mnt/gentoo/tmp
mkdir /mnt/gentoo/home

mount /dev/sdb1 /mnt/gentoo/boot
mount /dev/sdb3 /mnt/gentoo/
mount /dev/sdb8 /mnt/gentoo/home
mount /dev/sdb5 /mnt/gentoo/var/log
mount /dev/sdb6 /mnt/gentoo/var/tmp
mount /dev/sdb7 /mnt/gentoo/tmp



chmod 1777 /mnt/gentoo/tmp
chmod 1777 /mnt/gentoo/var/tmp

进 入Gentoo的挂载点
cd /mnt/gentoo

下载适合你的 stage3 , 具体的可以看Gentoo安装手册

wget http://ftp.iij.ad.jp/pub/linux/gentoo/releases/amd64/autobuilds/current-stage3/stage3-amd64-20100514.tar.bz2

下 载之后解压
tar xvjpf stage3-*.tar.bz2

确保你使 用了同样的参数(xvjpf)。x表示解开(Extract),v表示详细信息(Verbose)可以用来查看解压缩时发生了什么(可选参数),j表示使 用bzip2解压缩,p表示保留权限(Preserve permissions),还有f表示我们要解开一个文件,而不是标准输入。

nano   /mnt/gentoo/etc/make.conf

http://en.gentoo-wiki.com/wiki/Safe_Cflags/AMD


从 这里找到 Phenom 的 CFLAGS

CHOST="x86_64-pc-linux-gnu"
CFLAGS="-march=amdfam10 -O2 -pipe"
CXXFLAGS="-march=amdfam10 -O2 -pipe"

加 入到编译参数中,另外加上通过使用MAKEOPTS你可以定义在安装软件的时候同时可以产生并行编译的数目。

我 使用CPU数目*1.5

MAKEOPTS="-j6"

为 了以后 安装 php 和 python 方便  , 修改USE 如下

USE="mmx sse sse2 berkdb bzip2 cgi cli crypt ctype curl exif flatfile ftp gd gdbm hash iconv imap ipv6 mysql mysqli ncurses nls pcre readline reflection session simplexml snmp spell spl ssl threads tokenizer truetype unicode xml xmlreader xmlwriter xpm zip zlib sqlite tidy sasl"

选 择境像站点
mirrorselect -i -o >> /mnt/gentoo/etc/make.conf

我 选择了

http://mirrors.163.com/gentoo/                    
ftp://mirrors.sohu.com/gentoo/                    
rsync://mirrors.xmu.edu.cn/gentoo/             

拷贝DNS信息

cp -L /etc/resolv.conf /mnt/gentoo/etc/

将/proc文件系 统挂载到/mnt/gentoo/proc,这样chroot后的环境里安装时也可以获取内核提供的相关信息,然后以bind方式挂载/dev文件系统。

mount -t proc none /mnt/gentoo/proc
mount -o bind /dev /mnt/gentoo/dev


用chroot进入新安装环境。

chroot /mnt/gentoo /bin/bash
env-update
source /etc/profile
export PS1="(chroot) $PS1"


更 新Portage树到最新版
emerge-webrsync


编 辑 /etc/locale.gen
加上
en_US.UTF-8 UTF-8
zh_CN.UTF-8 UTF-8

然后运行
localedef -i zh_CN -f UTF-8 zh_CN.UTF-8
echo LC_CTYPE=en_US.UTF-8 > /etc/env.d/02locale
env-update
source /etc/profile
locale-gen


选 择profile,先查看有哪些可用的profile

我选择

  [7]   default/linux/amd64/10.0/server

eselect profile set 7

设置时区

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

下 面开始安装内核

emerge gentoo-sources

如 果你不熟悉gentoo , 可以使用默认配置

emerge genkernel
zcat /proc/config.gz > /usr/share/genkernel/arch/x86_64/kernel-config
genkernel all

如果你熟悉 , 可以用手工配置
cd /usr/src/linux
make menuconfig
make && make modules_install
cp arch/x86_64/boot/bzImage /boot/kernel-2.6.32

编辑 /etc/fstab 

/dev/sda1               /boot           ext2            noauto,noatime  1 2
/dev/sda3               /               ext4            noatime         0 1
/dev/sda2               none            swap            sw              0 0
/dev/sda8               /home               ext4            noatime         0   2
/dev/sda5               /var/log               ext4            noatime         0   2
/dev/sda6               /var/tmp               ext4            noatime         0   2
/dev/sda7               /tmp               ext4            noatime         0   0

编辑 /etc/conf.d/net
config_eth0=( "dhcp" )

运 行
rc-update add net.eth0 default

编辑 /etc/conf.d/hostname
设置主机名

编辑 /etc/rc.conf
修改
EDITOR="/usr/bin/vim"

编 辑 /etc/conf.d/clock
修改
CLOCK="local"

下 面开始安装软件

emerge xz-utils

emerge vim
编辑 /etc/vim/vimrc.local

set encoding=utf-8
set tabstop=4
set expandtab
set fileformat=unix
set nobomb
set ff=unix
set ambiwidth=double
set shiftwidth=4
set fileencodings=utf-8,ucs-bom,cp936
syntax on
filetype plugin on
set  nocompatible
set  completeopt=preview
colorscheme murphy
set mouse=r


emerge eix
eix-update 

rc-update add sshd default

emerge syslog-ng
rc-update add syslog-ng default

emerge vixie-cron
rc-update add vixie-cron default

emerge slocate
emerge dhcpcd

创建引导

重要: 如果您使用的是一个non-multilib的profile,您不应该emerge grub, 应该emerge grub-static。如果您计划使用一个non-multilib profile并且 你在内核里禁用了IA-32 emulation,那你应该使用lilo.

emerge lilo

编 辑
/etc/lilo.conf

boot=/dev/sda

image=/boot/kernel-2.6.32
  label=gentoo         
  read-only         
  root=/dev/sda3      

image=/boot/kernel-2.6.32
  label=gentoo.rescue   
  read-only               
  root=/dev/sda3         
  append="init=/bin/bb"   

现在, 重启服务器, 并交换 主盘 和 从盘 , BIOS里面应该可以设置 -- 不过我是直接拔硬盘数据线然后换着插了一下的.

这 样就可以进入Gentoo了.

然后对原来的windows盘进行分区格式化

fdisk 后如下
/dev/sdb1               1       45000   361462468+  83  Linux
/dev/sdb2           45001       90000   361462500   83  Linux
/dev/sdb3           90001      121601   253835032+  83  Linux

创建文件系统

mkfs.ext4 /dev/sdb1
mkfs.ext4 /dev/sdb2
mkfs.ext4 /dev/sdb3

然 后新建目录以方便加载
mkdir  /mnt/fb
mkdir /mnt/nb
mkdir /mnt/sb

f是fast的缩写, 用来挂载sdb1

sdb1 是外圈,相对速度会快一点

可想而知,n是normal,s是slow

然 后编辑  /etc/fstab , 加上

/dev/sdb1               /mnt/fb               ext4            noatime         0   2
/dev/sdb2               /mnt/nb               ext4            noatime         0   2
/dev/sdb3               /mnt/sb               ext4            noatime         0   2

然后运行 mount -a 挂载新的硬盘

运 行 df -h 可以看到挂载的效果

创建一个普通用户方便平时使用

adduser xxx
passwd xxx
mkdir /home/xxx
chown xxx:xxx /home/xxx

安装 sudo 以便于该用户变身为狼:)

emerge sudo
编辑
/etc/sudoers 
加入 
xxx   ALL=(ALL) ALL

然后 在安装一些常用软件

nohup emerge p7zip autounmask spawn-fcgi xtail ack subversion libmemcached tokyocabinet boost git nginx php mysql dos2unix setuptools virtualenv memcached pycurl dstat mercurial slocate ipython&

开 机启动 nginx
rc-update add nginx default

修 改一些系统限制

echo fs.file-max = 65000 >>  /etc/sysctl.conf
echo 65000 > /proc/sys/fs/file-max

编 辑 /etc/init.d/nginx

ulimit -n 65000

新 建 /etc/vim/vimrc.local , 内容如下
set tabstop=4
set expandtab
set fileformat=unix
set nobomb
set ff=unix
set ambiwidth=double
set shiftwidth=4
set fileencodings=utf-8,ucs-bom,cp936
syntax on
filetype plugin on
set  nocompatible
set  completeopt=preview
colorscheme murphy 
set mouse=r

Oh, 睡觉...



文章同步自 http://kanrss.com/~onway/t/12
同步程序见 这里
作者 张沈鹏



猜你喜欢

转载自zsp.iteye.com/blog/709940