Linux 4.0 引入 更新 Kernel 不需重開機的功能

Linux 更新 Kernel 最麻煩的地方就是需要重新開機,但是 Server 要重新開機是一件很複雜的事情,平常在跑的服務不能停,想重新開機都得要另外安排時間,所以就會需要找備援機器來替代,達到 0 downtime。

Linux 4.0 以後,這個問題應該就可以盡量避免了,之後更新 Kernel 就不需要重新開機囉~ (更換硬體應該還是會需要重開機)

註:不過如果機器沒事的話,偶爾還是可以重開機看看,避免難得重開確開不了機的糗狀。 XD

閱讀全文〈Linux 4.0 引入 更新 Kernel 不需重開機的功能〉

Ubuntu 12.04 遇到 procps 造成 udev、mountall 相依性衝突解法

Ubuntu Linux 12.04 最近升級時,遇到幾台有下述訊息:

Setting up procps (1:3.2.8-11ubuntu6.4) ...
start: Job failed to start
invoke-rc.d: initscript procps, action "start" failed.
dpkg: error processing procps (--configure):
subprocess installed post-installation script returned error exit status 1
dpkg: dependency problems prevent configuration of udev:
 udev depends on procps; however:
  Package procps is not configured yet.
dpkg: error processing udev (--configure):
 dependency problems - leaving unconfigured
dpkg: dependency problems prevent configuration of mountall:
 mountall depends on udev; however:
  Package udev is not configured yet.
dpkg: error processing mountall (--configure):
 dependency problems - leaving unconfigured
No apport report written because the error message indicates its a followup error from a previous failure.
No apport report written because the error message indicates its a followup error from a previous failure.
Errors were encountered while processing:
  procps
  udev
  mountall
E: Sub-process /usr/bin/dpkg returned an error code (1)

遇到這個還好,想說新版套件應該就會修復此問題,但是剛好遇到 Linode 全部機器都要重開,就炸了。

出現這個問題的機器,重開自然開不了機,簡單的直接進入修復模式後,資料備份出來,直接重灌成 Debian 解決;麻煩的就參照這篇試試看,看能不能解決囉~

  • 註1:在 Linode 若要進入修復模式,可見此篇:Rescue and Rebuild - Linode Guides & Tutorials
  • 註2:在 Rescue 模式預設網路是通的,但是 DNS 不通,請自行到 /etc/resole.conf 增加 nameserver 8.8.8.8 之類的.

閱讀全文〈Ubuntu 12.04 遇到 procps 造成 udev、mountall 相依性衝突解法〉

Linux 於 ReiserFS 如何將 資料還原(undelete)

不小心砍掉一個檔案, 然後用 extundelete 想要將檔案救回來, 結果一直出現下述錯誤:

extundelete: Bad magic number in super-block when trying to open filesystem /dev/sdb1

一直找不出原因, 後來才發現到, 原來我這顆硬碟用的不是 ext4, 而是 reiserfs~ XD

於是來紀錄如何於 ReiserFS 作資料還原(undelete)的動作.

閱讀全文〈Linux 於 ReiserFS 如何將 資料還原(undelete)〉

icdiff - 於 Linux、Mac 單行 + 逐字比對 的工具程式

平常於 Linux 使用 diff,我都已經直接 alias 到 colordiff (colordiff - tool to colorize 'diff' output)。

  • 註1: /usr/bin/diff -u 的參數,在 colordiff 都是通用的,所以我是於 .bashrc 做下述設定:
    alias diff='colordiff -u'
  • 註2: 於此篇(把 icdiff 包成 PPA) DK 寫到都使用 diff -urN 參數,於是就將上述 alias 改成下述:
    alias diff='colordiff -urN'

平常除了 diff 外,程式要合併時,我大多都會直接使用 vimdiff 來處理(於 git diff 合併我也用 vimdiff),vimdiff 已經把 icdiff 的事情都做好了,這邊簡述一下:

  • vimdiff 於不同部分標註:每行不同的顏色區分,每個字不同的顏色區分。
  • 相同部分自動摺疊起來,不需要再去觀看。

既然 vimdiff 都做到了,為何還要使用 icdiff? 主要是檔案大小,使用時機不同。(想想 vim 開啟一個大檔案加上 highlight 會花多久時間?)

閱讀全文〈icdiff - 於 Linux、Mac 單行 + 逐字比對 的工具程式〉