接下來,是格式化分區
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的相關模塊
本文示例代碼或素材下載