Ubuntu核心基本系統裁減與編譯

2021-06-28 13:42:07 字數 2898 閱讀 6605

ubuntu核心是用系統,於是我學習研究了ubuntu核心,在這裡對大家詳細介紹下ubuntu核心系統應用,希望對大家有用。ubuntu作業系統核心裁減與定製。

一、ubuntu核心裁減與編譯

1、安裝make ,gcc, make-kpkg,執行menuconfig等等和編譯ubuntu核心相關的工具。安裝命令如下$sudo apt-get install build-essential kernel-package libncurses5-dev如果無法安裝請檢查/etc/apt/sources.list

2、解壓源**可以解壓到任意目錄,我們在這裡解壓到/usr/src

tar -xvf linux-2.6.28.n -c /usr/src  

cd /usr/src/linux-2.6.28.n 

3、開始編譯前的準備工作

$ sudo make mrproper

網上很多教程上說把現在使用的ubuntu核心的config拷貝過來參考,據實驗,是不需要的,ubuntu還有debian會自動做這步。不過這條命令倒是可以學習一下。當然你可以將以前的配置拷貝過來。命令:**:cp /boot/config-`uname -r` ./.config

4、開始配置ubuntu核心選項

a、sudo make menuconfig,根據需要進行ubuntu核心配置。

5、編譯ubuntu核心

例如:make-kpkg –initrd kernel_image

kernel-headers(kernel具體版本號如2.6.28.3,如果首次編譯時如果指定kernel-headers會報錯。)說明可以用make -j2代替。

6、安裝ubuntu核心

編譯完成就是安裝工作。編譯好的ubuntu核心在上一層目錄。包括linux-headers-...-_i386.deb和linux- image-...-i386.deb兩個檔案,如果你不搞開發的話,只要安裝ubuntu核心就可以,標頭檔案以後要用的時候再說。

安裝相關命令:$ cd ..

$ sudo dpkg -i linux-image-(按tab鍵)說明:1、如果用make -j2編譯,則可以用 make install 和make modules_install進行代替

2、如果用make 直接編譯,則需要用,mkinitramfs -o initrd.img-2.6.28.n 2.6.28.n生成initrd檔案並進行/boot/grub/menu.lst增加新ubuntu核心選項。

3、在/boot/grub/menu.lst中可以不實用uuid,方法可以將/etc/initramfs-tools/conf.d/resume內容用#號注釋,update-initramfs -u -k `uname -r`(如果報kinit: no resume image,doing normal boot...)如果報此錯誤可以用該方法解決。

二、基本系統裁減

一般有兩種方法,將原有系統上進行刪除,刪除無用的檔案;另一種方法就是在新的檔案系統中增加檔案,我們可以採用第一種辦法來作,比較簡單的辦法就是將所有檔案拷貝到乙個新的磁碟分割槽,進行作業系統檔案裁減,如果刪除檔案導致系統無法啟動可以將檔案從原始系統中拷貝過來。

1、首先我們對命令進行刪除,刪除那些不常用的命令。

2、對動態庫進行刪除,使用ldd comand 確定檔案使用的動態庫。(可以盡量將所有模組編譯到ubuntu核心而不是編譯成模組,這樣可以減小檔案系統裁減的難度。),刪除多餘的動態庫。

3、對/dev目錄進行裁減,預設可以保留makedev,console,null,random,urandom,以及bus,pts hm這些檔案和目錄。

4、對/usr目錄進行裁減,僅保留bin,lib,sbin,share,local幾個目錄即可。

a、bin,sbin根據需要保留必要命令即可。

b、lib保留gconv,i686,locale,sudo,ssl,udev目錄和必要的動態庫即可。

c、share目錄保留command-not-found file i18n terminfo zoneinfo即可,並且可以將這些目錄中不需要的檔案刪除。

5、裁減var目錄保留 lock log mail run spool 幾個目錄即可,根據需要刪除這些目錄中多餘檔案。

6、裁減etc目錄,根據需要進行裁減。

說明:1、/usr/bin/tput命令和/etc/lsb-*檔案可以導致系統重啟時[0k]不顯視,裁減時必須主義。

2、命令列下修改時區a、 sudo tzselect 進行選擇;b、將/usr/share/zoneinfo/asia/shanghai/etc/localtime

7、boot目錄裁減

根據需要修改initrd.img-2.6.28.n

1、可以使用gzip -cd /boot/imagefile.img |cpio -imd –quiet對initrd.img-2.6.28.n進行解壓,修改引數。

2、用find . |cpio –quiet -h newc -o |gzip -9 -n > /boot/initrdfile.img生成壓縮的initrd檔案。或者使用(find . |cpio –quiet -c -o |gzip -9 -n > /boot/initrdfile.img,不過高版本ubuntu核心使用前面的壓縮方式。

3、可以用mkinitramfs -o initrd.img-2.6.28.n 2.6.28.n生成initrd檔案,也可以用update-initramfs -u -k `uname -r` 公升級現有initrd進行公升級。

8、重啟進行必要的調整。

說明:1、如果報error:」kernel.maps_protect」 is an unknow key」可以在/etc/sysctl.conf將該行遮蔽。

2、如果報error:」vm.mmap_min_addr」 is an unknow key可以設定security option選項 重新編譯ubuntu核心。

ubuntu基本系統的安裝

1.分割槽主要分四個 swap交換區 大概為記憶體的兩倍 boot啟動區 1g左右,根目錄區 用於裝系統 5g左右,home使用者的主目錄區 放使用者的各種檔案 10g左右 3.安裝完程之後首先設定你的安裝源,源的好壞會影響後面的安裝。以我自己的為例 電信使用者可以直接使用這個 先備份你的sudo ...

linux檢視核心版本 系統版本 系統位數

1.檢視核心版本命令 1 root q1test01 cat proc version linux version 2.6.9 22.elsmp bhcompile crowe.devel.redhat.com gcc version 3.4.4 20050721 3.4.4 2 1 smp mon...

CentOS檢視核心版本 系統版本 系統位數

centos檢視核心版本 系統版本 系統位數 檢視linux核心版本 root mongo02 cat proc version linux version 2.6.32 358.el6.x86 64 mockbuild c6b8.bsys.dev.centos.org gcc version 4....