2017年4月5日 星期三

slmgr -ipk更改KMS授權序號,再透過縣網啟動認證

今日校內某台電腦再升級為Win7,並執行啟動啟動認證時,出現

錯誤訊息碼:0x8007007B,
錯誤描述:檔案名稱、目錄名稱或磁碟機標籤語法錯誤

錯誤訊息的描述與解決,請參考Mircosoft說明

但不巧的是,主機上的授權標籤竟然被撕掉一半,看不清楚原先的授權碼。
也就是說已經無法使用隨機授權的序號,
那就改採縣網KMS授權的方式進行認證了。

先參考微軟的網頁,得知不同的OS版本在KMS上需要什麼KEY
https://technet.microsoft.com/en-us/library/ff793421.aspx
譬如:
我安裝的是Windows 7 Enterprise版
KMS授權序號:33PXH-7Y6KF-2VJC9-XBBR8-HVTHH

1.先執行
services.msc啟動服務

2.再將
Software Protection服務停止

3.利用系統管理者身分開啟命令提示字元


4.輸入slmgr -ipk 33PXH-7Y6KF-2VJC9-XBBR8-HVTHH

5.再次輸入slmgr /rilc,等到出現授權碼更新後的訊息後,再重新啟動電腦

6.利用縣網的KMS認證啟動程式,啟動作業系統。


附註:
slmgr也就是Windows 軟體授權管理工具(Windows Software Licensing Management Tool),是一支管理Vista及Windows 7啟動的VBScript工具程式。


參考網頁:

2017年3月7日 星期二

Ubuntu顯示記憶體使用量指令

free指令顯示記憶體使用量

free -b 以Byte為單位


free -k 以KB為單位


free -m 以MB為單位


free -h 以Human 較容易看的懂方式顯示


參考網頁:

2017年2月15日 星期三

Samba就是捨不得我離開 Oplock break failed

電腦教室是無碟的環境,所以學生在存檔繳交作業時,我都會另外叫他們存在Samba主機,但是這個學期卻出現了一個奇怪的現象,那就是學生把檔案存到Samba後,儘管學生機都關機了,Samba內的檔案卻無法正常剪下或刪除。出現的錯誤訊息,指向有程式正開啟這些檔案,導致他們無法正常被刪除,而出現問題的學生機,又很隨機,很難對點查詢。

而這樣的狀況要隔一段時間(通常都到下一節課),就自動緩解。感覺起來,這些被綁住的檔案,隔一段時間後自動被釋放了。

而這過程中,其實只要手動將Samba服務停止後再重啟,就可以解決,但是這實在不是解決的辦法,總不可能每次要存取Samba檔案,都要再連到Samba主機下指令吧!!只好痛下決心,努力找尋答案。最初,歷經過重新設定Samba,也重新安裝過Ubuntu系統主機,病症仍未獲緩解,之後只好伸入判讀samba的log紀錄。

Samba的log紀錄被存放在/etc/log/samba/log.電腦名稱中,錯誤訊息內容類似

[2017/02/14 11:15:25.941469,  0] ../source3/smbd/oplock.c:335(oplock_timeout_handler)
  Oplock break failed for file 50109劉晧辰.svg -- replying anyway


"Oplock break failed" 指的是檔案被打開中且被某人隨機使用使用中,並且系統主機無法強制這個用戶端釋放Oplock寫回快取。
假如檔案真的被開啟了,這樣的錯誤訊息就會發生,但假如檔案確實關閉甚至電腦都關機了,卻仍出現這樣的錯誤訊息,那就可能是Samba主機某程式拒絕發出斷開(break)的訊息,或是等候不到用戶關的回覆(Replay)訊息。然後就傻傻的等待著,等等等......等到session被丟棄時,才認為對方已經完成工作沒回應,這應該算是Samba的小bug。而這樣的情形也可以解釋著為何總是要到下一堂課,原本無法刪除的檔案,都可以刪除了。


解決辦法,在/etc/samba/smb.conf中
[sharefolder]

oplocks = no    //不要鎖定oplocks

就可以解決了

事後又看到有人如下這麼寫,一併補上
locking = no
strict locking = no


設定範例:
[SAMBA]
   comment = samba共用資料
   path = /tmp/samba
   public = yes
   guest ok = yes
   writable = yes
   browseable = yes
   only guest = yes
   oplocks = no
   locking = no
   strict locking = no



ps.上面的設定式安全性最低的設定方法,沒有經過帳號認証,其實是不太建議喔!!


參考網頁:





2016年11月19日 星期六

偷偷拷貝夥伴的COMPOSER_HOME目錄

和夥伴在同一台主機下共同練習Laravel
每個人都自己的家目錄
而每個人也需要各在自己的家目錄下
composer global require "laravel/installer"
指令
主要目的是要把laravel的安裝程式下載回來到COMPOSER_HOME
(關於COMPSER_HOME是~/.composer還是~/.config/composer請看這一篇)

但是composer global的執行實在太慢了
偷懶一點的作法是

一、利用root的權限,把別人的COPY回來就好了
##舉例有test1與test2兩個使用者
mkdir ~/.composer
sudo cp -R /home/test1/.composer/* /home/test2/.composer/
sudo chown -R test.test /home/test2/.composer


二、設定laravel指令及XDG環境變數
sudo vi ~/.profile

在最後一行寫入
PATH="$PATH:$HOME/.composer/vendor/bin"
export XDG_CONFIG_HOME="$HOME"


三、重新開機並執行laravel安裝
重新開機後,切換到自己的網頁目錄
輸入

laravel new blog

四、修改bootstrap/cache及storage
sudo chown -R www-data.www-data bootstrap/cache/
sudo chown -R www-data.www-data storage/


[Ubuntu16.04]安裝Laravel,COMPOSER_HOME竟多出了.config資料夾



如上圖
安裝Laravel的官方文件中提到:
執行
composer global require "laravel/installer"
安裝程式後,可以在~/.composer/vendor/bin目錄下找到laravel指令,但是今天卻發現此次設定的主機的路徑竟是~/.config/composer/vendor/bin,多出了一個.config的資料夾

仔細查閱相關資料後才發現,原來
假如電腦主機若是採用 freedesktop.org standards標準的作業系統,他會先偵測環境變數中XDG_CONFIG_HOME是否有設定,若沒有設定的話,就會自動幫你加上.config

If your system uses freedesktop.org standards, which it detects by looking for environment variables beginning with XDG_, then Composer uses $XDG_CONFIG_HOME/composer/, falling back to $HOME/.config/composer/ if that isn't set.


若要解決這個困擾(至少操作時跟路徑跟官方文件一致比較不會出錯),可從兩個方向著眼:
1.更改全域的設定,主機內全部使用者受惠
sudo vi /etc/profile

2.更改個別使用者
vi ~/.profile

同樣都是在檔案的最後一行加上
export XDG_CONFIG_HOME="$HOME"

這樣一來,當電腦重新啟動後,XDG_CONFIG_HOME環境變數就會先執行了,但假如你先前已經安裝過Composer的話,可能就需要再重新裝一次囉


註:其他XDG環境變數請參閱Environment variables

參考文件:




2016年11月8日 星期二

MySQL中的offset

offset的英文意思為抵消,當用在MySQL時的意思就好比忽略前幾筆資料,常跟limit搭配使用,使用時機通常是換頁時。

例如:select * from country limit 5 offset 5
意思就是:忽略前5比資料,列出country資料表中的第6~10筆資料。

2016年11月1日 星期二

ssh連線時,發生遠端主機認証資料已經改變的錯誤訊息

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that a host key has just been changed.
The fingerprint for the ECDSA key sent by the remote host is
SHA256:sTZh1ToLgA3719MjTD+Hnvbfb2HXXKtOk7uvp3Us23s.
Please contact your system administrator.
Add correct host key in /home/chunkai/.ssh/known_hosts to get rid of this message.
Offending ECDSA key in /home/chunkai/.ssh/known_hosts:3
  remove with:
  ssh-keygen -f "/home/chunkai/.ssh/known_hosts" -R 192.168.30.9
ECDSA host key for 192.168.30.9 has changed and you have requested strict checking.
Host key verification failed.


上面是最近常出現的訊息,這是因為進行ssh連線時,本機端會將伺服器端的金鑰與IP對應紀錄,寫入到
/home/使用者/.ssh/know_hosts

但是因為我裝了許多台虛擬主機,不同台的虛擬主機重啟後卻有可能使用同一組IP,如此一來本機端的know_hosts紀錄對應不符(另一種狀況,當然就是伺服器有重新安裝過,似服主機的金鑰碼又會不一樣囉,這樣也會產生對應不符的情形),就會出現上述的錯誤。只要照著他提示的建議:

ssh-keygen -f "/home/chunkai/.ssh/known_hosts" -R 192.168.30.9

重新建立know_hosts紀錄。