(未完成)
基礎情境
因為工作需要一台新的研發專用的伺服器,需要跑一些研發用的服務,比如subversion, bugzilla, mediawiki, dailybuild環境和共用檔案庫。同時考慮到可靠性因素,所以我決定使用linux作為新機器的作業系統。因為現在夏天用電緊張,經常有錯峰用電的情況,所以對比了一下在ReiserFS和XFS兩個檔案系統,開始選擇了ReiserFS,原因是ReiserFS對於小檔案儲存體很有效率,而我這裡會用到subversion(用檔案儲存體),正好適用,另外是聽說XFS雖然效能好但是很龐大維護困難,估計新版本出來不會快,但是後來發現ReiserFS啟動特別慢,只好用XFS,要記住不要把/boot設定成XFS,因為GRUB不認識。
雖說是“新”伺服器,但是是一個老機器了。原先是4G硬碟,512M記憶體,2.6G的cpu(速度不錯吧),後來新加一個80G硬碟。我的安裝規劃如下:4G硬碟為hda,專門存放系統,80G硬碟作為hdb,專門存放資料。作業系統為ubuntu server 7.04。
準備工作
因為我手頭只有iso映像,所以使用ubuntu 硬碟安裝方法。要做的準備工作如下:
- 閱讀附錄文檔,並正確理解
- 下載ubuntu硬碟安裝所需的幾個檔案:initrd.gz和vmlinuz
- 複製這幾個檔案和iso映像到我的hdb根目錄下,為此,我先在其上建立了一個fat32的分區,臨時湊合用吧。
- 網上找一篇vi編輯器的使用手冊,列印出來放在手邊(切記)。
linux安裝
正好上一篇文章中作了一個啟動隨身碟,所以用它啟動到GRUB環境下,按C進入GRUB的命令列環境,輸入如下的指令:
root (hd1,0)
kernel /vmlinuz root=/dev/ram ramdisk_size=32000 devfs=mount,dall
initrd /initrd.gz
boot
安裝過程不多說,只是有幾個需要注意的地方:
- 當前的國家要選擇好,否則時間設定的時候會有麻煩
- 在安裝劃分磁碟的時候需要開啟LVM,如果沒有概念,看本文附錄的參考文獻。
- 選擇磁碟分割的檔案格式,選擇ReiserFS,這裡選擇會有些麻煩,先選擇自動分區+LVM,然後詢問是否寫入磁碟時候選擇否,設定分區的檔案格式,然後繼續,中間會報告錯誤說根檔案系統沒有設定,然後退回去選擇自動+LVM,就OK了。一定要仔細看,否則很容易出錯。
- 不要用中文安裝,不翻譯還看得懂,翻譯了反而看不懂了(是我的問題嗎?),而且中文的時候把我的hda認成了sda,奇怪。
安裝過程可能會出現一些狀況,bigtall在安裝的時候就遇到了如下的幾個問題:
- 隨身碟啟動時候出現Error 22。這個原因是機器沒能夠正確識別隨身碟檔案格式,請檢查你的BIOS設定,確保識別隨身碟格式和實際隨身碟格式相同,這裡bigtall的是USB-HDD模式。
- 如果安裝時候找不到ISO檔案,請確保你用的vmlinuz和initrd.gz檔案和你目前的版本相符。ubuntu 7.04要使用feisty相關的檔案。也可以在出現找不到ISO的提示之後,用Alt+F2切換到新控制台,斷行符號出現提示符,輸入如下的命令:
#mkdir /dev/loop
#mknod /dev/loop/0 b 7 0
#mknod /dev/loop/1 b 7 1
#exit
然後用Alt+F1切換回安裝介面,重試一下就可以了。
- 安裝時候找不到硬碟。首先檢查BIOS設定,如果能夠找到硬碟,則繼續檢查。如果是SATA硬碟,請參考【題注1】。如果是IDE硬碟,請檢查您的硬碟跳線設定,必要時候甚至去掉所有的盤只剩一個單獨的硬碟。如果你的硬碟容量大於160G,最好換一個小一點的再試一下,比如換一個80G的。
- 如果進入之後無法黑屏、白屏或者在設定Frame Buffer時候卡住,請在GRUB的kernel命令輸入時候再加入參數vga=NNN,其中NNN為數字(一般建議取值771)。取值及其含義如下:
* 色彩 640x400 640x480 800x600 1024x768 1280x1024 1600x1200
* 4bits ?----------?-----------770--------?-----------?-----------?
* 8bits 768-------769--------771--------773--------775--------796
* 15bits ?---------784--------787--------790--------793--------797
* 16bits ?---------785--------788--------791--------794--------798
* 24bits ?---------786--------789--------792--------795--------799
例如,1024*768@16bits就是添上 vga=791
注意:vga不支援寬屏,只能找相近的值,而且螢幕會被拉扁。
預備工作
系統重新啟動之後,iso的mount不會自動起來,所以需要手工來做,而且因為我們的iso檔案放在了hdb1上,所以首先要mount一下hdb1,其次才可以mount我們的iso。因為我們的升級工作需要用到iso。
$sudo mkdir /mnt/hdb
如果hdb1格式是ext3
$ sudo mount /dev/hdb1 /mnt/hdb
如果 hdb1 格式是 fat32
$ sudo mount -t vfat -o iocharset=cp936 /dev/hdb1 /mnt/hdb
$ sudo mount -o loop /mnt/hdb/ubuntu.iso /cdrom
配置telnet服務
安裝好之後,我們需要進行一些基本的配置,然後把後續工作移動到我的vista機器上,用遠程終端繼續,就不用到這個機器前面去跑來跑去了,查資料也方便些。所以第一步來安裝telnet服務,登入進系統之後輸入如下命令(其中的$符號不要輸入,這裡我表示是命令列提示符):
$ sudo apt-get install xinetd telnetd
$ sudo vi /etc/xinetd.d/telnet
輸入內容:
service telnet
{
disable = no
socket_type = stream
protocol = tcp
wait = no
user = telnetd
server = /usr/sbin/in.telnetd
}
$ sudo /etc/init.d/xinetd restart
$ telnet 127.0.0.1
如果可以連通,則表示可以了,用ctrl+C退出
遠程登入前的預備工作
首先是記下原生IP地址,用以下命令看
$ ifconfig | more
然後到你自己的機器前面,用telnet連通,以後的工作都是用telnet遠程完成。
設定語言
如果你不小心安裝時候語言沒有設定得讓你滿意,別著急,用如下方法修改:
$ sudo vi/etc/environment
在編輯器裡,將內容修改如下:
LANGUAGE="zh_CN:zh:en_US:en"
LC_CTYPE=zh_CN.UTF-8
LANG=zh_CN.UTF-8
GST_ID3_TAG_ENCODING=GBK
#如果需要使用英文介面,將內容修改如下:
#LANGUAGE="en_US:en"
#LC_CTYPE=zh_CN.UTF-8
#LANG=en_GB.UTF-8
#GST_ID3_TAG_ENCODING=GBK
升級系統
使用兩個命令把系統先升級好了再說。不過這一步步是必須要做的,可以放到最後一步再做也可以。
$ sudo apt-get update
$ sudo apt-get dist-upgrade
增加一個永久ip
先記下機器當前網卡的名稱,用命令
$ ifconfig | more
/etc/rc.local增加一行
ifconfig ath0:5 192.168.1.222 netmask 255.255.255.0 up
永久mount硬碟
$ sudo cfdisk /dev/hdb
將硬碟分區成2個,一個為5G的基本分區hdb1,剩餘為擴充分區hdb5
$ sudo mkfs -t xfs -f /dev/hdb1
接下來,我們要用到LVM了,大家還記得我們安裝時候看到的這個名字嗎?一切參考附錄中的文章指引,我們把我們的hdb5加入,把hdb1保留,因為我的4G硬碟有些問題,我怕壞了的話,就在hdb1安裝一個新的系統。LVM相關命令如下:
$ sudo lvm
之後進入LVM管理環境:它的提示符為 lvm> ,輸入命令序列如下:
lvm> vgcreate -s 32M main /dev/hdb5
lvm> vgdisplay
我這裡會看到兩個lvm設定,一個是系統安裝時候設定的lvm2,一個是我剛才設定的main。然後一口氣設定幾個邏輯卷,lv_home,lv_var和lv_share,每個大小8G。
lvm> lvcreate -L8G -nlv_home main
Logical volume "lv_home" created
lvm> lvcreate -L8G -nlv_var main
Logical volume "lv_var" created
lvm> lvcreate -L8G -nlv_share main
Logical volume "lv_share" created
lvm> lvdisplay
lvm> vgchage -a y main
lvm> quit
然後格式化幾個新建立的邏輯卷:
sudo mkfs -t xfs -f /dev/main/lv_home
sudo mkfs -t xfs -f /dev/main/lv_var
sudo mkfs -t xfs -f /dev/main/lv_share
sudo mkdir /share
我這裡再格式化的時候出現了一點問題,但是似乎沒有受到影響。/etc/fstab 按照參數說明加入,我這裡只需要加入share即可。
如果需要擴大分區,比如我要擴大share,則命令如下
$ sudo lvextend -L+8G /dev/main/lv_share
$ sudo xfs_growfs /dev/main/lv_share
安裝samba
$ sudo apt-get install samba
$ sudo apt-get install smbclient
$ sudo vi /etc/samba/smb.conf
在檔案最後輸入如下的內容:
[Share Directory 2]
comment = My Share Directory 2
path = /share
writable = yes
valid users = smbuser1
create mode = 0664
directory mode = 0775
然後
$ sudo useradd smbuser1
$ sudo passwd smbuser1
$ sudo smbpasswd -a smbuser1
$ sudo chown smbuser1 /share
$ sudo /etc/init.d/samba restart
遷移/var
所有的設定好之後,需要把系統目錄搬遷到我的好硬碟上來,這個步驟不能再telnet上完成,必須到機器前面。
$ sudo init 1
# mkdir /mnt/temp
# mount /dev/main/lv_home /mnt/temp
# cp -avx /home/* /mnt/temp
# mv home home.old
# mkdir home
# umount /mnt/temp
# mount /dev/main/lv_home /home
# mount /dev/main/lv_var /mnt/temp
# cp -avx /var/* /mnt/temp
# mv var var.old
# mkdir var
# umount /mnt/temp
# mount /dev/main/lv_var /var
# vi /etc/fstab
在根目錄的mount條目之後插入對/home和/var的條目,如下:
/dev/main/lv_home /home xfs defaults 2 2
/dev/main/lv_var /var xfs defaults 2 2
# init 5
安裝LAMP服務安裝subversion安裝
題註:
- 問:SATA硬碟上可以安裝Linux系統嗎?
答:可以。如RedHat 9,在安裝之前需要設定為Compatible Mode,否則就會找不到硬碟。安裝好後,要升級核心到2.4.22,如果使用的CPU支援超執行緒,請在編譯核心時選擇SMP的支援。接著修改GRUB的啟動參數,將hda改成hde,分區號不變。還有fstab也需改一下,不然啟動後不能啟用“SWAP”交換分區。重新啟動後,將BIOS中的Compatible Mode改為Enhanced Mode,這樣就能發揮SATA介面的效能了。
引用:
- ubuntu常見問題指南
- 硬碟安裝Ubuntu 6.10 Alternate筆記
參考文獻:
- ubuntu安裝telnetd
- ubuntu 7.04案頭linux 伺服器配置過程介紹
- 保護互連網上linux系統機器最關鍵的要素
- linux samba 伺服器架設
- 如何整合samba與activedirectory
- Linux作業系統下SVN伺服器的搭建過程詳解
- 學習linux LVM,第一部分,第二部分
- 一份非常內行的Linux LVM HOWTO
- linux 專題
- Volume Management in Linux
- ubuntu 7.04硬碟安裝配置過程總結