歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> 比較折騰的一種Linux系統安裝方式

比較折騰的一種Linux系統安裝方式

日期:2017/2/28 16:47:39   编辑:Linux教程

Linux系統是非常靈活的,不過一般都是通過安裝介質或者安裝內核來引導,然後安裝。

我這幾天折騰的系統安裝采取這種方式,比較另類,當然,說另類是好聽,其實是比較變態。為什麼要這麼干,聽我徐徐道來:

我有一台遠程服務器,系統是RedHat AS4 Update 1,我想換成Ubuntu 8.10 Server版,我無法直接接觸到機器,而且在整個安裝的過程中間,網絡不能斷,ssh服務不能斷,因為我是通過ssh登錄遠程服務器的。因為要換的系統和目前運行的系統區別相差太大了,通過簡單的升級不能完成(昨天我有一台服務器通過簡單的yum update方式把Asianux Server 3.0換成了CentOS 5.3)。

通過kickstart的方式自動安裝也不太可能,一來我找不到適合當前機器的ks配置文件,而來,即便找到了,在能自動安裝之前,好像還有幾個步驟是需要點擊下一步的(也許是搞錯了),總之,風險系數較大,一旦有一點點問題,機器就不能訪問了。

走LFS的方式,應該可以成功,至少可以先搞出一個基本Debian系統,然後升級,但是LFS的方式實在是比較耗費時間,想想要二次編譯gcc,glibc等,那可是需要大把大把時間的。

總而言之,直接把原來的系統覆蓋掉,估計是不靠譜的(光如何保證ssh服務不斷,我就不知道如何做),因此只能是先在另外一個分區上安裝需要的系統了。

還有一個辦法,我以前搞過,那就是用虛擬機軟件,先通過虛擬機的方式再一個新分區上安裝系統,然後重啟系統,選擇這個新系統,一般情況下,這招都比較靈光,我這次也首先想到了它,可是不知道為什麼,我用的qemu總是在系統安裝到一半的時候會崩潰,不知道和安裝Ubuntu系統是不是有關系。

於是,我的做法是,先搞出一個分區,然後下載busybox源代碼,靜態編譯,一定是要靜態編譯,而後利用busybox的特征,在新分區上構建一個最小的系統,如果不知道構架一個最小系統需要那些目錄,哪些文件,一個取巧的辦法是把當前系統的/boot/initrd-<version>.img文件解壓到新分區上,然後把靜態編譯出來的Busybox拷貝過去。把安裝鏡像文件拷貝過去。接下來把Busybox內置的命令全部搞成符號鏈接的方式(方法可以參考這裡),替換掉已經存在的命令,比如從initrd鏡像文件裡已經解壓出了ls命令,現在用busybox內置的ls命令替換它。這樣,大概一個基本系統就已經完成了。

接下來,chroot到這個新分區,如果前一步沒有什麼問題的話,這個步驟應該不會報錯,否則的話,根據報錯的信息自行調試,這裡省去1萬字。

為什麼要利用busybox呢,那是因為busybox有我需要的一個東西,dpkg,基於Debian的系統,安裝包都是dpkg格式的(deb),安裝它就需要dpkg這個指令了(當然busybox也內置有rpm指令),安裝包是簡單的,直接使用dpkg -i xxx.deb就好了,但是Linux系統最令人痛苦的包依賴關系馬上就展現在你面前了。我曾嘗試把包的依賴關系理論,比如我會首先安裝glibc包,不過會提示依賴binutils包,而binutils又會依賴libc6包。。。。,4個小時的嘗試幾乎讓我崩潰。我想我不能干,要不就是我還沒有找到好的辦法,要不壓根就不能這麼干。

怎麼辦呢?不能安裝,那就解壓吧,為了保證不會出現缺少庫文件的問題發生,我把系統鏡像文件裡所有的deb包都解壓出來了。

解壓包的安裝包的差別在於後者會在安裝前後執行一些腳本來做一些必要的配置,而這些配置有些是必須的,比如創建一些庫的符號鏈接。因此接下來的任務是保證一些系統最基本的命令能夠正確運行,比如ls,bash,dpkg,apt等。這又是一個耗時的工作,具體的步驟,這裡省去1萬字。

等到基本的命令可以使用了,特別是apt-get命令可以使用後,問題就好辦多了,立刻利用apt-get的升級功能在把所有的包全部重新安裝一遍(實際上,你可以需要安裝3,4遍),方法是把系統鏡像文件加入到倉庫源裡,然後開始apt-get install glibc,apt-get install bash等,也是先把基本系統重構造好,一定要保證最基本的命令,庫穩定可靠。

等上面的步驟完成了,你就可以執行apt-get update && apt-get upgrade了。

到此,只能算是軟件包安裝完成,但是我發現還有一些文件無論你怎麼安裝包,它都不會自己創建的,比如/etc/{passwd,shadow,group}等重要文件,這個時候,就是秀出你Linux基本功的時候,你的憑空創建這些文件,然後自己根據每個文件的格式,慢慢的填寫好,當然,你也可以從別的已經安裝好的系統上拷貝一份過來,然後做一些必要的調整。

等上面的步驟都順利完成,然後你也覺得沒有問題的時候,修改系統的grub.conf文件,開始重啟吧。

從我開始打算安裝新系統,到最後順利啟動,然後遠程能登錄,我花了2天的時間,如果能接觸到機器,也許30分鐘就可以了。嗯,的確比較變態!

Copyright © Linux教程網 All Rights Reserved