Ubuntu啟動流程及系統服務設定
資訊來源:網路
啟動流程
========
Linux系統主要通過以下步驟啟動:
1、讀取MBR的資訊,啟動Boot Manager
Windows使用NTLDR作為Boot Manager,如果您的系統中安裝多個版本的Windows,您就需要在NTLDR中選擇您要進入的系統。
Linux通常使用功能強大,配置靈活的GRUB作為Boot Manager,我們將在啟動管理章節中向您介紹它的使用方式。
2、載入系統核心,啟動init進程
init進程是Linux的根進程,所有的系統進程都是它的子進程。
3、init進程讀取 /etc/inittab 檔案中的資訊,並進入預設的運行層級,按順序運行該運行層級對應檔案夾下的指令碼。指令碼通常以 start 參數啟動,並指向一個系統中的程式。
通常情況下, /etc/rcS.d/ 目錄下的啟動指令碼首先被執行,然後是 /etc/rcN.d/ 目錄。例如您設定的運行層級為3,那麼它對應的啟動目錄為 /etc/rc3.d/ 。
4、根據 /etc/rcS.d/ 檔案夾中對應的指令碼啟動Xwindow伺服器 xorg
Xwindow為Linux下的圖形化使用者介面系統。
5、啟動登入管理器,等待使用者登入
Ubuntu系統預設使用GDM作為登入管理器,您在登入管理器介面中輸入使用者名稱和密碼後,便可以登入系統。(您可以在 /etc/rc3.d/ 檔案夾中找到一個名為 S13gdm 的連結)
更改運行層級
————
在 /etc/inittab 檔案中找到如下內容:
# The default runlevel.
id:2:initdefault:
這一行中的數字2,為系統的運行層級,預設的運行層級涵義如下:
0 關機
1 單使用者維護模式
2~5 多使用者模式
6 重啟
服務管理
========
更改啟動服務
————
在運行層級對應的檔案夾中,您可以看到許多檔案名稱以 S## 和 K## 起始的啟動指令碼連結。
例如:
/etc/rcS.d/S35mountall.sh 掛載檔案系統
/etc/rcS.d/S40networking 啟用網路支援
/etc/rc2.d/S13gdm 啟動登入管理器
/etc/rc2.d/S20makedev 建立裝置檔案
/etc/rc2.d/S23xinetd 啟動超級進程
init 進程將以 start 為參數,按檔案名稱順序執行所有以 S## 起始的指令碼。指令碼名稱中的數字越小,它將被越早執行。例如在 /etc/rc2.d/ 檔案夾中, S13gdm 檔案名稱中的數字小於 S23xinetd , S13gdm 將比 S23xinetd 先執行。
如果一個指令碼連結,以 K## 起始,表示它將以 stop 參數被執行。如果相應服務沒有啟動,則不執行該指令碼。
例如:
/etc/rc2.d/K20powernowd 針對某種硬體的電源管理支援
如果您想禁止某一服務在啟動時自動運行,您可以將相應運行層級中的指令碼由 S##xxx 重新命名為 K##xxx 。
手動控制服務
————
您也可以手動運行帶有以下參數的啟動指令碼,來控制系統服務。
start 啟動
stop 停止
restart 重啟
例如:
/etc/rc2.d/K20powernowd start
有時您並不清楚當前運行層級,該運行層級下未必有相應指令碼;而且此類指令碼的前三位字元並不固定,不便於記憶。這時,您可以直接使用 /etc/init.d/ 檔案夾中的啟動指令碼( /etc/rcX.d/ 中的啟動指令碼連結到 /etc/init.d/ 檔案夾下相應指令碼),這也是我們向您推薦的方式。
例如:
/etc/init.d/powernowd start
Tips:以上命令的位置並沒有包含在環境變數的搜尋路徑中,所以要輸入完整路徑。
常用系統服務
============
acpi-support 進階電源管理支援
acpid acpi精靈.這兩個用於電源管理,非常重要
alsa 聲音子系統
alsa-utils
anacron cron的子系統,將系統關閉期間的計劃任務,在下一次系統運行時執行。
apmd acpi的擴充
atd 類似於cron的任務調度系統。建議關閉
binfmt-support 核心支援其他二進位的檔案格式。建議開啟
bluez-utiles 藍牙裝置支援
bootlogd 開機記錄。開啟它
cron 任務調度系統,建議開啟
cupsys 印表機子系統。
dbus 訊息匯流排系統(message bus system)。非常重要
dns-clean 使用撥號連線時,清除dns資訊。
evms 企業卷管理系統(Enterprise Volumn Management system)
fetchmail 郵件使用者代理,用於收取郵件
gdm gnome登入和案頭管理器。
gdomap
gpm 終端中的滑鼠支援。
halt 別動它。
hdparm 調整硬碟的指令碼,設定檔為 /etc/hdparm.conf 。
hibernate 系統休眠
hotkey-setup 筆記本功能鍵支援。支援類型包括: HP, Acer, ASUS, Sony, Dell, 和IBM。
hotplug and hotplug-net 隨插即用支援,比較複雜,建議不要動它。
hplip HP印表機和圖形子系統
ifrename 網路介面重新命名指令碼。如果您有十塊網卡,您應該開啟它
inetd 在檔案 /etc/inetd.conf 中,注釋掉所有你不需要的服務。如果該檔案不包含任何服務,那關閉它是很安全的。
klogd 重要。
linux-restricted-modules-common 受限模組支援。 /lib/linux-restricted-modules/ 檔案夾中的模組為受限模組。例如某些驅動程式,如果您沒有使用受限模組,就不需要開啟它。
lvm 邏輯卷管理系統支援。
makedev 建立裝置檔案,非常重要。
mdamd 磁碟陣列
module-init-tools 從/etc/modules載入擴充模組,建議開啟。
networking 網路支援。按 /etc/network/interfaces 檔案預設啟用網路,非常重要。
ntpdate 時間同步服務,建議關閉。
pcmcia pcmcia裝置支援。
powernowd 移動CPU節能支援
ppp and ppp-dns 撥號連線
readahead 預先載入庫檔案。
reboot 別動它。
resolvconf 自動設定DNS
rmnologin 清除nologin
rsync rsync精靈
sendsigs 在重啟和關機期間發送訊號
single 啟用單一使用者模式
ssh ssh精靈。建議開啟
stop-bootlogd 在2,3,4,5運行層級中停止bootlogd服務
sudo 檢查sudo狀態。重要
sysklogd 系統日誌
udev & udev-mab 使用者空間dev檔案系統(userspace dev filesystem)。重要
umountfs 卸載檔案系統
urandom 隨機數產生器
usplash 開機畫面支援
vbesave 顯卡BIOS組態工具。儲存顯卡的狀態
xorg-common 設定X服務ICE socket。
adjtimex 調整核心時鐘的工具
dirmngr 認證列表管理工具,和gnupg一起工作。
hwtools irqs最佳化工具
libpam-devperm 系統崩潰之後,用於修理裝置檔案許可的精靈。
lm-sensors 板載感應器支援
mdadm-raid 磁碟陳列管理器
screen-cleanup 清除開機螢幕的指令碼
xinetd 管理其他守護進程的一個inetd超級精靈
重要設定檔
============
!無論任何情況下,在修改設定檔之前,請您先備份它!
建議您使用這個命令: sudo cp xxx xxx_`date +%y%m%d_%H:%M` 。
當然這很麻煩,您可以建立一個名為 bak 的檔案,內容如下:
#!/bin/bash
sudo cp $1 $1_`date +%y%m%d_%H:%M`
把它放在您能夠記住的目錄下,比如 /home ,執行命令 sh /home/bak xxx ,就可以將當前檔案夾下的檔案 xxx 另存新檔 xxx_yymmdd_HH:MM 的格式了
全域設定檔
————
系統初始化
/etc/inittab 運行層級、控制台數量
/etc/timezone 時區
/etc/inetd.conf 超級進程
檔案系統
/etc/fstab 開機時掛載的檔案系統
/etc/mtab 當前掛載的檔案系統
使用者系統
/etc/passwd 使用者資訊
/etc/shadow 使用者密碼
/etc/group 群組資訊
/etc/gshadow 群組密碼
/etc/sudoers Sudoer列表(請使用 visudo 命令修改此檔案,而不要直接編輯)
Shell
/etc/shell 可用Shell列表
/etc/inputrc ReadLine控制項設定
/etc/profile 使用者喜好設定
/etc/bash.bashrc bash設定檔
系統內容
/etc/environment 環境變數
/etc/updatedb.conf 檔案檢索資料庫配置資訊
/etc/issue 發行資訊
/etc/issue.net
/etc/screenrc 螢幕設定
網路
/etc/iftab 網卡MAC地址綁定
/etc/hosts 主機列表
/etc/hostname 主機名稱
/etc/resolv.conf 網域名稱解析伺服器位址
/etc/network/interfaces 網卡設定檔
使用者設定檔
————
/etc/ 目錄下的所有檔案,只有root使用者才有修改許可權。應用軟體的全域設定檔,普通使用者也不能夠修改,如果您想配置軟體,以適應您的需求,您可以修改它的使用者設定檔。
使用者設定檔通常為全域設定檔的同名隱藏檔案,放在您的$HOME目錄下,例如:
/etc/inputrc /home/user/.inputrc
/etc/vim/vimrc /home/user/.vim/vimrc
也有少數例外,通常是系統程式
/etc/bash.bashrc /home/user/.bashrc