參考這兩篇文章解決了問題:
Ubuntu啟動時停止的問題(http://www.linuxidc.com/Linux/2011-06/37950.htm)
PowerEdge T410安裝ubuntu14.04/14.10錯誤一則(http://blog.cnrainbird.com/index.php/2015/01/08/poweredge_t410_an_zhuang_ubuntu14_04_14_10_cuo_wu_yi_ze/)
現象
當時用的操作系統是ubuntu14, 在一台dell服務器上出現了問題。
在啟動系統啟動界面,出現如下信息,並停止啟動。(注意,這是在安裝好系統后,系統的啟動過程出現的問題,而非安裝過程。)
Gave up waiting for root device. Common problems: – Boot args (cat /proc/cdmline) – Check rootdelay= (did the system wait long enough?) – Check root= (did the system wait for the right device?) – Missing modules (cat /proc/modules; ls /dev) ALERT! /dev/disk.by-uuid/9d77fcd2-5fc1-419d-939c-af16be94fd34 does not exist. Dropping to a shell! BusyBox v1.21.1 (Ubuntu 1:1.21.0-1ubuntu1) built-in (ash) Enter ‘help’ for a list of builtin commands. (initramfs)
原因
按參考的文章:grub引導參數中rootdelay設置的時間太短,導致系統還沒有正常加載完設備驅動就已經開始尋找root分區,而導致找不到/root分區。
解決
當系統啟動停止在這個界面時,輸入“exit”並回車,系統將繼續引導,能夠成功進入系統。對於ubuntu系統,可以按如下方法修復。
1. 編輯/etc/default/grub文件 在GRUB_CMDLINE_LINUX這個配置項中加上rootdelay=90 例:GRUB_CMDLINE_LINUX=”rootdelay=90″ 說明:90表示延時的時間,可根據自己的實際情況改,比如我自己的服務器我將90改成60也可以,說不定再改短一點也行,只是沒去嘗試。 2.執行命令:update-grub 用來更新引導菜單 到此已完全解決,下次啟動就不會出現這個問題了。
上面的修復方法實質上就是修改grub的引導參數,對於其他linux發行版本,想辦法修改grub對應的引導參數就可以了。
舉個例子:grub引導菜單某一菜單項有一條如下命令
linux /boot/vmlinuz-4.4.0-31-generic root=UUID=8cfd2963-4616-4c18-bb1f-c6f6e8eaa9ed ro hugepagesz=2M hugepages=1024 net.ifnames=0 biosdevname=0
只需要在此項后面加上rootdelay=xx就可以了,xx是自己設定的延遲時間。(注意rootdelay參數與前面的參數間有空格)
linux /boot/vmlinuz-4.4.0-31-generic root=UUID=8cfd2963-4616-4c18-bb1f-c6f6e8eaa9ed ro hugepagesz=2M hugepages=1024 net.ifnames=0 biosdevname=0 rootdelay=90