❶ linux ubuntu 安裝新內核後,重啟進入(initramfs)
1.fdisk -l查看磁碟信息
2.fsck -y 根掛載點
3.執行修復後,reboot
4.成功就可以啟動,不成就還需要找原因
5.請採納,謝謝
❷ 燒寫linux內核後不斷重啟
首先,直接燒zImage是不對的,要用mkimage工具轉成uImage,燒這個uboot才認識
其次,uboot參數可能要修改,照你現在的日誌看是燒寫0x00300000,要改成你現在需要的大小
❸ Linux內核升級後重啟黑屏
你這沒我那個黑,我的屏幕全黑,左上角有一個白色的線,之後就一直沒反應。ctrl+alt+f1也不管用
❹ linux內核線程死鎖或死循環之後如何讓系統宕機重啟
在開發內核模塊或驅動時,如果處理失誤,導致內核線程中出現死鎖或者死循環,你會發現,除了重啟之外,你沒有任何可以做的。這時你的輸入不起任何作用,終端(不是指遠程的ssh工具)只會在那重復的輸出類似「BUG: soft lockup - CPU#0 stuck for 67s! [fclustertool:2043]」,更無奈的是你重啟之後導致系統掛起的堆棧信息也看不到,你所能做的就是一遍遍的加調試信息,一遍遍的重啟機器(這是我的經歷,現在想想很傻)。 這種情況你肯定不是第一個遇到的,所以內核肯定會提供處理這種情況的一些機制。但是如何來找到這些機制在哪個地方,或者說根據什麼信息去google呢?最有用的就是這句話「BUG: soft lockup - CPU#0 stuck for 67s! [fclustertool:2043]」,因為這句話提供你的信息量很大。首先,這條信息可以輸出,說明即使發生死鎖或者死循環,還是有代碼可以執行。第二,可以通過這個日誌信息,找到對應的處理函數,這個函數所在的模塊就是用來處理CPU被過度使用時用到的。所以通過這個事情,可以看到內核列印出的只言片語都有可能成為你解決問題的關鍵,一定要從重視這些信息,從中找出有用的東西。 我經常看的內核版本是官方的2.6.32內核,這個版本中我找到的函數是softlockup_tick(),這個函數在時鍾中斷的處理函數run_local_timers()中調用。這個函數會首先檢查watchdog線程是否被掛起,如果不是watchdog線程,會檢查當前佔有CPU的線程佔有的時間是否超過系統配置的閾值,即softlockup_thresh。如果當前佔有CPU的時間過長,則會在系統日誌中輸出我們上面看到的那條日誌。接下來才是最關鍵的,就是輸出模塊信息、寄存器信息和堆棧信息,檢查softlockup_panic的值是否為1。如果softlockup_panic為1,則調用panic()讓內核掛起,輸出OOPS信息。代碼如下所示:/** This callback runs from the timer interrupt, and checks * whether the watchdog thread has hung or not:*/void softlockup_tick(void){int this_cpu = smp_processor_id(); unsigned long touch_timestamp = per_cpu(touch_timestamp, this_cpu); unsigned long print_timestamp; struct pt_regs *regs = get_irq_regs(); unsigned long now; /* Warn about unreasonable delays: */ if (now <= (touch_timestamp + softlockup_thresh))return; per_cpu(print_timestamp, this_cpu) = touch_timestamp; spin_lock(&print_lock); printk(KERN_ERR BUG: soft lockup - CPU#%d stuck for %lus! [%s:%d]\n, this_cpu, now - touch_timestamp, current-comm, task_pid_nr(current)); print_moles(); print_irqtrace_events(current);if (regs)show_regs(regs);elsemp_stack(); spin_unlock(&print_lock); if (softlockup_panic) panic(softlockup: hung tasks);} 但是softlockup_panic的值默認竟然是0,所以在出現死鎖或者死循環的時候,會一直只輸出日誌信息,而不會宕機,這個真是好坑啊!所以你得手動修改/proc/sys/kernel/softlockup_panic的值,讓內核可以在死鎖或者死循環的時候可以宕機。如果你的機器中安裝了kmp,在重啟之後,你會得到一份內核的core文件,這時從core文件中查找問題就方便很多了,而且再也不用手動重啟機器了。如果你的內核是標准內核的話,可以通過修改/proc/sys/kernel/softlockup_thresh來修改超時的閾值,如果是CentOS內核的話,對應的文件是/proc/sys/kernel/watchdog_thresh。CentOS內核和標准內核還有一個地方不一樣,就是處理CPU佔用時間過長的函數,CentOS下是watchdog_timer_fn()函數。 這里介紹下lockup的概念。lockup分為soft lockup和hard lockup。 soft lockup是指內核中有BUG導致在內核模式下一直循環的時間超過10s(根據實現和配置有所不同),而其他進程得不到運行的機會。hard softlockup是指內核已經掛起,可以通過watchdog這樣的機制來獲取詳細信息。這兩個概念比較類似。如果你想了解更多關於lockup的信息,可以參考這篇文檔: 注意上面說的這些,都是在內核線程中有效,對用戶態的死循環沒用。如果要監視用戶態的死循環,或者內存不足等資源的情況,強烈推薦軟體層面的watchdog。具體的操作可以參考下面的文章,都寫的非常好,非常實用:
❺ Linux的重啟命令有哪些
Linux的五個關機重啟命令
1、shutdown
2、poweroff
3、init
4、reboot
5、halt
在linux下一些常用的關機/重啟命令有shutdown、halt、reboot、及init,它們都可以達到重啟系統的目的,但每個命令的內部工作過程是不同的。
(5)linux內核重啟擴展閱讀
1、cat命令
cat命令可以用來合並文件,也可以用來在屏幕上顯示整個文件的內容。
catsnow.txt該命令顯示文件snow.txt的內容,ctrl+D退出cat。
2、grep命令
grep命令的最大功能是在一堆文件中查找一個特定的字元串。
grepmoneytest.txt
以上命令在test.txt中查找money這個字元串,grep查找是區分大小寫的。
❻ Linux裡面級別6重啟和reboot重啟區別是什麼
區別如下:
reboot 使用 shutdown 命令(使用 -r 開關)。 shutdown 命令用於殺死所有正在運行的進程,卸載所有文件系統,最後告訴內核發出 ACPI power 命令。 來源可以在這里找到。 在較舊的發行版中,reboot 命令通過發出 SIGKILL 信號(仍然可以在源代碼中找到,可以使用 -f 選項調用)來強制進程退出,在最近的發行版中,它默認為更優雅和對 init 友好的 init 1 -> shutdown -r。 這可確保守護進程在關閉前自行清理。
init 6 告訴 init 進程關閉 init 文件中寫入的所有生成的進程/守護進程(以它們啟動的相反順序),最後調用 shutdown -r now 命令重新啟動機器
❼ linux重啟的命令
一、Linux 的五個重啟命令
1、shutdown
2、poweroff
3、init
4、reboot
5、halt
二、五個重啟命令的具體說明
shutdown
reboot
在linux下一些常用的關機/重啟命令有shutdown、halt、reboot、及init,它們都可以達到重啟系統的目的,但每個命令的內部工作過程是不同的,通過本文的介紹,希望你可以更加靈活的運用各種關機命令。
1.shutdown
shutdown命令安全地將系統關機。 有些用戶會使用直接斷掉電源的方式來關閉linux,這是十分危險的。因為linux與windows不同,其後台運行著許多進程,所以強制關機可能會導致進程的數據丟失﹐使系統處於不穩定的狀態﹐甚至在有的系統中會損壞硬體設備。而在系統關機前使用shutdown命令﹐系統管理員會通知所有登錄的用戶系統將要關閉。並且login指令會被凍結﹐即新的用戶不能再登錄。直接關機或者延遲一定的時間才關機都是可能的﹐還可能重啟。這是由所有進程〔process〕都會收到系統所送達的信號〔signal〕
決定的。這讓像vi之類的程序有時間儲存目前正在編輯的文檔﹐而像處理郵件〔mail〕和新聞〔news〕的程序則可以正常地離開等等。
shutdown執行它的工作是送信號〔signal〕給init程序﹐要求它改變runlevel。
Runlevel 0被用來停機〔halt〕﹐runlevel 6是用來重新激活〔reboot〕系統﹐而runlevel 1則是被用來讓系統進入管理工作可以進行的狀態﹔這是預設的﹐假定沒有-h也沒有-r參數給shutdown。要想了解在停機〔halt〕或者重新開機〔reboot〕過程中做了哪些動作﹐你可以在這個文件/etc/inittab里看到這些runlevels相關的資料。
shutdown 參數說明:
[-t] 在改變到其它runlevel之前﹐告訴init多久以後關機。
[-r] 重啟計算器。
[-k] 並不真正關機﹐只是送警告信號給
每位登錄者〔login〕。
[-h] 關機後關閉電源〔halt〕。
[-n] 不用init﹐而是自己來關機。不鼓勵使用這個選項﹐而且該選項所產生的後果往往不總是你所預期得到的。
[-c] cancel current process取消目前正在執行的關機程序。所以這個選項當然沒有時間參數﹐但是可以輸入一個用來解釋的訊息﹐而這信息將會送到每位使用者。
[-f] 在重啟計算器〔reboot〕時忽略fsck。
[-F] 在重啟計算器〔reboot〕時強迫fsck。
[-time] 設定關機〔shutdown〕前的時間。
2.halt----最簡單的關機命令
其實halt就是調用shutdown -h。halt執行時﹐殺死應用進程﹐執行sync系統調用﹐文件系統寫操作完成後就會停止內核。
參數說明:
[-n] 防止sync系統調用﹐它用在用fsck修補根分區之後﹐以阻止內核用老版本的超級塊〔superblock〕覆蓋修補過的超級塊。
[-w] 並不是真正的重啟或關機﹐只是寫
wtmp〔/var/log/wtmp〕紀錄。
[-d] 不寫wtmp紀錄〔已包含在選項[-n]中〕。
[-f] 沒有調用shutdown而強制關機或重啟。
[-i] 關機〔或重啟〕前﹐關掉所有的網路介面。
[-p] 該選項為預設選項。就是關機時調用poweroff。
3.reboot
reboot的工作過程差不多跟halt一樣﹐不過它是引發主機重啟﹐而halt是關機。它 的參數與halt相差不多。
4.init
init是所有進程的祖先﹐它的進程號始終為1﹐所以發送TERM信號給init會終止所有的 用戶進程﹑守護進程等。shutdown 就是使用這種機制。init定義了8個運行級別(runlevel), init 0為關機﹐init 1為重啟。關於init可以長篇大論﹐這里就不再敘述。另外還有telinit命令可以改變init的運行級別﹐比如﹐telinit -iS可使系統進入單用戶模式﹐ 並且得不到使用shutdown時的信息和等待時間。
❽ linux鍐呮牳緙栬瘧瀹屾垚鍚庨噸鍚錛屽嚭鐜癿dio-gpio is already registered,鎬庝箞鍔烇紵
鍥劇墖濂藉皬...
涓嶈繃渚濈█鐪嬪埌浜嗘槸鍔犺澆涓涓鍐呮牳妯″潡錛坉m-region-hash錛夐敊璇錛岃繖涓妯″潡搴旇ユ槸鍜屾枃浠剁郴緇熺浉鍏崇殑錛岀劧鍚庡悗闈mount 鏂囦歡緋葷粺鐨勬椂鍊欏氨鎵句笉鍒扮佺洏...
浣犳洿鏂頒簡鐨勫唴鏍稿嚭浜嗛棶棰...鍔犺澆妯″潡鐨勬椂鍊欐樉紺鴻繖涓妯″潡宸茬粡瀛樺湪錛屾墍浠ュ氨娌℃硶insmod榪欎釜妯″潡錛屾搷浣滀笉鎴愬姛浜嗐傚ぇ姒傛槸閲嶅嶅姞杞戒簡...
鐒跺悗緇欎綘鎼滅儲浜嗕笅錛岃繖涓闂棰樺ソ鍍忔瘮杈冨父瑙侊紝榪欓噷闈㈡湁浜虹粰鍑轟簡瑙e喅鏂規堬細
鍦板潃錛
鎶婃湁鐢ㄧ殑緇欎綘璐村嚭鏉ュ惂...
insmod: error inserting '/lib/dm-region-hash.ko' : -1 File exists
榪欎竴鍙ユ槸璇翠綘鎶奷m-region-hash緙栬瘧榪涘唴鏍革紝鍗存病鏈夌敓鎴恉m-region-hash.ko鏂囦歡錛屽彲鑳芥槸鏈変簺闇瑕佺殑欏規病閫変笂錛屾垜涔熸槸閬囧埌榪欑嶉棶棰橈紝涓鐩存病瑙e喅 [/quote]
鏄鍥犱負閲嶅嶅姞杞戒簡/lib/dm-region-hash.ko
鍙浠ヨВ鍐崇殑錛屾ラゅ備笅
1錛岃В鍘媔nitrd鏂囦歡
[root@bogon ~]# cp /boot/initrd-2.6.30.4.img /tmp
[root@bogon ~]# cd /tmp/
[root@bogon tmp]# ls
initrd-2.6.30.4.img
[root@bogon tmp]# mkdir newinitrd
[root@bogon tmp]# cd newinitrd/
[root@bogon newinitrd]# zcat ../initrd-2.6.30.4.img |cpio -i
11537 blocks
閲婃斁涔嬪悗鐪嬪埌濡備笅鍐呭
[root@bogon newinitrd]# ls
bin dev etc init lib proc sbin sys sysroot
2錛宱k,涓嬭竟灝辨槸緙栬緫init錛屽垹鎺夊叾涓閲嶅嶇殑鍥涜屼腑鐨勪袱琛
echo "Loading dm-region-hash.ko mole"
insmod /lib/dm-region-hash.ko
echo "Loading dm-region-hash.ko mole"
insmod /lib/dm-region-hash.ko
3錛岄噸鏂版墦鍖卛nitrd
[root@bogon newinitrd]# find .|cpio -c -o > ../initrd
11538 blocks
[root@bogon newinitrd]# cd ..
[root@bogon tmp]# gzip -9 < initrd > initrd.img
[root@bogon tmp]# ls
initrd-2.6.30.4.img initrd initrd.img newinitrd
濂戒簡錛宨nitrd.img灝辨槸閲嶆柊鎵撳寘鐨剗nitrd浜嗭紝鐒跺悗鎶奿nitrd.img鎷瘋礉鍒/boot錛屾洿鏀筭rub.conf閲岃竟鐨剗nitrd-2.6.30.4.img涓篿nitrd.img灝卞彲浠ヤ簡錛
榪欐牱鈥渋nsmod: error inserting '/lib/dm-region-hash.ko' : -1 File exists鈥 灝變笉浼氭湁浜
鍏跺疄灝唅nit鏂囦歡鐨勭浜岃屸渟etquiet鈥 鍘繪帀錛屼綘灝辯煡閬搃nitrd鏂囦歡鍒板簳鍦ㄥ仛浠涔堜簡