歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux管理 >> Linux維護 >> SPARC中如何安裝Linux系統(2)

SPARC中如何安裝Linux系統(2)

日期:2017/3/2 10:45:28   编辑:Linux維護

  接下來,是格式化分區

  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的相關模塊

本文示例代碼或素材下載

Copyright © Linux教程網 All Rights Reserved