第一日 买服务器, 装系统

=== 琐事 ===

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

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

所谓纠结态的青春啊.

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

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

=== 技术笔记 ===

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

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"

选择境像站点
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,睡觉...



::...
免责声明:
当前网页内容, 由 大妈 ZoomQuiet 使用工具: ScrapBook :: Firefox Extension 人工从互联网中收集并分享;
内容版权归原作者所有;
本人对内容的有效性/合法性不承担任何强制性责任.
若有不妥, 欢迎评注提醒:

或是邮件反馈可也:
askdama[AT]googlegroups.com


点击注册~> 获得 100$ 体验券: DigitalOcean Referral Badge

订阅 substack 体验古早写作:


关注公众号, 持续获得相关各种嗯哼:
zoomquiet


自怼圈/年度番新

DU22.4
关于 ~ DebugUself with DAMA ;-)
粤ICP备18025058号-1
公安备案号: 44049002000656 ...::