星期四, 8月 26, 2010

Windows作業系統不斷重開機,無法看到藍底白字的訊息

有些Windows系統設定為,出問題時自動重開機,這樣系統有問題時就看不到經典的藍底白字畫面,只是不斷重開機無法看到錯誤訊息增加修復的困難。
要修改的registry位於 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CrashControl
AutoReboot 的 DWORD值設為0,就不會在系統CRASH時自動重開機。

我常用的離線修改registry方式有兩種

一使用Winpe XPE等Windows環境開機光碟
開機後與一般WINDOWS一樣執行regedit,程式啟動後在
HKEY_LOCAL_MACHINE 上按滑鼠右鍵選 載入HIVE 控制檔,選擇 Windows\System32\Config\system,掛載名稱自行設定。
掛載好以後就可以從掛載名稱向下找到相關鍵值做修改。( ControlSet001 002 003 等最好一起修改 )

二使用GNU/Linux救援光碟

執行#ntpasswd -w
Select: [1] ------->選擇WINDOWS所在PARTION
[WINDOWS/system32/config] :
------->選擇WINDOWS所在目錄
[1] : --------------------> Password reset [sam system security]
What to do? [1] -> 9 ------------------->選9 Registry editor
>hive 1 ------------------>切換到 SYSTEM 這個HIVE
>cd ControlSet001\Control\CrashControl -------->切換到相關目錄,因為區分大小寫,可搭配 ls 一層一層切換
>ed AutoReboot ------------------> 修改 AutoReboot
->0x0 -----------------> DWORD值為 0x0
>q ---------------->離開
What to do ? [1] -> q
---------------->離開
About to write file(s) back! Do it? [n/y] : y -------------->儲存修改後的資料
Run it again? [n/y] : n ---------------------------->不重新執行
如果有 ControlSet002 等請一併修改

常見用GNU/Linux救援光碟有 ripSystemRescueCD

星期五, 8月 20, 2010

Ubuntu Enterprise Cloude 重新下載 STORE 中的影像檔

#sqlite3 /var/lib/image-store-proxy/database
sqlite>select * from image_registration;
sqlite>delete from image_registration where uri="..............";
sqlite>.quit

星期五, 8月 06, 2010

我的UBUNTU意外毀損救援紀實

以前就知道經常使用的tar指令在操作的時候會自動將目錄開頭的斜線( / )拿掉,雖然知道這個功能的用意是避免解壓縮時蓋掉重要的系統檔,但是從來不覺得這個功能很重要。

直到上週用cpio解一個initrd.img,解開後發現ls指令不能用,重開機開不起來大略看了一下開機錯誤訊息,意識到這已經不是我原來的系統了。

這時候我已經知道是解那個initrd.img時蓋掉了原來的系統,可是我非常確定我是建了一個子目錄在目錄中解壓縮的,這時想起tar的貼心其實也多少造成了管理者的大意,總而言之就是cpio沒有這個貼心的功能。
後悔已經來不及了,只好拿出救援光碟開機。

第一步:
cat initrd.img|cpio -t 先看看這個檔大致有那些內容
評估受影響的有 /lib /usr/lib /bin /sbin /etc
可能不受影響的有 /dev /proc /tmp /sys

第二步:
從備份的/etc目錄複蓋回來

第三步:
從其它電腦複製 /lib /usr/lib /bin /sbin

第四步:
重開機,還是有一些類似的錯誤訊息無法啟動,可能/etc內還是有屬於外來的啟動程式

第五步:
完整刪除/etc,重新還原/etc,重新開機可進入單人模式,部份指令不能執行

第六步:
find /lib|xargs dpkg -S|grep "not found" 找出不屬於任何套件的檔案後,人工判斷後手動刪除
find /usr/lib|xargs dpkg -S|grep "not found" 同樣對/usr/lib/做一次

第七步:
重開機,單人模式正常,無法登入圖形界面,錯誤訊息
/usr/lib/libgconf2-4/gconf-sanity-check-2 和這個檔案有關
網路搜尋和家目錄的權限有關,檢查後沒發現問題

第八步:
處理到這段遇到瓶頸,做了很多事都完全沒有效果,其中包含
dpkg-reconfigure --all 重設所有套件
for pkg in packagelist; do aptitude reinstall $pkg; done; 重新安裝所有已安裝的套件
packagelist是我已安裝的套件列表,我用的simple backaup軟體會自動產生
這個動作花了八小時才完成,可是同樣一點用也沒有

第九步:
重新檢查一次initrd.img,終於有驚人的發現 "它的/tmp目錄權限是774",
比較自已系統的/tmp目錄,果然也被改掉了,原來以為不會被響影的目錄,其實也是最容易修復的目錄,
因為思慮不週竟然花了最多的時間。

第十步:
將/tmp目錄重設為777,重開機,系統完全回復正常。

檢討:
一、目前的備份是否足夠(/etc /home /var中有用到的目錄)﹖應該夠,至少能將系統還原至可用狀態,全備份實在太花時間和空間。
二、操作cpio和其它解縮軟體時一定要小心,一定要用t選項先列出壓縮檔中的目錄。
三、tmp目錄造成X Windows不能登入,以前好像遇過也是花了很多時間才找到,竟然又發生一次。
四、目前用的系統從6.04一直升上來的到現在已經超過4年了,這次發生的意外是目前遇到影響範圍最大的一次意外,雖然沒有重灌但是有的目錄機乎已經是重建一樣,雖然用起來和原來的系統一樣,可是心裡有一點疑惑 "究竟這還是不是原來的系統"

星期四, 8月 05, 2010

變更UBUNTU自動更新設定

安裝UBUNTU時有三種自動更新的選項
  • 不自動更新 (No automatic updates)
  • 自動安裝安全更新 (Install security updates automatically)
  • 使用 Landscape 管理系統 (Manage system with Landscape)
裝好之後如果沒有安裝圖形界面又想修改自動更新的選項,可以修改 /etc/apt/apt.conf.d/10periodic 這個檔案

自動更新的預設值
APT::Periodic::Enable "1";
APT::Periodic::Update-Package-Lists "1";
APT::Periodic::Download-Upgradeable-Packages "1";
APT::Periodic::AutocleanInterval "5";
APT::Periodic::Unattended-Upgrade "1";
不自動更新的預設值
APT::Periodic::Update-Package-Lists "1";
APT::Periodic::Download-Upgradeable-Packages "1";
APT::Periodic::AutocleanInterval "1";

/etc/apt/apt.conf.d/ 這個目錄下還有其它檔案可供設定,例如:不要自動更新的套件