歡迎您光臨本站 註冊首頁

在安裝linux文件伺服器時故撞排除教程

←手機掃碼閱讀     火星人 @ 2014-03-29 , reply:0

請大家查看時盡量使用樹型模式

系統安裝過程中的疑難排除
系統配置過程中的疑難排除
突髮型故障疑難排除
??
系統安裝過程中的疑難排除
??
系統安裝中的疑難排除主要是解決Linux系統無法安裝、以及在系統安裝過程中的出錯的排除。主要包括主板晶元的兼容性、對外接設備的驅動的支持等。
??
主板晶元兼容性問題
對主板晶元的兼容性主要是指Linux操作系統能否正確的識別主板上所集成的晶元,並為之安裝正確的驅動程序。兼容性可以大致的分層兩個層次,一個是完全不支持,就是Linux操作系統根本無法識別該晶元,或者說該主板上的晶元根本沒有Linux操作系統下的驅動程序;第二種情況是,操作系統可以識別出該晶元,但是需要額外的內核補丁,或者有驅動,但是驅動只是處於測試階段,穩定性和性能都得不到保障。
針對主板晶元兼容性的問題,解決辦法主要有如下幾種:

第一、 選擇比較知名的廠商生產的主板,盡量選擇Intel系列晶元組。總體而言,Intel在其晶元的驅動開發方面要比VIA、SIS等其他主板晶元組提供商要強得多,一般的,Intel晶元組在Linux下的驅動程序從穩定性和性能方面來講,都要比其他廠商強很多。

第二、 選擇版本比較高的Linux操作系統。高版本的Linux操作系統的安裝光碟在光碟引導啟動的內核壓縮鏡像中,附帶更多的對新的晶元組的驅動,因此能更方便的支持新的晶元組和其他硬體設備。但是,要注意的是,Linux下的驅動開發進度一般比較慢,較新版本的Linux往往在額外增加系統自身並不附帶的驅動的時候,會比較難找到針對該版本的驅動程序。
??
外接設備驅動支持問題
這裡的外接設備主要是指網卡,陣列卡或者SCSI卡的問題,將單獨討論。

針對網卡的驅動主要是對網卡核心晶元的支持。要說明的事,並不是所有的網卡都有Linux下的驅動程序。有很多比較差的晶元製造商,在開發晶元的時候,並未希望該晶元在Linux下使用,因此只專門針對Windows系列操作系統做驅動開發,則你將無法在Linux操作系統下使用該設備,除非你願意自己開發驅動程序。還有一些晶元,由於太舊,而無法使用,典型的如TP-LINK TG-3220所使用的TMI TAMARACK TC9020晶元,廠商已經倒閉,不再有新的驅動支持了。

一般的比較通用的網卡晶元,如realtek 8139/8169、Intel系列的晶元組,以及3COM系列的晶元組等,都能被很好的直接支持,不需要額外安裝驅動,因為驅動已經附隨著操作系統的發行版本自帶了。發行版本自帶的驅動程序一般是一個類似 eepro100.o 這樣的以.o結束的內核模塊。這些自帶的驅動位於/lib/modules/內核版本號/kernel/drivers 目錄下。當你需要安裝一個設備是,請根據設備類型在該目錄下查找系統是否已經附帶了該設備的驅動,如果沒有,那麼就需要下載該設備在Linux下的驅動進行安裝。

一般的驅動安裝過程分三個步驟,一個是配置內核版本,編譯源程序,生成內核模塊;第二個步驟是insmod插入生成的內核模塊,第三個步驟是將內核模塊拷貝到系統默認的內核模塊存放目錄下,並編輯/etc/modules.conf文件,讓系統啟動時,能自動插入模塊。我們以在Redhat 9.0 下安裝BCM 5700系列晶元組的千兆網卡為例子,為大家具體描述這一過程。

第一步:從驅動光碟或者從網路上獲得驅動程序包。譬如bcm5700-6.0.2.tar.gz,將之通過sftp協議拷貝到Linux主機上(可以先插一塊8139網卡)。解開驅動包

tar zxf bcm5700-6.0.2.tar.gz
進入源代碼目錄
cd src
make
將生成bcm5700.o 文件
??
第二步:插入內核模塊
insmod ./bcm5700.o
??
第三步:將內核模塊拷貝到/lib/modules/2.4.24/kernel/drivers目錄下
cp ./bcm5700.o /lib/modules/2.4.24/kernel/drivers

編輯/etc/modules.conf文件,使得系統可以在啟動時插入內核

vi /etc/modules.conf
增加一行
alias eth0 bcm5700
??
重新啟動機器,則在啟動kudzu服務的時候,會檢查到網卡,並可以進行配置。

其他的外接設備的驅動安裝過程,可以參考網卡部分的安裝來完成。
??
RAID卡和SCSI卡以及SATA驅動的安裝
存儲類設備的安裝有些特殊,因此,我們將之從外接設備驅動安裝中單獨分離了出來。存儲設備的安裝總體上來講分成兩類:第一類,系統從IDE硬碟引導,而SCSI設備(RAID卡、SATA設備實際上來講都是模擬或者說是類似SCSI設備的,我們將這類設備統稱為SCSI設備,下同)只是在系統安裝完畢后再進行安裝。第二類是指引導要直接安裝在SCSI設備上,驅動需要在安裝系統的時候就安裝,否則安裝程序將無法找到有效的存儲設備來安裝系統。
??
系統從IDE引導情況下的SCSI設備驅動安裝
即系統從IDE引導,而SCSI設備只是作為一個普通的外接設備來安裝驅動程序。這類情況下安裝驅動程序可以參考上一個章節中的關於普通外界設備的驅動安裝方法。只是要注意的是,如果SCSI設備在沒有安裝好驅動程序,就已經被連接到系統上,則很容易導致系統崩潰。因為系統識別到SCSI設備后,又無法正確驅動,則很容易造成內核混亂。所以,我們建議,在安裝驅動之前,請先拔下SCSI卡,如果是主板集成的SCSI設備,則請先從主板BIOS設置中關閉SCSI設備。在將驅動安裝完畢后,關閉計算機,插上SCSI設備,或者從BIOS中啟用SCSI設備,再重新啟動計算機。

這類情況下的SCSI設備驅動安裝請參考普通外接設備的驅動安裝部分,我們在這裡將不在贅述。
??
系統安裝在SCSI設備上的驅動安裝
如果系統需要安裝在SCSI設備上,譬如安裝在SCSI硬碟或者安裝在IDE RAID卡上,或者安裝在SATA硬碟上,則需要採用比較特殊的方式來安裝SCSI設備的驅動程序。當然,比較通用的SCSI設備,是不需要考慮這一步驟的,譬如Adptec 的 aic7xxx系列SCSI介面卡,或者Intel 的 ata_piix 系列的SATA介面晶元組等一般的Linux發行版本都自帶了這些驅動,在操作系統安裝光碟引導時所解壓縮的內核鏡像中已經可以識別並支持這些SCSI設備。如果是一些並不是很通用的晶元,則需要手動的安裝驅動。我們以VIA 的VT8237/6420系列SATA RAID控制晶元的驅動安裝來為大家具體的秒素這一過程。

第一步:獲取驅動程序包,譬如從驅動光碟,或者從網路上獲得。目前VIA官方網站上為RedHat 系統提供的驅動包為 via_raid_linux_v100_20040412.zip。在Windows上通過Winrar解開這個包,並通過sftp協議將安裝包中的Driver目錄拷貝到一台已經安裝了Redhat9.0的伺服器上。

第二步:生成驅動磁碟鏡像.img文件。
chmod +x dd.sh
./dd.sh

這樣就會在目錄driverdisk下生成一個viamraid.img的鏡像文件。要注意的是,目前VIA還只發布了對Redhat 9.0的驅動支持,RHAS上是無法安裝該驅動的。另外,這個過程只能在一台安裝了Redhat 9.0的Linux機器上運行。如果在別的版本的操作系統上運行,則安裝程序無法從生成的.img文件中讀取驅動信息。如果你已有的Linux伺服器並不是Redhat 9.0的版本,則你可以直接使用Driver 目錄中Driverdisk子目錄下已經提供的viamraid.img文件。

第三步:將生成的img文件寫入磁碟。

在軟碟機中插入一張空白磁碟,關閉防寫功能。
dd if=driverdisk/viamraid.img of=/dev/fd0

如果你根本沒有已有的Linux操作系統,則你可以用Windows下的寫磁碟鏡像軟體將Driverdisk子目錄下已經提供的viamraid.img文件寫入磁碟。

第四步:用Redhat 9.0安裝光碟引導,在出現boot:提示的時候,輸入linux dd,或者不輸入,讓系統自己提示插入驅動磁碟。如果是輸入linux dd引導安裝程序,則系統會提示,Do you have a dirver disk? 選擇Yes。然後選擇/dev/fd0,系統將會將驅動信息讀取到內核。則安裝程序將可以正常的找到SATA硬碟,安裝可以按照平常的步驟進行。

需要說明的是,VIA目前提供的VT8237系列的晶元驅動,在Linux下性能奇差。這是驅動程序設計造成的,無法通過設置來進行性能提升。因此,我們不建議客戶使用這種主板安裝Linux伺服器。
?
系統配置過程中的疑難排除
??
系統配置過程中的疑難排除主要包括網娛平台所依賴服務的配置以及系統常用的幾個配置文件的配置等。
??
/etc/fstab的配置
/etc/fstab文件是文件系統自動掛載的配置文件,Linux操作系統在啟動的過程中根據fstab和mtab這兩個文件來進行文件系統的自動掛載。在平時的使用過程中,fstab比較常見。

/etc/fstab的文件結構如下所示:
LABEL=/ / ext3 defaults 1 1
none /dev/pts devpts gid=5,mode=620 0 0
LABEL=/home/download /home/download ext3 defaults 1 2
LABEL=/home/menu /home/menu ext3 defaults 1 2
LABEL=/home/mp3 /home/mp3 ext3 defaults 1 2
none /proc proc defaults 0 0
none /dev/shm tmpfs defaults 0 0
/dev/hda8 swap swap defaults 0 0
/dev/hdc1 /game ext3 defaults 1 2
/dev/hdd1 /game2 ext3 defaults 1 2
??
每一行表示一個掛載點的掛載。格式分別為
設備名 掛載點 文件系統格式 選項 備份 檢查

一般需要注意的是設備名和掛載點的對應關係。如果掛載點並不存在,則需要手動建立掛載點。建立掛載點的方式很簡單,直接使用目錄建立命令

mkdir /test

這樣就可以建立一個名為/test的掛載點。
??
另外一個需要注意的問題是,如果fstab中所標名的某一個掛載出現問題,則系統將無法正常啟動,一般會提示輸入root密碼進入文件系統修復模式或者按ctrl+D重新啟動。這個時候,一般只需要輸入root密碼,然後編輯fatab文件,將出現問題的掛載項目前面加一個「#」註釋掉就可以了。
??
/etc/modules.conf配置文件
/etc/modules.conf配置文件是系統自動插入內核模塊的配置文件。如果某些外圍設備的驅動被設計為動態模塊類型,並未固定的包含在內核中,則需要手動的使用insmod命令插入內核模塊以驅動這些設備。如果需要系統在啟動的時候自動的插入動態內核模塊,並設置模塊的參數,那麼,就需要在該文件中進行相應的配置。

/etc/modules.conf文件結構如下
alias eth0 e1000
alias scsi_hostadapter ata_piix
alias usb-controller usb-uhci
alias sound-slot-0 i810_audio
alias usb-controller1 ehci-hcd
??
/etc/modules.conf文件中的每一行表示一個內核模塊的插入或者是模塊的參數設置,我們在這裡只討論配置內核動態模塊自動插入的方法。以第一行為例:alias eth0 表示,這個模塊插入內核后,對應的設備別名為eth0,e1000表示插入系統默認的內核模塊存放目錄下的e1000.o這個內核模塊文件。
??
/etc/sysconfig/network-script/目錄與/etc/sysconfig/networking目錄

/etc/sysconfig/network-script/目錄與/etc/sysconfig/networking目錄中存放的是系統網路相關的配置文件。主要是網卡的IP地址,子網掩碼,MAC地址,網關等。要注意的是ifcfg-ethx這樣的文件在三個地方都有,分別是/etc/sysconfig/network-script/目錄下;/etc/sysconfig/networking/devices目錄下和/etc/sysconfig/networking/profiles/default目錄下。一定要保證這所有的ifcfg-ethx文件內容一致,否則將會導致網路無法接通。

Ifcfg-ethx文件分別對應著ethx。例如第一塊網卡eth0的配置文件為ifcfg-eth0。如果需要給一塊網卡指定多個IP地址,那麼只需要在該目錄下建立一個ifcfg-eth0:1這樣的文件就可以了。文件裡面的內容,參照ifcfg-eth0修改就可以了。

Ifcfg-eth0的具體結構如下
# 3Com Corporation|3c905C-TX/TX-M [Tornado]
DEVICE=eth0
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.1.101
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
HWADDR=00:06:5B:BE:0C:AD
??
要特別提醒的是,如果計算機在安裝的過程中有兩塊網卡,而在安裝完畢后拔出了一塊網卡,有的時候,系統會無法檢測到系統中的硬體變化,因此,需要手動的進行配置文件的修改,這個時候,就需要手動的將三個目錄下的ifcfg-ethx文件全部刪除掉。否則,將會出現很混亂的情況。
??
/etc/samba/smb.conf配置文件
/etc/samba/smb.conf是samba服務的主配置文件,也是我們平時打交道比較多的文件。雖然平時的安裝工作可以完全通過安裝程序來完成所有的配置,但是,我們還是希望大家能熟悉這個配置文件的配置方法,以應對特殊的情況。

Smb.conf的內容格式如下:
unix charset = cp936
dos charset = cp936
display charset = cp936
netbios name = ECOFE2
server string = Samba Server %v
encrypt passwords = Yes
map to guest = Bad User
log file = /var/log/samba/log.%m
max log size = 50
socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
printcap name = cups
dns proxy = No
guest account = admin
valid users = admin,user,super,oface,cface,update
admin users = admin,super,update
write list = admin,super,update
printer admin = @adm
printing = cups
[menu$]
path = /home/menu
write list = admin,user,update
read only = No
browseable = No
??
[mp3$]
path = /home/mp3
browseable = No
??
[game$]
path = /game
browseable = No??
[game2$]
path = /game2
browseable = No

由於這個文件比較重要,那麼我將比較詳細的解釋一下各個設置選項。

unix charset = cp936
dos charset = cp936
display charset = cp936

這三行,是為了保證Samba 3.0下能正常的顯示中文字元。如果去掉這三行,那麼中文將會顯示為亂碼。

netbios name = ECOFE2

這一設置指定伺服器的netbios機器名。請不要更改這一設置,否則其他的機器將無法正常的訪問到伺服器。

valid users = admin,user,super,oface,cface,update
admin users = admin,super,update
write list = admin,super,update

這三行非常重要,只有用戶名在valid users中指定,這些用戶才能訪問伺服器,否則,將會被拒絕訪問。admin users 指定了哪些用戶具備管理許可權,write list指定哪些用戶可以具備寫許可權。這兩行一般來講是相同的。

[game$]
path = /game
browseable = No

這一段配置是指定了一個共享,需要指定一個共享,則請用[]號把共享名擴起來,如果用$符號結束,則是隱含共享。然後用path=/game則是指定共享哪個掛載點或者說是哪個目錄。配置中的其他部分都是可有可無的,寫出來只是為了處於嚴謹的考慮。

[火星人 ] 在安裝linux文件伺服器時故撞排除教程已經有355次圍觀

http://coctec.com/docs/linux/show-post-201852.html