




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
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)定、 簡潔, 特別適合運行在云計算中的虛擬服務器的基礎軟件平 臺 。LFS最早由Gerard Beekmans發(fā)起, 其官方網(wǎng)址:http:/ www. /, 現(xiàn)在的穩(wěn)定版本是6. 6。 有一 個在線的LFS6.6的中文文檔地址: lfs/index.html, 出了6. 7-rc1版本, 提供的是幾百K的小小文 檔。
3、本文將編譯這個版本的 “LFS6. 7” , 分享做 “LFS” 的經(jīng)驗 和教訓。筆者在機器上安裝windows, ubuntu和LFS。 Ubuntu是一 個Linux的發(fā)行版本, 最大特點是方便, 對主流硬件的支持非 常好, “163” 和 “sohu” 都有ubuntu的鏡像, 下載和更新速度 都非???。編譯 “LFS” 需要一個宿主。 筆者把ubuntu作為宿主, 而 沒有選擇LFS的live-cd。 那是因為LFS編譯時間和機器速度 有關, 一臺老P4最少需要23天, 下班之后可以直接讓機器 休眠, 第二天繼續(xù)。1 安裝宿主系統(tǒng)“LFS” 和高度定制的Linux系統(tǒng)一樣需要一個宿主,
4、 比 如 “Gentoo, slckware” 等。 從2003年主流主板就開始支持 從U盤啟動, 如果需要安裝系統(tǒng), 將 “啟動U盤” 插入, 從U盤 引導。 LFS文檔中有一節(jié)是說明對宿主系統(tǒng)的要求。 筆者用 Ubuntu作為宿主來編譯LFS, ubuntu-10. 04-desktop-i386可 在http:/mirrors.sohu. com下載。作者簡介:熊鷹, 江蘇省科學技術情報研究所。機器上原來已有一個Windows, 并且分區(qū)已滿。 在網(wǎng)上找 到了 一個可動態(tài)調整硬盤分區(qū)的軟件 “pqmagic9. 0” , 可添加 刪除分區(qū), 支持windows7和Vista。 調整分區(qū)有
5、風險, 建議在 調整分區(qū)之前先備份所有重要文件。硬盤只能支持4個主分區(qū)。 把windows放在第一個分區(qū), 在linux下看是 “ /dev/sda1” ; 將ubuntu放在第二個主分區(qū) “ / dev/sda2” , 將交換分區(qū)放在 “ /dev/sda3” 。 完成安裝Ubuntu 后再通過 “fdisk” 來分余下的空間。一般對于多系統(tǒng), 都是先安裝windows再安裝Ubuntu, 用Ubuntu提供的引導程序 “GRUB” 來引導所有的系統(tǒng), 包括 LFS。 而筆者不打算安裝LFS的引導系統(tǒng) “LFS文檔” 中第 8章:用 “GRUB” 引導系統(tǒng)可以省略。 如果windows需要重
6、新 安裝, 它會再次覆蓋掉 “GRUB” 寫入的MBR。 所以對于多系統(tǒng) 環(huán)境下 , 重新安裝windows需要備份 “mbr” , windows安裝完 成后, 用Ubuntu的引導盤進入 “l(fā)ive CD” 模式, 再恢復一下 “mbr” (參見鳥哥的私房菜中關于dd命令一節(jié) 。如果沒有備份MBR, 可通過Live-CD用Grub重新寫一次MBR (具體操作可參考LFS中關于安裝配置Grub一節(jié) 。Ubuntu的安裝非常簡單, 插入Ubuntu的啟動盤, 選擇U 盤啟動, 再做幾道選擇題。 其中需要注意的是必須選擇 “手 動指定分區(qū) (高級 ” 選項 (第四步 ; 第五步, 選中 “空閑”
7、 -“添加” , 選擇主分區(qū), 分配60G給Ubutnu使用, 掛載點選 “/” ,用于 “ext4 日志文件系統(tǒng)” 。 因為默認已經(jīng)有一個 windows分區(qū), 確定之后會出現(xiàn) “ /dev/sda2” 這個設備, 再選 擇 “空閑” , 選擇 “主分區(qū)” 。 大小選擇內存的2倍, 起始位, 用 于 “交換分區(qū)” , 確定。 其他的分區(qū)等ubuntu安裝完成之后用 “fdisk” 再分 。 其他的都默認選擇完成安裝。2 更新系統(tǒng)用于滿足LFS對宿主的要求2.1 選擇一個最快的服務器 26軟件透視 “系統(tǒng)” -“系統(tǒng)管理” -“軟件源” -“選擇最佳服務 器” 。 國內的163服務器比較快,
8、選擇之。 如果是text模式, 可 參看apt-get help。2.2 安裝宿主必須的軟件包。先打開一個終端, “應用程序” -“附件” -“終端” 。 從 “文檔” 前言中的 “vii. Host System Requirements” 中將 “version-check.sh” 這一段腳本復制出來, 終端的粘帖快 捷鍵是 “Ctrl+Shift+v” 。 執(zhí)行一 下 , 發(fā)現(xiàn)缺少 了 幾個包, 切換 到root用戶 , 安裝vim m4 bison patch texinfo軟件包, 用 以下命令 。sudo suapt-get install vim m4 bison patch t
9、exinfo3 準備一個新分區(qū)建議在第一次只分配一個根分區(qū), 交換分區(qū) (swap 于 ubuntu的共享, 先取得root用戶權限 “sudo su” , 接著查看 硬盤的分區(qū)情況 “fdisk -l” , 找到硬盤的設備號 (筆者的是 “ /dev/sda” , 然后執(zhí)行 “fdisk /dev/sda” 。fdisk分區(qū)操作比較簡單, “m” 幫助里列出 了所有命令:“p” 查看分區(qū)情況; n添加分區(qū) (主分區(qū), 或者擴展分區(qū) ; t改變分區(qū)的類型; w保存 (確認無誤之后一定要保存 ; q退 出; d刪除 (特別注意刪除要從后往前, 否則會出問題, 可能是 因為windows 下的分區(qū)
10、軟件和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文檔略有不同, 文件系統(tǒng)選擇的是ext4.4.3 獲取源代碼wget是一個命令行的下載工具。 對于Linux用戶來說, 幾乎每天都在使用它。 wget -r -np -nd http:/example. com/packages/
11、這條命令可以下載網(wǎng)站 上 packages目錄中的所有文件。 其中, -np的作用是不遍歷 父目錄, -nd表示不在本機重新創(chuàng)建目錄結構。 wget -r -np -nd -accept=iso 上一條命令相似, 但多加了 一個-accept=iso選項, 這指示 wget僅下載i386目錄中所有擴展名為iso的文件。 也可以指定 多個擴展名, 只需用逗號分隔。 wget-i filename. txt命令常 用于批量下載, 把所有需要下載文件的地址放到 filename. txt 中, 然后wget就會自動下載所有文件。 wget-c http:/ example. com/really-b
12、ig-file.iso 這里所指定的-c選項的 作用為斷點續(xù)傳。 wget -m -k (-H http:/www.example. com/命令可用來鏡像一個網(wǎng)站, wget將對鏈接轉換。 如果網(wǎng) 站中的圖像放在另外的站點, 那么可以使用-H選項。 sohu上 有6. 7的源碼包, 可直接下載。 這里多下載了 一個wget, 打算 把這個包也安裝進去。cd $LFSwget -c tarwget -c /gnu/wget/wget-1.12. tar. bz2解壓:tar -xf lfs-packages-6.7. tar刪除打包文件。 如果還想留用就 “m
13、v 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/toolschown -v lfs $LFS/sourcessu - lfs#- 設置lfs用戶權
14、限。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加入喜歡的名字。 在驅動程序列中找到對應的網(wǎng)卡。配置完成直接退出, 提示要保存 “yes” 之后make。 按照 步
15、驟來。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/lfsmount -t ext4 /dev/sda5 $LFSmount -v -bind /dev
16、 $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之后可以先查看 /var/log/kern.log文件, 或者查看 sys. log。如果在完成基礎系統(tǒng)的編
17、譯時沒有出錯, 系統(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é)議。 雙方將構建全球領先的電子商 務物流服務, 為阿
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度老舊小區(qū)車庫租賃改造升級合同
- 二零二五年度金融借款合同爭議解決策略范本
- 二零二五年度福建省勞動合同:企業(yè)社會責任與員工權益保障協(xié)議
- 抖音賬號合作協(xié)議書-2025年度短視頻廣告代理合同
- 2025年度汽車展覽會參展商展位安全合同
- 2025年度特色小吃入股合作協(xié)議書
- 2025年度智能制造設備研發(fā)聘用技術專家勞務合同
- 二零二五年度未成年人撫養(yǎng)權放棄與財產(chǎn)權益分割執(zhí)行協(xié)議
- 二零二五年度企業(yè)內部營銷人員保密及業(yè)務拓展協(xié)議
- 二零二五年度家庭生活助理保姆雇傭合同
- 拆除工程施工拆除進度安排
- 絕緣技術監(jiān)督上崗員:廠用電設備技術監(jiān)督考試資料一
- 衛(wèi)生監(jiān)督村醫(yī)培訓課件
- 動物的感覺器官
- 獵頭項目方案
- 2024年家庭教育指導師考試(重點)題庫及答案(含各題型)
- 直腸癌術后的康復護理
- 性商老師課程培訓課件
- 拆除鍋爐可行性報告
- 二級精神病醫(yī)院評審標準實施細則
- 全套ISO45001職業(yè)健康安全管理體系文件(手冊及程序文件)
評論
0/150
提交評論