相關文章:SPARC中如何安裝Linux系統(1)
接下來,是格式化分區
mke2fs /dev/sda1 //將第一分區(boot分區)格式化為ext2格式,這也是linux默認的格式
mke2fs -j /dev/sda4 //將第四分區(root分區)格式化為ext3格式,記住,由於sparc的特殊性,我們的sda3是whole disk,因此不要習慣性地想著只有3個分區,因此把sda3給格式化掉了。
創建交換分區
mkswap /dev/sda2
現在就可以把交換分區掛上使用了
swapon /dev/sda2
煩瑣的設置基本完成了,接下來請打起精神來,迎接正式開始安裝工作
首先是mount上我們新系統中的/分區和/boot分區
mount –t ext3 /dev/sda4 /mnt/gentoo
在它上面創建一個boot目錄,以方便掛上第一分區(/boot分區)
mkdir /mnt/gentoo/boot
接著把新系統的boot分區掛上
mount /dev/sda1 /mnt/gentoo
掛上後,就開始安裝stage包了
從2005.0版本的gentoo開始,stage包從原來的3種減為了2種,只有stage1和stage3了,關於2者的區別,stage1是一個最小化工具包,安裝它後,可以最大程度上的自定義系統設置,而且在編譯的時候可以最大程度地針對自己的機器進行優化,缺點則是耗時相當漫長,一般大致需要1周左右的時間才能設置妥當,而stage3則是預先編譯好了一些軟件包可供使用,當然為了通用性,在編譯參數等方面就相對比較保守,優化程度不夠。在此,我選擇的是stage3,因為硬盤實在太小,而且沒必要在ultra1這樣的老機器上折騰太多。值得一提的是,在安裝前,記得使用date命令校准時間。
cd /mnt/gentoo #記得這個目錄麼?就是未來新系統的根目錄
tar –vxjpf /mnt/cdrom/stages/stage3-sparc64-2005.0.tar.bz2
這裡會把相當多的程序/設置文件cp到相應位置,時間會消耗地比較久,因此遠程安裝的你可以找點事情先忙乎著。
恩,copy完了stage3的內容後,接著就是要cp portage包了,portage是gentoo的程序包管理機制,類似redhat的rpm,freebsd的ports方式,它的便利,等一下您就能體會到了。
tar –vxjf /mnt/cdrom/snapshots/portage-20050303.tar.bz2 –C /mnt/gentoo/usr
這裡也挺久的,所以前面推薦各位遠程安裝,就可以找點事來先忙著,在完成此步驟後,天緣用df命令查看了一下,/mnt/gentoo空間用去 49%
然後是把源文件全部cp過去,因為gentoo的即時編譯機制,所以在編譯其他軟件軟件包的時候,可能會用到這些代碼的
mkdir /mnt/gentoo/usr/portage/distfiles
cp /mnt/cdrom/distfiles/* /mnt/gentoo/usr/portage/distfiles/
這一步也相當漫長的,當完成時,df的結果是/mnt/gentoo用去了65%
上面的幾步是不是讓您快睡著了? Ok,久違的動手時間到了
現在先把新系統中/etc/make.conf的參數改了,簡單來說,這個文件設置了gcc編譯的時候的參數,以及選用網絡安裝的時候使用的sync地址和軟件包下載地址。
nano –w /mnt/gentoo/etc/make.conf
在最後添加以下幾行
MAKEOPTS="j2"
GENTOO_MIRRORS="http://gentoo.gg3.net/ http://mirror.gentoo.gr.jp/"
SYNC="rsync://rsync.asia.gentoo.org/gentoo-portage"
注意,熟悉gcc參數的朋友可能會打算修改CFLAGS,CHOST ,CXXFLAGS的值,但官方文檔只建議使用stage1的用戶設置,我們使用的是stage3,所以還是保持吧。
下面,准備進入新操作系統咯
mount –t proc none /mnt/gentoo/proc
proc文件系統是內核信息的鏡象,可以通過它即時查看到很多內核程序的設置和使用情形,並且還可以即時修改,怎麼樣?就這一點就夠愛死unix系統了,比windows的注冊表每次都要重新啟動/注銷生效方便多了吧。。。
cp –L /etc/resolv.conf /mnt/gentoo/etc/resolv.conf
將我們剛才設置好的dns解析文件cp過去
chroot /mnt/gentoo /bin/bash
env-update
source /etc/profile
以上三句是設置 /mnt/gentoo目錄為根目錄,並更新系統設置
接著設置時區,由於天緣使用本地時間,因此
ln –sf /usr/share/zoneinfo/Asia/Chongqing /etc/localtime
把本地時間設置為重慶時間,順便把rc.conf裡的時間設置也修改掉
nano –w /etc/rc.conf
修改
CLOCK="UTC"
為
CLOCK="local"
接下來,就是配置內核了,關於配置內核的文章到處有,這裡我簡單提一下關鍵和不同的地方吧
首先是下載內核代碼
emerge sparc-sources
之後就會自動下載並且安裝代碼到/usr/src下,我寫此文的時候,內核版本是2.4.29,並做好一個/usr/src/linux的連接
接著就是編譯內核了
cd /usr/src/linux
make menuconfig
恩,大體上與在x86上編譯沒什麼區別,只把需要特別留意需要開啟的地方寫出來吧
Code maturity level options --->
[*] Prompt for development and/or incomplete code/drivers
//開啟擴展代碼的支持,否則有的選項根本看不到呢
File systems --->
[*] Virtual memory file system support (former shm fs)
<*> Ext3 journalling file system support
<*> Second extended fs support
[*] /proc file system support
[*] /dev file system support (EXPERIMENTAL)
[ ] Automatically mount at boot
//注意,依照官方的文檔,是需要選自動mount的,但是這裡我在選擇了/dev後,重新啟動的時候報告了錯誤,即使我emerge devfsd後依然如此,因此我只有把 [ ] Automatically mount at boot去掉,這樣的話開機會提示一個警告信息,但是使用上無礙,還請其他朋友指點此困惑。
Console drivers --->
Frame-buffer support --->
[*] SBUS and UPA framebuffers
[*] Creator/Creator3D support
[*] CGsix (GX,TurboGX) support
//上面是對SBUS/UPA的支持,記得選上
Misc Linux/SPARC drivers --->
[*] /dev/openprom device support
上面是對OBP的支持
SCSI support --->
SCSI low-level drivers --->
<*> Sparc ESP Scsi Driver
<*> PTI Qlogic, ISP Driver
<*> SYM53C8XX Version 2 SCSI support
//scsi卡支持,上面的幾種各自針對特定的型號,為了config文件的通用性,我是都選上了的
Network device support --->
Ethernet (10 or 100MBit) --->
<*> Sun LANCE support
<*> Sun Happy Meal 10/100baseT support
<*> DECchip Tulip (dc21x4x) PCI support
Ethernet (1000Mbit) --->
<*> Broadcom Tigon3 support
//各種型號的網卡支持的,也是為了通用性,我都選了,其實ultra1上根本沒1000m卡的,天緣這裡的sun fire上才有吧。
注意,最好只把重要的編譯進核心,而把其他的相關部分編譯成模塊就行了,確保內核文件別超過2.5M為好,天緣在文章最後會給出我使用的.config文件,各位如果想偷懶保存下來後,直接使用就行了。
恩,保存後退出,接著就是內核編譯了。。。
make dep && make clean vmlinux image modules modules_install
之後。。。可以忙乎自己的事情去了,天緣是晚上編譯,第2天早晨去看的結果,具體完成時間也辦法告訴大家,估計在30分鐘到2個小時吧。
好,假設您跟我一樣夠好運氣,順利編譯完成了(此時/空間用了大致78%左右,呵呵)
接著就是把核心文件cp到/boot分區去
cp arch/sparc64/boot/image /boot/kernel-2.4.9
cp System.map /boot
配置文件也一起cp一份丟過去吧
cp .config /boot/config-2.4.29 /boot
到這裡,內核編譯就完成了,接著就是最後的配置系統設置了
首先是設置/etc/fstab 文件,linux系統後,是根據這個文件來加載分區的
我的設置如下(注釋已去掉):
ultra1 root # cat /etc/fstab
/dev/sda1 /boot ext2 defaults,noatime 1 2
#加載/boot分區,使用ext2格式,並且不記錄對文件的訪問時間(減少寫入次數)
/dev/sda4 / ext3 noatime 0 1
#加載/分區,ext3格式,不記錄對文件的訪問時間
/dev/sda2 none swap sw 0 0
#交換分區
/dev/cdroms/cdrom0 /mnt/cdrom iso9660 noauto,user 0 0
#cdrom加載,非自動加載
#/dev/fd0 /mnt/floppy auto noauto 0 0
#軟驅,由於我編譯內核的時候去掉了對軟驅的支持,所以就把這行屏蔽了
none /proc proc defaults 0 0
#proc分區加載,它的作用前面提到了
none /dev/shm tmpfs defaults 0 0
#用內存+硬盤虛擬出一塊區域來存放文件,tmpfs格式
none /proc/openprom openpromfs defaults 0 0
#這行是sparc系統必須添加的
#此處我沒有添加usb的支持,因為我內核裡禁止了usb的相關模塊
以上行中,都是defaults,而不是default,天緣自己錯過幾次了,提醒各位留心哦。
接下來設置主機名
echo ultra1 > /etc/hostname
接著設置本域的名字
echo xx.edu.cn > /etc/dnsdomainname
如果用nis的,還要設置nis domain
echo nis.xxx > /etc/nisdomainname
把domainname添加到開機啟動裡
rc-update add domainname default
rc-update 一般常用的有 add ,del, -s 幾個選項,可以對/etc/init.d/下存在的腳本選擇是否加入到啟動階段(boot或者default裡,boot部分比default階段早)
然後是設置網絡
注意提醒一點,以stage3方式安裝的時候,已經安裝了ifconfig命令,而如果是stage1,則需要下載emerge net-tools ,否則啟動的時候會因為沒有ifconfig命令而無法使用網絡哦
nano –w /etc/conf.d/net
該文件的說明非常清晰,天緣使用的是固定ip方式,所以配置如下
iface_eth0="我的ip地址 broadcast 廣播地址 netmask 掩碼"
gateway="eth0/網關ip"
接著同樣用rc-update命令讓開機時候就執行啟動網卡的腳本
rc-update add net.eth0 default
然後通過修改/etc/hosts改主機名
nano –w /etc/hosts
127.0.0.1 localhost ultra1
修改安全設置,允許root直接登陸
nano –w /etc/securetty
echo ‘tts/0’ >> /etc/securetty
最後的收尾工作就是把系統日志記錄工具和crond服務,檔案索引服務工具裝上了
安裝日志工具
emerge syslog-ng
rc-update add syslog-ng default
安裝cron服務
emerge vixie-cron
rc-update add vixie-cron default
安裝檔案索引服務
emerge slocate
最後一步,就是安裝引導的開機程序,silo了,它的全名是Sparc Imporved boot Loader,和lilo或者grub的作用很象
emerge silo
然後設置選項,我是按照grub的習慣,將配置文件放到了/boot區
nano –w /boot/silo.conf
# Example of how can be silo.conf set up
partition = 1 #這裡是/boot分區的分區號
root = /dev/sda4 #這裡是/分區的位置
timeout = 10 #等待時間,注意以0.1秒為單位的呢
#password = __#密碼,這裡沒要
#restricted
image = /boot/kernel-2.4.29 #引導文件的位置
label = linux #標題名
接著讓配置生效
/sbin/silo –C /boot/silo.conf
最後退出chroot環境,准備重新啟動
exit
cd /
sync
umount /mnt/gentoo/boot /mnt/gentoo/proc /mnt/gentoo
reboot
激動人心的時刻終於來到了,如果您一路無誤,那麼就可以成功地啟動服務器了,如果有誤,那麼請根據提示,然後用光盤啟動後,進入chroot環境再進行修改。
後記:根據對linux對sparc系統支持地查看,發現對fire等高端系列,對t3存儲,以及對lvc的支持都已經有不錯的效果了,各位網管朋友如果某些時候需要針對linux下的一些服務,可以嘗試著在中端服務器上調試看看。
最後附上我編譯內核使用的.config文件,只在ultra1下測試可用,其他系列未經過測試。