小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

Linux系統(tǒng)裁剪(2)之Linux系統(tǒng)裁剪

 qweertt4747 2017-02-07
 

 


1.這里使用交叉編譯的思想,我在Redhat6.4上添加一個(gè)硬盤,將該硬盤分區(qū)以及安裝好MBR之后,再將其掛載到另一個(gè)新建的虛擬機(jī)上,注意該虛擬機(jī)在創(chuàng)建時(shí)我只使用了這一個(gè)處理好的硬盤。


2.怎么添加新硬盤就不贅述了,現(xiàn)在默認(rèn)以及添加好了,下面要執(zhí)行的步驟是分區(qū)、格式化、掛載、安裝grub、創(chuàng)建“根分區(qū)”、掛載至新系統(tǒng)。


3.給sdd(我的虛擬機(jī)有四塊硬盤,這個(gè)是第四塊)硬盤分區(qū),然后格式化,我劃分了兩個(gè)分區(qū),一個(gè)100M用于boot分區(qū),一個(gè)1G用來模擬根分區(qū),如下:



分區(qū)以后,查看一下,應(yīng)該如下所示:



4.格式化硬盤



5.在宿主機(jī)上創(chuàng)建兩個(gè)目錄,用于掛載這兩個(gè)分區(qū)。分別是/mnt/boot和/mnt/sysroot



6.為精剪的小系統(tǒng)創(chuàng)建根目錄下的相關(guān)文件,這里我使用一個(gè)簡單的for命令去創(chuàng)建。



7.復(fù)制內(nèi)核文件意見所需的基本設(shè)備驅(qū)動(dòng)文件


8.安裝移植shell程序,這里我使用馬哥(馬永亮)提供的一個(gè)移植腳本bincp.sh,非常好用。其實(shí)移植一個(gè)命令只需要將該命令以及該命令的的庫文件移植過去就可以了,命令ldd。

  1. #!/bin/bash  
  2. #  
  3. target=/mnt/sysroot  
  4.   
  5. clearCmd() {  
  6.   if which $cmd &> /dev/null; then  
  7.         cmdPath=`which --skip-alias $cmd`  
  8.   else  
  9.         echo "No such command"  
  10.         return 5  
  11.   fi  
  12. }  
  13.   
  14. cmdCopy() {  
  15.         cmdDir=`dirname $1`  
  16.         [ -d ${target}${cmdDir} ] || mkdir -p ${target}${cmdDir}  
  17.         [ -f ${target}${1} ] || cp $1 ${target}${cmdDir}  
  18. }  
  19.   
  20. libCopy() {  
  21.         for lib in `ldd $1 | grep -o "/[^[:space:]]\{1,\}"`; do  
  22.                 libDir=`dirname $lib`  
  23.                 [ -d ${target}${libDir} ] || mkdir -p ${target}${libDir}  
  24.                 [ -f ${target}${lib} ] || cp $lib ${target}${libDir}  
  25.         done  
  26. }  
  27.   
  28. while true; do  
  29.   read -p "Enter a command: " cmd  
  30.   if [ "$cmd" == 'quit' ] ;then  
  31.         echo "quit"  
  32.         exit 0  
  33.   fi  
  34.   clearCmd $cmd  
  35.   [ $? -eq 5 ] && continue  
  36.   
  37.   cmdCopy $cmdPath  
  38.   libCopy $cmdPath  
  39. done  

這里至少要移植一個(gè)bash命令,其余的用到的話可以來移植,為了后面還要添加網(wǎng)卡模塊,因此我在這里移植了一下幾個(gè)命令:bash,ls,cat,ifconfig,insmod,rmmod,route,ping等命令。


9.安裝grub(安裝方法前面目錄有詳細(xì)步驟和說明)



10.創(chuàng)建grub.conf文件,具體步驟和說明復(fù)習(xí)之前的章節(jié),vi /mnt/boot/grub/grub.conf,內(nèi)容如下:



我們給引導(dǎo)文件創(chuàng)建了一個(gè)名字:New Minimal Linux OS Powered by Redhat6.4,這樣方便我們查看,另外需要注意的一點(diǎn),當(dāng)內(nèi)核裝載進(jìn)內(nèi)存,并且展開驅(qū)動(dòng)設(shè)備的“文件系統(tǒng)”,會(huì)以只讀方式(ro)掛載根分區(qū),然后進(jìn)行系統(tǒng)初始化流程,默認(rèn)會(huì)去找./sbin/init,但是我們這里使用一個(gè)shell腳本來替代,即可進(jìn)入系統(tǒng)。只不過這里需要指定init參數(shù),并且一定要在該行的最后,如果系統(tǒng)都沒有掛載好,有怎么能找到/bin/bash這個(gè)可執(zhí)行文件呢。將宿主機(jī)掛起,然后創(chuàng)建一個(gè)新的虛擬機(jī),使用這塊硬盤,然后啟動(dòng)如下:



現(xiàn)在可以成功進(jìn)入系統(tǒng)了,而且啟動(dòng)速度特別快,也就3秒左右。后面來說下加入網(wǎng)卡模塊,然后讓這個(gè)小型的linux系統(tǒng)可以上網(wǎng)。

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多