經過很多的試驗以及爬文,首先,要調整開機,舊式的sysv、inittab一類的調整已經不適用,因為Ubuntu已經把絕大多數開機時啟動的服務,改放進新興的upstart-事件導向的啟動機制,但是upstart的文件很.....所以後來我專注的重點放在ureadahead。
本來我以為ureadahead這東西是可有可無的盲腸存在,因為我先前的測試,本來用generic的kernel開機速度正常,開機速度如前述爆快,但是裝了特製的realtime kernel以後,開機多了一道可怕的訊息:
ureadahead main process (485) terminated with status 5
而且開機時間長到40多秒,本來一直以為是它的錯,一直想把他除之而後快(試過,開機速度沒有改善),後來才發現....原來是我錯怪它了...
其實當前的Ubuntu快速開機有兩大支柱,一個是upstart,另一個是ureadahead,正確「設定」好的ureadahead可以大幅減少開機的時間到將近原來的一半而已,只是之前的我不清楚ureadahead的作用。 orz
ureadahead的作用,有點像所謂的cache,就是把開機時要「固定」啟動的東西整理起來成一個pack,然後開機時直接讀那個pack,提高開機速度。
那要知道哪些東西需要加到pack裡,當然需要一個profile的手續,這手續會在裝好系統第一次開機、套件管理程式安裝變更系統開機過程的套件時(例如安裝新的daemon、kernel等),系統會自動幫你作profile(看套件管理程式的標準輸出會看到提示),然而ureadahead要能正確的profile,必須kernel有被patched過,Ubuntu官方維護的kernel有patched過,但是我加裝的ppa realtime kernel沒有,或者自己編的kernel沒有被patched,那用新的kernel開機就會profile失敗出現這個訊息。
ureadahead main process (485) terminated with status 5
所以真的不是ureadahead的錯XD
那怎麼辦呢?沒關係,重新開機後,在開機到grub的階段,按shift不放,使開機選單出來,然後選到隨便一個generic核心按e,編輯開機選項,在quiet splash的那一行,後面空一格加上profile,然後按ctrl+x開機,開機完,ureadahead還可以幫你記開到桌面完成以後,一分鐘內常執行的事情,所以趁機趕快開個終端機或者你常用的瀏覽器、編輯器等等,以後這些程式可以減少啟動時間(只要開必要的就好囉),好了以後,請再連續用同一個核心開機兩次,來「訓練ureadahead」,以後就可以用回你平常用的那個核心,那個核心就可以正常的快速開機了。
但是請記得,ureadahead對固定的開機程序才有用,所以自己常用的那個kernel跟Ubuntu官方維護的generic kernel開機的程序不可以有不同,例如說用generic kernel訓練時沒開splash畫面,然後自己平常用的kernel卻有開機splash畫面,那當然就會慢下來,此外,前述有沒有插SD卡/隨身碟也有差,所以也要針對自己平常的使用習慣作profile。
- 如果常態會插SD卡,那profile時就要插SD卡
- 偶而才插,那profile時也不要插
以下影片實際開機從第6秒按下按鈕開始(Thinkpad的硬體開機密碼機制)、第31秒聽到Moebuntu開機音效是Gnome開始啟動,第34秒gnome整個已經完全啟動完成可被操控,第38秒則是常用的無線網路登入完成。
註一:沒有ureadahead的加速幫助,Gnome啟動的過程,gnome-keyring的某常式會拖很久的時間(好像是連網找key又找不到的樣子),導致gnome panel很慢才出現,這段時間只有滑鼠游標,我們是動彈不得,被迫欣賞令人不悅的牛步化Gnome啟動過程,這也告訴我們,當開機出現不正常的"ureadahead main process (485) terminated with status 5"訊息,千萬不能無視,如果我們習慣把不正常的事情當成正常,就會喪失向上改良的機會。
我也是出現"ureadahead main process (XXX) terminated with status 5",
回覆刪除但是照你的方法完全沒用說= =
有爬過文,/var跟root是同一分割區,
下了:
"~$ sudo ureadahead --dump
ureadahead:/var/lib/ureadahead/pack: 沒有此一檔案或目錄"
還有試過重新pack:
"sudo ureadahead --force"
結果:
"Counted 4 CPUs
ureadahead: Error while tracing: 沒有此一檔案或目錄"
kernel為自編的2.6.35.1...
請問一下該如何解決?
感激不盡.
pack不是一個目錄,/var/lib/ureadahead 底下會有好幾個pack,例如說我的有:boot.pack home.pack media.0000-09XX.pack pack等等。然後重新profile請用Ubuntu官方的generic的來做,因為我們自編的kernel沒有patch過,就沒有辦法正確profile。請用generic的kernel profile過一次,然後再兩次用該核心開記,以後就可以改用自己編的核心享用ureadahead profile好的成果了。
回覆刪除您好!
回覆刪除是否可以分享一下,如何讓x201i的無線網路在ubuntu下運作呢,謝謝~~
hi,我的是X201i A22,沒有遇到無線網路問題,安裝光碟直接可以跑。
回覆刪除但我曾經在賣場試到無線網路有問題的X201i,可能是driver問題,建議查出你x201i的無線晶片是什麼?然後google看看solution或者上launchpad去找看看別人怎麼解決。
您好..
回覆刪除我在您的建議下,有找到解決方式了,現在也可以用無線來上網了!
不過,我想請教另一個問題
我在連上無線AP後,無線網卡的燈會一直閃爍,您的x201也是會這樣嗎?
有傳資料的時候會閃爍。沒傳資料的時候不會。
回覆刪除