RHCE 8.0學習日記 day17

訪問網絡附存儲

NFS(網絡文件系統)是Linux、unix及類似操作系統使用的互聯網標準協議,可作爲本地網絡文件系統系統,也可以支持本地Linux權限和文件系統功能。

RHEL 8.0默認NFS爲4.2。NFSv4僅使用TCP協議與服務器進行通信。

NFS服務器導出共享(目錄)。NFS客戶端將導出的共享掛載到本地掛載點(目錄),掛載點必須已存在。有多種方式掛載NFS共享:

  • mount 命令掛載
  • /etc/fstab中添加條目,持久掛載。
  • 按需掛載:使用autofs服務或systemd.automount功能。

掛載NFS共享的三個步驟:

  1. 識別。NFS服務器的管理員可以提供導出詳細信息,包括安全性要求。或者客戶端管理員可以通過掛載NFS服務器的根目錄並瀏覽已導出目錄來識別NFSv4共享(以root身份執行本操作)。
  2. 使用mkdir在合適的位置創建掛載點。
  3. 以超級用戶執行命令操作:
    1. mount 臨時掛載NFS共享。示例:                                                                  sudo  mount  -t  nfs  -o  rw,sync serverb:/share  mountpoint。 -t nfs 選項是NFS共享的文件系統類型。-o sync選項使用mount立即與NFS服務器同步寫操作(默認爲異步)。
    2. 持久掛載,在/ect/fatab中添加條目,  條目示例: serverb:/share  /mountpoint  nfs  rw,soft  0  0           然後sudo mount/mountpoint

卸載nfs共享,也需要root權限。示例:sudo  umonut  mountpoint。持久掛載的需要在/etc/fatab中刪除相關條目。

nfsconf 工具用於管理NFSv4與NFSv3下的NFS客戶端和服務器配置文件。使用/ect/nfs.conf  配置nfsconf工具。nfsconf工具用來獲取、設置或取消NFS配置參數。

nfsconf  --set section key value 設置指定部分的鍵值。示例:

        sudo nfsconf  --set  nfsd vers4.2  y    

nfsconf  --get  section key 來檢索指定部分的鍵值:

        sudo  nfsconf  --get  nfsd vers4.2

nfsconf  --unset  section key  取消設置指定部分的鍵值:

        sudo  nfsconf  --unset nfsd vers4.2

配置一個僅限使用NFSv4的客戶端

在/etc/nfs.conf配置文件中修改設置來達到目的。

首先禁用UDP以及其他與NFSv2和NFSv3有關的鍵:

  •   sudo  nfsconf --set  nfsd udp n
  •   sudo  nfsconf --set  nfsd vers2 n
  • sudo  nfsconf --set  nfsd vers3 n

啓用TCP和NFSv4相關鍵

  • sudo nfsconf  --set nfsd tcp y 
  • sudo nfsconf  --set nfsd  vers4 y 
  • sudo nfsconf  --set nfsd  vers4.0 y
  • sudo nfsconf  --set nfsd  vers4.1 y
  • sudo nfsconf  --set nfsd  vers4.2 y   

執行這些命令/etc/nfs.conf配置文件中會顯示所做的更改。

使用自動掛載器掛載NFS共享

自動掛載器是一種服務(autofs),可以根據需要自動掛載NFS共享,並在不再使用這些共享時卸載這些共享。

創建自動掛載:

  1. 安裝autofs軟件包。
  2. 向/etc/auto.master.d添加一個主映射文件。此文件用於確定掛載點的基礎目錄,並用於創建自動掛載映射文件。必須以.autofs作爲擴展名。
  3. 創建映射文件。每個映射文件確定一組自動掛載的掛載點、掛載選項以及掛載的源位置。映射文件的命名規則是/etc/auto.name,name反映了映射內容。
  4. 啓動並啓用自動掛載器服務。 systemctl enable --now autofs 

直接映射,用於將NFS共享映射到現有的絕對路徑掛載點。     

RHEl8.0啓動過程

啓動過程:

  1. 計算機已接通電源。系統固件(UEFI,舊的爲BIOS)運行開機自檢(POST),並開始初始化部分硬件。
  2. 系統固件搜索可啓動設備,可能是在UEFI啓動固件中配置的,也可能安裝BIOS中配置的順序搜索所有磁盤上的主動啓動記錄(MBR)。
  3. 系統固件從磁盤讀取啓動加載器,然後將系統控制權交給啓動加載器。RHEL8.0 啓動加載器爲GRUB2。
  4. GRUB2將從/boot/grub2/grub.cfg文件加載配置並顯示一個菜單,從中選擇要啓動的內核。
  5. 選定內核後,啓動加載器會從磁盤中加載內核和initramfs,並將它們放入內存中。initramfs包含啓動時所有必要硬件的內核模塊、初始化腳本等等。RHEL8 中,initramfs包含自身可用的整個系統。
  6. 啓動加載器將控制權交給內核,從而傳遞啓動加載器的內核命令行中指定的任何選項,以及initramfs在內存中的位置。
  7. 對於內核可在initramfs中找到驅動程序的所有硬件,內核會初始化這些硬件然後作爲PID1從initramfs執行/sbin/init。/sbin/init是一個指向systemd的鏈接。
  8. initramfs中的systemd實例會執行initrd。target目標的所有單元。包括將磁盤上的root文件系統掛載於/sysroot目錄。
  9. 內核將root文件系統從initramfs切換爲/sysroot中的文件系統。隨後systemd會使用磁盤中安裝的systemd副本來自行重新執行。
  10. systemd會查找從內核命令行傳遞或系統中配置的默認目標,然後啓動或停止單元,以符合目標的配置,從而自動解決單元間的依賴關係,本質上systemd目標是一組系統應激活以達到所需狀態的單元。

systemctl  poweroff  會停止所有運行的服務,卸載所有文件系統,然後關閉系統。

systemctl  reboot   停止所有運行的服務,卸載所有文件系統,然後重新啓動系統。

簡短版本poweroff  reboot 和上面的命令效果一樣。

systemd常用目標

目標 用途
graphical.target 系統支持多用戶、圖形和基於文本的登錄
multi-user.target 系統僅支持多用戶、基於文本的登錄。
rescue.target sulogin提示,表示基本系統初始化已完成。
emergency.target sulogin提示,表示initramfs迴轉完成,且系統root以只讀形式掛載於/上。

systemctl isolate  命令切換到其他目標。示例:

systemctl isolate multi-user.target

systemd會激活default.target目標。/etc/systemd/system中的默認目標是指向graphical.target 或multi-user.target 符號鏈接。systemctl get-default 和systemctl  set-default 用於管理該符號鏈接。示例:

    systemctl set-default graphical.target

在啓動時選擇其他目標,從啓動加載器將systemd.unit=target.target選項附加到內核命令行。選擇其他目標的方法,請執行以下步驟:

  1. 啓動或重啓系統。
  2. 按除Enter外的任意鍵,中斷啓動加載器菜單倒計時。
  3. 將光標移動到要啓動的內核條目。
  4. 按e編輯當前條目。
  5. 將光標移動到以Linux開頭的行。此爲內核命令行。
  6. 附加systemd.unit=target.target。如systemd.unit=emergency.target。
  7. 按Ctrl +x   使用這些更改進行啓動。

從啓動加載器重置root密碼

  1. 重新啓動系統。
  2. 按除Enter外的任意鍵,中斷啓動加載器菜單倒計時。
  3. 將光標移動到要啓動的內核條目。
  4. 按e編輯當前條目。
  5. 將光標移動到以Linux開頭的行。此爲內核命令行。
  6. 附加rd.break。利用該選項,就在系統從initramfs向實際系統移交控制權前,系統將會中斷。
  7. 按Ctrl +x   使用這些更改進行啓動。
  8. 然後重置root密碼,使用一下步驟:
    1. 以讀/寫形式重新掛載/sysrooot。                                                      switch_root:/# mount -o remount,rw  /sysroot
    2. 切換爲chroot存放位置,其中/syroot被視爲文件系統數的根。                            switch_root:/# chroot  /sysroot
    3. 設置新root密碼。  sh-4.4# passwd root
    4. 確保所有未標記的文件(包括/etc/shadow)在啓動過程中都會重新獲得標記。  sh-4.4# touch /.authorelabel 
    5. 鍵入exit兩次。第一次退出chroot存放位置,第二次退出initramfs調試shell。

修復systemd啓動問題,RHEL8.0提供了一下工具:

  • 啓動早期調試shell。systemctl enable debug-shell.service  啓用debug-shell服務,系統會於啓動序列早期在TTY9(Ctrl+Alt+F9)上生成一個root shell。會自動作爲root登錄,然後管理員可以在操作系統仍在啓動時對系統進行調試。
  • 從啓動加載器將systemd.unti=rescue.target 或systemd.unit=emergency.target附加到內核命令行,系統將生成救援或緊急情況sell,需要提供root密碼。

systemctl list-jobs命令可以檢查當前作業列表。

修復在啓動時出現的文件系統問題

常見文件系統問題
問題 結果
損壞文件系統 systemd嘗試修復文件系統。如果問題過於嚴重,無法進行自動修復,系統會將用戶將至緊急shell。
/etc/fstab中引用的設備/UUID不存在 systemd將等待一段時間,等設備變得可用。如果設備未變得可用,則將系統在超時後將用戶將至緊急shell。
/etc/fstab中的掛載點不存在 系統將用戶降至緊急shell。
/etc/fstab中指定的掛載點錯誤。 系統將用戶降至緊急shell。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章