2016年9月18日 星期日

CentOS 7 自動校時(使用chrony)

CentOS 7 提供了新的 chrony 校時方式。
chronyd 和 ntpd 的不同之處,可查看redhat說明:
Red_Hat_Enterprise_Linux-System_Administrators_Guide-7::15.1.1. Differences Between ntpd and chronyd

以下為簡易用法:
安裝 chrony
# yum install chrony
開機自動啟動 chronyd
# systemctl enable chronyd.service
啟動 chronyd
# systemctl start chronyd.service
查看 chronyd 運行狀態
#systemctl status chronyd.service
...
 8月 16 00:02:36 localhost.localdomain chronyd[3193]: System clock wrong by 147228.887649 seconds, adjustment started
 8月 17 16:56:25 localhost.localdomain chronyd[3193]: System clock was stepped by 147228.887649 seconds
可發現,因為初次啟動時,時間差太多,所以先執行了一次校正到正確的時間。
slew adjustment:慢慢調整到正確的時間(避免其他用到時間的程式有異常、產生時間不合理的資料)
step adjustment:一次調整到正確的時間


查看 chronyc 校時來源server
# chronyc sources
查看 chronyc 校時來源server狀態
# chronyc sourcestats
查看最後一次取得的校時資料
# chronyc tracking
取得的資訊中,其中比較會用到的兩項資料是。
Ref time (UTC):最後一次從校時來源(Reference ID)得到的時間資料
System time:目前系統時間跟校時來源時間的差異。

如果發現系統目前時間(System time)跟校時來源時間差很多(Ref time), 不想等 chrony 慢慢校時,想立刻校時成跟 Ref time 一樣,可執行
# chronyc -a makestep

前一個指令,也可以 root 身分進入 chronyc 互動指令模式,再操作,「-a」參數:自動使用 local keys 認證
# chronyc -a
chrony version 2.1.1
Copyright (C) 1997-2003, 2007, 2009-2015 Richard P. Curnow and others
chrony comes with ABSOLUTELY NO WARRANTY.  This is free software, and
you are welcome to redistribute it under certain conditions.  See the
GNU General Public License version 2 for details.

200 OK
chronyc> help #使用 help 查看可用指令

參考:
Red_Hat_Enterprise_Linux-System_Administrators_Guide-7::15.3. Using chrony
漂亮的笨蛋:NTP文档翻译:它是如何工作的?How does it work?
chronyd 使用

Linux systemctl 指令用法

列出可管理的單元類型
# systemctl -t help
使用說明
# systemctl --help
列出所有已安裝的單元
# systemctl list-unit-files
列出已安裝「php*」開頭的單元
# systemctl list-unit-files php*
將 php-fpm.service 設為開機自動啟動
# systemctl enable php-fpm.service
將 php-fpm.service 設為開機不自動啟動
# systemctl disable php-fpm.service
查看 php-fpm.service 目前是否設為開機自動啟動
# systemctl is-enabled php-fpm.service
啟動 php-fpm.service
# systemctl active php-fpm.service
停止 php-fpm.service
# systemctl stop php-fpm.service
查看 php-fpm.service 目前是否為啟動
# systemctl is-active php-fpm.service
查看 php-fpm.service 狀態
# systemctl status php-fpm.service


Linux bash tab 自動補齊指令可用的選項參數

Linux 系統指令操作時,按「tab」鍵,可自動補齊或提示可用的指令。
若希望其他後面要接的參數,也可自動補齊或提示。
可安裝 bash-completion
# yum install bash-completion
安裝後從新登入,即可。
若不想重新登入,可重新跑一次環境變數設定檔 /etc/profile
# source /etc/profile


Win7 升級到 Win10 後,遇到的網路問題

Win7 升級到 Win10 後,除了網路常常斷線,VirtualBox裡網路裡的介面卡也都找不到了。
  • 網路常常斷線的問題:
    重啟網路卡(Broadcom Netlink(TM) Gigabit Ethernet)就會正常,但發生太頻繁了。
    最後解決方式是到 Broadcom 官網,下載網路卡官方驅動程式安裝。
    http://zh-tw.broadcom.com/support/ethernet-nic-netxtreme-i-desktop-mobile
    選 NetLink®/NetXtreme® I Desktop/Mobile/Server (x64) 下載後,解壓縮。

    再到裝置管理員,選該網卡後,用手動更新的方式,強制更新為下載的驅動程式。

    強制更新為下載的驅動程式方式:
    「更新驅動程式軟體」->「瀏覽電腦中的驅動程式軟體」->「讓我從電腦上的裝置驅動程式清單挑選」->「從磁片安裝」->此時選剛剛下載解壓縮後的驅動程式資料夾->確定後,即會出現下載的驅動程式可選擇,再按下一步進行安裝。

    這樣之後,就再也沒有遇到網路莫名其妙斷線的問題。

    註:在win10年度更新(版本1607)出來後,安裝完年度更新,win10又把網卡驅動改回系統原本的,所以只好再做一次上面的步驟。
  • VirtualBox 4.2.16 網路不能用的問題
    先移除 VirtualBox 4.2.16,再安裝新版的 VirtualBox VirtualBox 5.0.24,
    移除前,我怕虛擬機會無預警移掉,所以先備份到其他地方(不過最後,發現移除程式不會移除虛擬機)。
    原本虛擬機檔案位置「C:\Users\[登入帳號]\VirtualBox VMs\」

    新版 VirtualBox VirtualBox 5.0.24 安裝完,開啟後,原本的虛擬機都還在,重新選虛擬機網路裡的介面卡後儲存。

    虛擬機開機後,因虛擬機網卡有附加到 VirtualBox Host-Only Ethernet Adapter,結果發現一個錯誤訊息,導致無法開機。
    Failed to open/create the internal network 'HostInterfaceNetworking-VirtualBox Host-Only Ethernet Adapter #2' (VERR_INTNET_FLT_IF_NOT_FOUND).
    Failed to attach the network LUN (VERR_INTNET_FLT_IF_NOT_FOUND).
    
    結果碼: 
    E_FAIL (0x80004005)
    元件: 
    ConsoleWrap
    介面: 
    IConsole {872da645-4a9b-1727-bee2-5585105b9eed}
    


    解決方法:
    參考 virtualbox - Failed to open/create the internal network Vagrant on Windows10 - Stack Overflow 說明。
    到「控制台\網路和網際網路\網路連線」,打開「VirtualBox Host-Only Ethernet Adapter」網卡內容設定,勾選「VirtualBox NDIS6 Bridged Networking driver」後,重新啟動「VirtualBox Host-Only Ethernet Adapter」網卡。


    虛擬機開機後,若附加到 「VirtualBox Host-Only Ethernet Adapter 的這張網卡用使用 DHCP 抓不到 IP。
    參考 Genymotion, Fix Error "Could Not Obtain An IP Address" - YouTube  說明
    到選單:「檔案」->「喜好設定」->「網路」。填入 VirtualBox Host-Only Ethernet Adapter 的 DHCP 設定。







    註:在win10年度更新(版本1607)出來後,安裝完年度更新,網路連線裡的「VirtualBox Host-Only Ethernet Adapter」不見了,所以有用到「VirtualBox Host-Only Ethernet Adapter」的虛擬機不能開機了。
    解決辦法:到「檔案」->「喜好設定」->「網路」新增一個新的「VirtualBox Host-Only Ethernet Adapter」

    新增後,再填入之前的網路設定值。

2016年8月12日 星期五

CentOS 7 忘記密碼

CentOS 7 忘記root密碼,重設密碼方式如下
  1. 在 grub 開機選單出現時,按「e」,編輯開機選項
    找到「linux16」開頭這一行,
    例如:
    ...(略)...
    linux16 /vmlinuz-3.10.0-327.22.2.e17.x86_64 root=/dev/mapper/centos-root ro ...(略)...
    ...(略)...
    
    這一行到「ro」這個單詞位置,將「ro」改成「rw init=/sysroot/bin/sh」
    ...(略)...
    linux16 /vmlinuz-3.10.0-327.22.2.e17.x86_64 root=/dev/mapper/centos-root rw init=/sysroot/bin/sh ...(略)...
    ...(略)
    
  2. 接下來按「Ctrl+x」開機進入命令列環境,
    這個命令列環境不是原本真正的系統,原本系統在 /sysroot,所以先 chroot 到 /sysroot
    # chroot /sysroot
    
    修改root密碼
    # passwd root
    
  3. 最後,在系統根目錄建一個 .autorelabel 檔案,
    開機時,系統偵測到根目錄有這個檔,便會 relabel 系統的 SELinux 相關設定,
    否則若受 SELinux 影響,還是會沒辦法登入。
    # touch /.autorelabel
    


參考:
How To Reset Your Forgotten Root Password On CentOS 7 Servers – Liberian Geek
v7 變更密碼
45.2.2. Relabeling a File System
centos - What does the .autorelabel file do in Linux? - Server Fault


其他資料:http://dywang.csie.cyut.edu.tw/dywang/rhel7/node5.html
  • CentOS 7 開機不分層級,而是分成 4 個 target
    Target 說明
    graphical.target 多人模式,支援圖形及文字兩種方式登入,等效 v6 的層級 3 及 5。
    multi-user.target 多人模式,只支援文字登入方式,等效 v6 的層級 3。
    rescue.target sulogin (Single-user login),單人模式,等效 v6 的層級 1。
    emergency.target sulogin ,單人模式,完成 initramfs 載入且系統根目錄 / 掛載成唯讀,等效 v6 開機掛載不成功時的維修模式。