星期四, 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/ 這個目錄下還有其它檔案可供設定,例如:不要自動更新的套件

星期一, 6月 07, 2010

一行指令將目錄中的檔名改為大寫

find .|sed -e p -e 'y/a-z/A-Z/'|xargs -n2 mv

星期五, 5月 14, 2010

升級Dataface到1.2.4

今天升級Dataface到1.2.4版,出乎意料的順利
解壓縮後將寫入權限設給 Dataface/templates_c/ 目錄
就一切正常,繁體中文的語系也不用自己新增,
看來使用Dataface的人也慢慢多了。

http://xataface.com/admin.php?-action=home

星期二, 3月 09, 2010

在Ubuntu karmic(9.10) 下安裝OCS Inventory NG 中文支援

OCS Inventory NG是一套開放原始碼的電腦資產管理軟體,試用後覺得有以下特色
  1. 免費.
  2. 跨平台支援MS Windows系列及Unix Like系統等作業系統.
  3. 使用代理程式搜集電腦資訊(不需AD網域).
  4. 內建軟體派送功能(需將代理程式安裝為服務模式).
  5. 可自訂標籤(財產號、使用者姓名等).
  6. 可自訂要搜集的Windows登錄檔資訊.
  7. 清單顯示可自訂欄位.
  8. 可將查尋到的資料設定為動態或靜態群組.
在Ubuntu karmic(9.10) 下安裝OCS Inventory NG 中文支援步驟
  1. sudo -s -H (進入root)
  2. aptitude install ocsinventory-reports ocsinventory-server (先安裝內建版本,遇到建立資料庫時先跳過)
  3. 到 ftp://linvinus.ru/ocs/ 下載支援utf-8的deb套件並安裝. (client 程式必須同時改用utf-8版本,否則無法更新資訊,apache errlog 會有 Couldn't open encmap utf8.enc 錯誤)
  4. 使用瀏覽器瀏覽 http://ocs.server.name/ocsreports/ 進行系統設定.
  5. Configuration/Config/Deployment/Downloay (預設為關閉,如要派送軟體需打開)
  6. 確認Configuration/Config/Interface 的 DOWNLOAD_PACK_DIR 和 IPDISCOVER_IPD_DIR 的路徑,可能分別多key了 download 和 ipd
  7. aptitude install ssl-cert (安裝憑證建立工具)
  8. make-ssl-cert generate-default-snakeoil --force-overwrite ( 建立憑證,為了安全性因素,系統限制軟體派送伺服器一定要使用ssl)
  9. cd /etc/apache2/mod-enabled
  10. ln -s ../mod-avaiable/perl.load .
  11. ln -s ../mod-avaiable/ssl.conf .
  12. ln -s ../mod-avaiable/ssl.load .
  13. cd /etc/apache2/sites-enabled
  14. ln -s ../sites-available/default-ssl .
  15. /etc/init.d/apache2 restart (重新啟動apache載入perl及ssl模組)
  16. 到 ftp://linvinus.ru/ocs/ 下載並安裝支援 utf-8 的 windows-agent (1.3版測試時,輸入伺服器網址時,一定要使用名稱不可用ip,否則無法更新資料)
  17. 複製伺服器上 /etc/ssl/certs/ssl-cert-snakeoil.pem 到 pc 的 agent 安裝目錄,並將檔案名稱改為 cacert.pem
  18. 在 pc 的 agent 安裝目錄執行 OCSInventory.exe /server:ocs.server.name /debug 進行測試