CentOS 系統管理技巧

    版本為 20:36, 20 Nov 2024

    到這個版本。

    返回到 版本存檔.

    查閱目前版本

    更多文章:

    各版本關閉 IPv6 的步驟

    官方文章: https://access.redhat.com/solutions/8709

    v7:新增 /etc/sysctl.d/ipv6.conf
    v5/6:編輯 /etc/sysctl.conf

    # For v7
    # To disable for all interfaces
    net.ipv6.conf.all.disable_ipv6 = 1
    
    # For v5/6
    # IPv6 support in the kernel, set to 0 by default
    net.ipv6.conf.all.disable_ipv6 = 1
    net.ipv6.conf.default.disable_ipv6 = 1 
    

    套用變更

    sysctl -p
    

    v7:重建開機映像檔

    dracut -f
    

    NOTE:

    如果沒有重建開機映像檔,會使得 rpcbind.service 無法正常運作,這會影響 NFS 的掛載。

    v6/7: 修改 /etc/hosts

    註解所有 IPv6 紀錄
    #::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
    

    v6: 修改 /etc/netconfig

    udp6       tpi_clts      -     inet6    udp     -       -
    tcp6       tpi_cots_ord  -     inet6    tcp     -       -
    

    NOTE: 將 v 換成 -

    轉移 RHEL 整個系統至第二顆磁碟

    原文章連結: https://access.redhat.com/discussions/2158911

    請見附檔區: Migrate standard RHEL installation from one hard disk to another

    強制重設 root 密碼

    For GRUB Bootloader)
    系統重開機 -> 進入開機選單

    1. Select the kernel
    2. Press the e key to edit the entry
    3. Select second line (the line starting with the word kernel)
    4. Press the e key to edit kernel entry so that you can append single user mode
    5. Append the letter S (or word Single) to the end of the (kernel) line
    6. Press ENTER key
    7. Now press the b key to boot the Linux kernel into single user mode
    8. At prompt type passwd command to reset password:
    # mount -t proc proc /proc
    # mount -o remount,rw /
    # passwd
    # sync
    # reboot
    

    For LILO Bootloader)

    Boot: linux single 
    
    # passwd
    # sync
    # reboot 
    

    For CentOS/RHEL 7)

    Grub2

    設定檔:

    • /etc/default/grub,通用設定
    • /etc/grub.d/40_custom,自訂內容

     

    產生開機用的設定檔(請勿手動編輯)

    #> grub2-mkconfig -o /boot/grub2/grub.cfg
    
    如果是 EFI 開機,改用這行
    #> grub2-mkconfig -o /boot/efi/EFI/centos/grub.cfg

    修改預設的開機選項
    預設的項目是透過 /etc/default/grub 檔內的 GRUB_DEFAULT 行來定義。不過,要是 GRUB_DEFAULT 行被設定為 saved,這個選項便儲存在 /boot/grub2/grubenv 檔內。你可以這樣檢視它:

    列出目前所有開機選項
    #> awk -F\' '$1=="menuentry " {print $2}' /boot/grub2/grub.cfg
    或
    #> grep "^menuentry" /boot/grub2/grub.cfg | cut -d "'" -f2
    
    目前預設的開機
    #> grub2-editenv list
    saved_entry=CentOS Linux (3.10.0-229.14.1.el7.x86_64) 7 (Core)
    
    調整預設開機
    #> grub2-set-default 2               NOTE: 開機選項清單的第一項編號是 0
    

    沒有 Setup 指令

    CentOS 5:

    yum install setuptool system-config-network* system-config-firewall* system-config-securitylevel-tui system-config-keyboard ntsysv
    

    CentOS 6:

    yum install setuptool
    yum install system-config-network*
    yum install system-config-securitylevel-tui
    yum install system-config-keyboard
    

    CentOS 7:

    網路設定改用 NetworkManger 服務

    yum install NetworkManager-tui
    nmcli d
    nmtui 
    

    安裝 CentOS 6/7 後的重要設定

    CentOS 6:
    預設會啟用 NetworkManager 管理網路,建議關閉

    service NetworkManager stop
    chkconfig NetworkManager off 
    

    移除 SELinux

    在 6.4 之前版本,套件有 bug,當使用 yum 安裝套件時,會卡在 SELinux 套件升級,並且重開機後會造成 kernel panic 無法開機。

    yum remove selinux*
    

    防火牆指令

    關閉防火牆服務

    // CentOS 7
    #> systemctl stop firewalld.service
    #> systemctl disable firewalld.service 
    #> firewall-cmd --state
    

    新增服務通訊埠

    firewall-cmd --permanent --zone=public --add-service={http,https}
    firewall-cmd --permanent --zone=public --add-port=5060-5061/udp
    firewall-cmd --permanent --zone=public --add-port=10000-20000/udp
    

    RHEL 7 新指令

    // 網路設定
    #> nmcli d
    #> nmtui 
    
    // 關機/重啟
    systemctl poweroff
    systemctl halt
    systemctl reboot 
    

    F.A.Q

    [v7.6] 新裝的系統,再登入桌面環境後,會發生各種操作上問題,例如不能執行 ping,螢幕保護啟動後不能解鎖等;如果不登入桌面環境下則正常。檢查 dmesg 出現以下錯誤:
    VFS: file-max limit 8192 reached

    原因:系統檔案開啟數量已達系統預設的上限。CentOS 7 使用 GNOME-Shell 桌面環境,這相對於舊版的 GNOME 桌面需要開啟更多的系統檔。

    檢查目前的系統檔案參數

    # cat /proc/sys/fs/file-nr
    4800    0       8192
    or
    # sysctl fs.file-nr
    fs.file-nr = 4800       0       8192
    
    • 4800 - 目前已分配數量
    • 0 - 目前已使用數量
    • 131072 - 最大可開啟檔案數量 (/etc/sysclt.conf)

    調整參數

    vi /etc/sysctl.d/02-filemax.conf
    
    fs.file-max = 131072

    套用設定或重啟主機

    sysctl -p /etc/sysctl.d/02-filemax.conf 
    [v7.3] 無法 mount 遠端的 NFS

    rpc.statd[6187]: Failed to register (statd, 1, udp): svc_reg() err: RPC: Remote system error - No route to host
    rpc.statd[6187]: Failed to register (statd, 1, tcp): svc_reg() err: RPC: Remote system error - No route to host
    rpc.statd[6187]: Failed to register (statd, 1, udp6): svc_reg() err: RPC: Remote system error - No route to host
    rpc.statd[6187]: Failed to register (statd, 1, tcp6): svc_reg() err: RPC: Remote system error - No route to host
    rpc.statd[6187]: failed to create RPC listeners, exiting

    執行 rpcinfo -p 會出現錯誤訊息

    解決:原因是關閉 IPv6 功能後沒有重新建立開機映像檔,導致 rpcbind 服務無法正常被啟動,解決方法有二:

    1. 恢復 IPv6 功能
    2. 關閉 IPv6 功能參照本頁教學: 各版本關閉 IPv6 的步驟。
    [v6.7] 開機出現錯誤

    Starting cgdcbxd: /usr/sbin/cgdcbxd: libcgroup initialization failed: Cgroup is not mounted
    cgdcbxd: libcgroup initialization failed: Cgroup is not mounted   [FAILED]

    解決:

    檢查 cgconfig 是否啟用自動啟動
    chkconfig cgconfig on
    chkconfig --list cgconfig 
    
    NOTE: 如果是 CentOS 6.7 以前版本,檢查 cgconfig 開機啟動順序是否在 cgdcbxd 之前。
    
    [CentOS 6.7] 磁區的警告訊息

    Partition 1 does not start on physical sector boundary.

    原因:由於比較新 model 的硬碟使用 Advanced Format 這是 4096 bytes/sector 取代舊式的 512 bytes/sector 。雖然新式硬碟仍然支援舊格式,以舊格式建立磁區就會出現這訊息,可能影響使用的效能。

    解決:要修復這問題,必須重新建立磁區,不適合有資料的舊磁區。

    以 fdisk 為例,進入 fdisk 模式後,先執行 u (將預設單位 cylinder 改成 sector) 然後開始新增磁區。

    Powered by MindTouch Core