![從源代碼編譯精簡Linux系統(tǒng)_第1頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/17/b407b545-3969-4fbc-805e-9bf42eba61ec/b407b545-3969-4fbc-805e-9bf42eba61ec1.gif)
![從源代碼編譯精簡Linux系統(tǒng)_第2頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/17/b407b545-3969-4fbc-805e-9bf42eba61ec/b407b545-3969-4fbc-805e-9bf42eba61ec2.gif)
![從源代碼編譯精簡Linux系統(tǒng)_第3頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/17/b407b545-3969-4fbc-805e-9bf42eba61ec/b407b545-3969-4fbc-805e-9bf42eba61ec3.gif)
![從源代碼編譯精簡Linux系統(tǒng)_第4頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/17/b407b545-3969-4fbc-805e-9bf42eba61ec/b407b545-3969-4fbc-805e-9bf42eba61ec4.gif)
![從源代碼編譯精簡Linux系統(tǒng)_第5頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/17/b407b545-3969-4fbc-805e-9bf42eba61ec/b407b545-3969-4fbc-805e-9bf42eba61ec5.gif)
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、軟件透視從源代碼編譯精簡Linux系統(tǒng) 熊 鷹摘 要:文章以LFS文檔為基礎, 從源代碼開始編譯可用的精簡的Linux系統(tǒng), 實現(xiàn)Ubuntu, windows, LFS多 重啟動。 在物理機上以 Ubuntu作為宿主, 調整硬盤空間, 編譯工具鏈、 基礎工具軟件和內核, 配置系統(tǒng)環(huán)境變量 、 可引導GRUB。 編譯出來的系統(tǒng)可作為Linux基 礎系統(tǒng), 可根據(jù)具體服務器需要配置成web服務器或者數(shù)據(jù)庫服務器機群等, 且具備精簡、 安全、 完全可控等特性, 特別適合對于云計 算中虛擬化平臺的基礎系統(tǒng)。關鍵詞:linux; 操作系統(tǒng); LFS; 源代碼; 編譯; 云計算; 虛擬化LFS (Lin
2、ux From Scratch 的簡稱 是從源代碼開始 編譯的一個真實可用、 精簡的Linux, 對于運行單一服務程序 的服務器, 在普通的P4臺式機上安裝完所有的驅動及必要的 安全軟件之后, 內存消耗僅為32M, 非常節(jié)省資源, 而且穩(wěn)定、 簡潔, 特別適合運行在云計算中的虛擬服務器的基礎軟件平 臺 。筆者在機器上安裝windows, ubuntu和LFS。 Ubuntu是一 個Linux的發(fā)行版本, 最大特點是方便, 對主流硬件的支持非 常好, “163” 和 “sohu” 都有ubuntu的鏡像, 下載和更新速度 都非常快。編譯 “LFS” 需要一個宿主。 筆者把ubuntu作為宿主,
3、而 沒有選擇LFS的live-cd。 那是因為LFS編譯時間和機器速度 有關, 一臺老P4最少需要23天, 下班之后可以直接讓機器 休眠, 第二天繼續(xù)。1 安裝宿主系統(tǒng)“LFS” 和高度定制的Linux系統(tǒng)一樣需要一個宿主, 比 如 “Gentoo, slckware” 等。 從2003年主流主板就開始支持 從U盤啟動, 如果需要安裝系統(tǒng), 將 “啟動U盤” 插入, 從U盤 引導。 LFS文檔中有一節(jié)是說明對宿主系統(tǒng)的要求。 筆者用 Ubuntu作為宿主來編譯LFS, ubuntu-10. 04-desktop-i386可 在http:/mirrors.sohu. com下載。作者簡介:熊鷹,
4、 江蘇省科學技術情報研究所。機器上原來已有一個Windows, 并且分區(qū)已滿。 在網(wǎng)上找 到了 一個可動態(tài)調整硬盤分區(qū)的軟件 “pqmagic9. 0” , 可添加 刪除分區(qū), 支持windows7和Vista。 調整分區(qū)有風險, 建議在 調整分區(qū)之前先備份所有重要文件。硬盤只能支持4個主分區(qū)。 把windows放在第一個分區(qū), 在linux下看是 “ /dev/sda1” ; 將ubuntu放在第二個主分區(qū) “ / dev/sda2” , 將交換分區(qū)放在 “ /dev/sda3” 。 完成安裝Ubuntu 后再通過 “fdisk” 來分余下的空間。一般對于多系統(tǒng), 都是先安裝windows再
5、安裝Ubuntu, 用Ubuntu提供的引導程序 “GRUB” 來引導所有的系統(tǒng), 包括 LFS。 而筆者不打算安裝LFS的引導系統(tǒng) “LFS文檔” 中第 8章:用 “GRUB” 引導系統(tǒng)可以省略。 如果windows需要重新 安裝, 它會再次覆蓋掉 “GRUB” 寫入的MBR。 所以對于多系統(tǒng) 環(huán)境下 , 重新安裝windows需要備份 “mbr” , windows安裝完 成后, 用Ubuntu的引導盤進入 “l(fā)ive CD” 模式, 再恢復一下 “mbr” (參見鳥哥的私房菜中關于dd命令一節(jié) 。如果沒有備份MBR, 可通過Live-CD用Grub重新寫一次MBR (具體操作可參考LFS
6、中關于安裝配置Grub一節(jié) 。Ubuntu的安裝非常簡單, 插入Ubuntu的啟動盤, 選擇U 盤啟動, 再做幾道選擇題。 其中需要注意的是必須選擇 “手 動指定分區(qū) (高級 ” 選項 (第四步 ; 第五步, 選中 “空閑” -“添加” , 選擇主分區(qū), 分配60G給Ubutnu使用, 掛載點選 “/” ,用于 “ext4 日志文件系統(tǒng)” 。 因為默認已經(jīng)有一個 windows分區(qū), 確定之后會出現(xiàn) “ /dev/sda2” 這個設備, 再選 擇 “空閑” , 選擇 “主分區(qū)” 。 大小選擇內存的2倍, 起始位, 用 于 “交換分區(qū)” , 確定。 其他的分區(qū)等ubuntu安裝完成之后用 “fd
7、isk” 再分 。 其他的都默認選擇完成安裝。2 更新系統(tǒng)用于滿足LFS對宿主的要求2.1 選擇一個最快的服務器 26軟件透視 “系統(tǒng)” -“系統(tǒng)管理” -“軟件源” -“選擇最佳服務 器” 。 國內的163服務器比較快, 選擇之。 如果是text模式, 可 參看apt-get help。2.2 安裝宿主必須的軟件包。先打開一個終端, “應用程序” -“附件” -“終端” 。 從 “文檔” 前言中的 “vii. Host System Requirements” 中將 “version-check.sh” 這一段腳本復制出來, 終端的粘帖快 捷鍵是 “Ctrl+Shift+v” 。 執(zhí)行一 下
8、 , 發(fā)現(xiàn)缺少 了 幾個包, 切換 到root用戶 , 安裝vim m4 bison patch texinfo軟件包, 用 以下命令 。sudo suapt-get install vim m4 bison patch texinfo3 準備一個新分區(qū)建議在第一次只分配一個根分區(qū), 交換分區(qū) (swap 于 ubuntu的共享, 先取得root用戶權限 “sudo su” , 接著查看 硬盤的分區(qū)情況 “fdisk -l” , 找到硬盤的設備號 (筆者的是 “ /dev/sda” , 然后執(zhí)行 “fdisk /dev/sda” 。fdisk分區(qū)操作比較簡單, “m” 幫助里列出 了所有命令:
9、“p” 查看分區(qū)情況; n添加分區(qū) (主分區(qū), 或者擴展分區(qū) ; t改變分區(qū)的類型; w保存 (確認無誤之后一定要保存 ; q退 出; d刪除 (特別注意刪除要從后往前, 否則會出問題, 可能是 因為windows 下的分區(qū)軟件和Linux不一樣 。筆者先建立了 一個擴展分區(qū), 然后再在上面分出3G的空 間, 就是 “ /dev/sda5” , 用于安裝LFS。4 準備工作4.1 在這個分區(qū)上創(chuàng)建文件系統(tǒng) (對應LFS文檔2.3 將文件系統(tǒng)格式化成ext4。 使用以下命令:mke2fs -t ext4 /dev/sda54.2 Mounting the New Partition和LFS文檔略
10、有不同, 文件系統(tǒng)選擇的是ext4.4.3 獲取源代碼wget是一個命令行的下載工具。 對于Linux用戶來說, 幾乎每天都在使用它。 wget -r -np -nd http:/example. com/packages/這條命令可以下載網(wǎng)站 上 packages目錄中的所有文件。 其中, -np的作用是不遍歷 父目錄, -nd表示不在本機重新創(chuàng)建目錄結構。 wget -r -np -nd -accept=iso 上一條命令相似, 但多加了 一個-accept=iso選項, 這指示 wget僅下載i386目錄中所有擴展名為iso的文件。 也可以指定 多個擴展名, 只需用逗號分隔。 wget-
11、i filename. txt命令常 用于批量下載, 把所有需要下載文件的地址放到 filename. txt 中, 然后wget就會自動下載所有文件。 wget-c http:/ example. com/really-big-file.iso 這里所指定的-c選項的 作用為斷點續(xù)傳。 wget -m -k (-H http:/www.example. com/命令可用來鏡像一個網(wǎng)站, wget將對鏈接轉換。 如果網(wǎng) 站中的圖像放在另外的站點, 那么可以使用-H選項。 sohu上 有6. 7的源碼包, 可直接下載。 這里多下載了 一個wget, 打算 把這個包也安裝進去。cd $LFS解壓:
12、tar -xf lfs-packages-6.7. tar刪除打包文件。 如果還想留用就 “mv lfs-packages-6. 7. tar /” 到別的地方 。 直接下載的源碼包, 只需要修改權 限, 添加lfs用戶 。 通過以下命令列表完成準備前工作。 #- 添加用戶chmod -v a+wt $LFS/sourcesmkdir -v $LFS/toolsln -sv $LFS/tools /groupadd lfsuseradd -s /bin/bash -g lfs -m -k /dev/null lfs passwd lfs#- 改變用戶權限chown -v lfs $LFS/to
13、olschown -v lfs $LFS/sourcessu - lfs#- 設置lfs用戶權限。cat /. bash_profile /. bashrc /etc/sysconfig/network 6.6 定制 /etc/hosts 文件定義 一個ip給eth*使用。 根據(jù)網(wǎng)絡情況配。6.7 配置網(wǎng)絡腳本根據(jù)實際的網(wǎng)絡配置, ip, 網(wǎng)關等。 配置主機名、 域名服 務地址。6.8 創(chuàng)建 /etc/fstab 文件這個文件是默認加載的文件系統(tǒng)。 如果還需要掛別的分 區(qū), 也可以在這里寫。 在現(xiàn)有情況下修改如下 。cat /etc/fstab Local version加入喜歡的名字。 在驅
14、動程序列中找到對應的網(wǎng)卡。配置完成直接退出, 提示要保存 “yes” 之后make。 按照 步驟來。6.10 使用 GRUB 配置啟動過程這部分省略。 因為有多系統(tǒng)存在, 可以直接用ubuntu自 帶的GRUB啟動。 清除掉加載點。7 配置ubuntu以及Grub打開一個終端,sudo sugrub-mkconfig -o /boot/grub/grub.cfg完成之后, cat /boot/grub/grub.cfg文件就會多一個 啟動選項。如果順利, 新的LFS將會啟動。 如果沒有啟動, 再進入 ubuntu重新chroot。 命令如下:sudo suexport LFS=/mnt/lfs
15、mount -t ext4 /dev/sda5 $LFSmount -v -bind /dev $LFS/devmount -vt devpts devpts $LFS/dev/ptsmount -vt tmpfs shm $LFS/dev/shmmount -vt proc proc $LFS/procmount -vt sysfs sysfs $LFS/syschroot $LFS /usr/bin/env -i HOME=/root TERM=$TERM PS1=u:w$ PATH=/bin:/usr/bin:/sbin:/usr/sbin /bin/bash -login之后可以先查看
16、 /var/log/kern.log文件, 或者查看 sys. log。如果在完成基礎系統(tǒng)的編譯時沒有出錯, 系統(tǒng)不能啟動 的原因基本就是編譯內核不能用, 可以選擇再次編譯內核。 特別需要提醒的是, 對于大多數(shù)服務器, Raid卡驅動需要編 譯進內核。參考文獻1毛德操, 胡希明.Linux內核源代碼情景分析M.浙江大學出版社, 2001.2趙炯.Linux內核完全剖析M.機械工業(yè)出版社, 2010.3鳥哥. 鳥哥的私房菜M.人民郵電出版社, 2007.4張小進.Linux系統(tǒng)應用基礎教程M.機械工業(yè)出版社, 2008.簡 訊阿里巴巴與浙江郵政合作共建物流體系阿里巴巴 (1688.HK與浙江省郵政物流速遞有限公司在阿里巴巴濱江園區(qū)簽署了 合作協(xié)議。 雙方將構建全球領先的電子商 務物流服務, 為阿里巴巴的中小企業(yè)客戶在浙江
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 節(jié)能環(huán)保行業(yè)綠色能源技術與項目開發(fā)方案
- 工程設計咨詢服務合同
- 旅客運輸服務合同
- 電子產(chǎn)品維修服務保障與免責協(xié)議
- 不動產(chǎn)財產(chǎn)租賃合同
- 項目團隊季度工作總結報告
- 22 我們奇妙的世界(教學設計)-2023-2024學年統(tǒng)編版語文三年級下冊
- 14《圓明園的毀滅》(教學設計)2024-2025學年統(tǒng)編版語文五年級上冊
- 第五章一元函數(shù)的導數(shù)及其應用本章小結第二課時教學設計-2023-2024學年高二下學期數(shù)學人教A版(2019)選擇性必修第二冊
- 第6單元 18古詩三首(教學設計)2024-2025學年六年級語文上冊同步教學(統(tǒng)編版)
- 浙江省Z20聯(lián)盟(名校新高考研究聯(lián)盟)2024屆高三下學期第三次聯(lián)考英語試題 含答案
- 2024-2025學年初中體育與健康七年級全一冊(2024)人教版(2024)教學設計合集
- 第五單元《分數(shù)的意義》復習試題(單元測試)-2024-2025學年五年級上冊數(shù)學北師大版
- 腕踝針中醫(yī)技術
- DB34T 4620-2023 疼痛科治療室建設規(guī)范
- 2024年二級建造師繼續(xù)教育考核題及答案
- (完整版)醫(yī)療廢物處置管理制度
- 物流公司員工守則以及管理制度
- 易制毒化學品識別與檢驗學習通超星期末考試答案章節(jié)答案2024年
- 高中生綜合素質評價典型事例【六篇】
- 2024人形機器人產(chǎn)業(yè)半年研究報告
評論
0/150
提交評論