---
# System prepended metadata

title: 期末練習
tags: [Linux]

---

# 期末練習
###### tags: `Linux`
<style>
html, body, .ui-content {
    background-color: #333;
    color: #ddd;
}

body > .ui-infobar {
    display: none;
}

.ui-view-area > .ui-infobar {
    display: block;
}

.markdown-body h1,
.markdown-body h2,
.markdown-body h3,
.markdown-body h4,
.markdown-body h5,
.markdown-body h6 {
    color: #ddd;
}

.markdown-body h1,
.markdown-body h2 {
    border-bottom-color: #ffffff69;
}

.markdown-body h1 .octicon-link,
.markdown-body h2 .octicon-link,
.markdown-body h3 .octicon-link,
.markdown-body h4 .octicon-link,
.markdown-body h5 .octicon-link,
.markdown-body h6 .octicon-link {
    color: #fff;
}

.markdown-body img {
    background-color: transparent;
}

.ui-toc-dropdown .nav>.active:focus>a, .ui-toc-dropdown .nav>.active:hover>a, .ui-toc-dropdown .nav>.active>a {
    color: white;
    border-left: 2px solid white;
}

.expand-toggle:hover, 
.expand-toggle:focus, 
.back-to-top:hover, 
.back-to-top:focus, 
.go-to-bottom:hover, 
.go-to-bottom:focus {
    color: white;
}


.ui-toc-dropdown {
    background-color: #333;
}

.ui-toc-label.btn {
    background-color: #191919;
    color: white;
}

.ui-toc-dropdown .nav>li>a:focus, 
.ui-toc-dropdown .nav>li>a:hover {
    color: white;
    border-left: 1px solid white;
}

.markdown-body blockquote {
    color: #bcbcbc;
}

.markdown-body table tr {
    background-color: #5f5f5f;
}

.markdown-body table tr:nth-child(2n) {
    background-color: #4f4f4f;
}

.markdown-body code,
.markdown-body tt {
    color: #eee;
    background-color: rgba(230, 230, 230, 0.36);
}

a,
.open-files-container li.selected a {
    color: #5EB7E0;
}

</style>
## 開始考試的練習 -- VM 1： 系統設定與操作部份

### 1.系統初始化設定
A.我需要每次開機都可以預設的進入純文字界面而非現行的圖形界面，可以節省許多不必要的資源浪費。
在系統自己開機後，預設會跑進純文字界面，沒有圖形界面的意思。
你在操作時，依舊可以『暫時』切換到圖形界面，沒有特別要求你一定要在文字界面答題。
```=
systemctl set-default multi-user.target(預設純文字介面)  
systemctl set-default gr[tab](預設圖形介面)  
reboot --> 重新開機一下 如有出現文字介面就成功了  
systemctl iso[tab] gr[tab] --> 暫時切回圖形化介面
```
B.請設定好這部主機的網路參數成為如下狀態 (全對才給分)：
刪除原有的網路連線名稱，建立名為『 mynetwork 』的連線名稱，且使用到可對外的乙太網路界面。
需要開機就自動啟動這個連線
網路參數的設定方式為手動設定
網際網路位址 IP address 為： 192.168.251.XXX (XXX 為上課時，老師給予的號碼)
子網路遮罩 netmask 為： 255.255.255.0
通訊閘 Gateway 為： 192.168.251.254
領域名稱伺服器 DNS server 位址為： 172.16.200.254 以及 120.114.100.1 這兩個
主機名稱：請設定為 wwwXXX.book.vbird (其中 XXX 為上課時，老師給予的號碼)
```=
nmcli connection show
nmcli connection del[tab] ens3
nmcli connection add type ethernet ifname ens3 con-name 網卡名 connection.autoconnect yes
nmcli connection show
nmcli connection modify 網卡名 ipv4.method manual ipv4.addresses [ip位置/？]　ipv4.dns [ip位置] ipv4.gateway [ip位置] 
nmcli connection up 網卡名

設定主機:
hostnamectl set-hostname [主機名]
hostnamectl
```
C.針對 YUM 的軟體倉儲設定，你有底下的兩組軟體倉儲位址，請設定好所需要的環境 (全對才給分)：
http://ftp.ksu.edu.tw/FTP/Linux/CentOS/8/AppStream/x86_64/os/
http://ftp.ksu.edu.tw/FTP/Linux/CentOS/8/BaseOS/x86_64/os/
```=
先連網路
#yum install vim 不一定要載
可以用 vi

vim /etc/yum.repos.d/ksu.repo
在下載yum ins[tab] chrony -y
```
![](https://i.imgur.com/E3aKEVc.png)

D.時區與時間及網路校時功能設計：
你系統的時間好像怪怪的，時區與時間好像都錯亂了！請改回台北的時區與時間。
請使用網路校時 (chronyd) 的方式，使用貴校 ntp.ksu.edu.tw 作為伺服器，主動更新你的系統時間。 且系統啟動之後，會持續網路校時以取得最正確的時間。(若貴校並無 NTP 伺服器，則以 time.stdtime.gov.tw 作為來源)
```=
date
timefatectl set-timezone Asia/Taipei
timedatectl
在看一次時間不正確
date

systemctl start chronyd
systemctl ena[tab] chronyd
cd 

 yum install chrony
vim /etc/chrony.conf
在第三行 註解 pool 
新增server [伺服器] iburst

systemctl rest[tab] chronyd
```
![](https://i.imgur.com/z1XSGhM.png)

E.系統的自動更新機制：
請至少升級核心 (kernel) 到最新版本，且升級完畢後，需要重新開機為宜
這部主機需要作為未來開發軟體之用，因此需要安裝一個『 RPM 開發工具 』的軟體群組，請安裝他。
請設定每天凌晨 3 點自動背景進行全系統更新。
```=
yum update -y
yum groupinstall "Development Tools" -y 全系統更新
vim /etc/crontab
新增 0   3  *  *  *  root    yum update -y
reboot
```
![](https://i.imgur.com/IyfZGqJ.png)

### 2.帳號與權限控管方面的問題，包括新建帳號、帳號相關權限設定等

A.管理員的一般帳號設定：
請讓 student 可以順利使用自己的密碼操作 sudo 指令
```=
visudo [ESC]G #跳到最下面
新增 student ALL=(ALL)   ALL
```
![](https://i.imgur.com/EIndTyE.png)

B.號鎖定功能：
有個名為 alex 的帳號，他的密碼為 mygodhehe ，這個帳號有點怪異，因此身為管理員的你，得要將該帳號暫時鎖定。
意思是說，這個帳號的所有資源都不變，但是該帳號無法順利使用密碼登入的意思(密碼鎖定)
```=
passwd -l alex
id alex #小於1000
```
C.特殊系統帳號建置：建立一個名為 mysys1 的系統帳號，且這個系統帳號
不需要家目錄
不具備可互動的 shell
不需要密碼
```=
useradd -r -M -s /sbin/nologin [帳號]

# -r 是不需要密碼
# -M 是不需要家目錄
# -s 是不具備可互動的 shell
```
D.預設帳號的權限屬性設定：
建立新用戶時，新用戶的家目錄應該都會出現一個名為 newhtml 的子目錄存在
新帳號登入時，預設將會『 rm='rm -i' 』『 cp='cp -i' 』『 mv='mv -i' 』這三個命令別名存在。
```=
 cd /etc/skel
 mkdir newhtml
 
 vim .bashrc
新增 alias cp="cp -i"
新增 alias mv="mv -i"
新增 alias rm="rm -i"
```
E.特殊帳號管理的需求：
讓 /home 這個目錄支援使用者與群組的 Quota 磁碟配額功能
增加一個名為 examgroup 的群組
```=
 vim /etc/fstab
/home那行 defaults,usrquota,grpquota

 groupadd examgroup
```
![](https://i.imgur.com/RTWKHuZ.png)

F.  特殊帳號建立的需求：
請寫一隻名為 /root/users/addusers.sh 的腳本，這個腳本將用來處理特殊帳號的建置。 你應該使用 for…do…done 迴圈的方式來建立這隻腳本，而 for 迴圈內的程式碼，請依序使用如下的方式來建置妥當
**1.  建立帳號時的相關參數設計：**
   - 帳號名稱為： examuser11 ~ examuser30 共 20 個帳號
   - 建立帳號時，每個帳號都要加入一個名為 examgroup 的次要群組支援
   - 每個帳號的全名說明就是該帳號的名稱
**2.  每個帳號的密碼均為 myPassWord**
**3.  並且每個帳號首次登入系統時，都會被強迫要求更改密碼 (chage ??)**
**4.  每個帳號在 /home 的 Quota 為 soft --> 120MB, hard --> 150MB**
**5.  修改每位帳號家目錄 (例如 examuser11 家目錄在 /home/examuser11/ ) 的權限成為 drwx--x--x 的模樣**
**6.  腳本建置完畢後，請務必執行一次，以確定帳號可以順利被建立！**
```=
 mkdir /root/users
 vim /root/users/addusers.sh

 sh /root/users/addusers.sh
```
![](https://i.imgur.com/57Xuw83.png)

G.  群組共用目錄的功能：請建立一個名為 /data/myexam 的目錄，這個目錄的權限設定是這樣的：
    **1.  關於 examgroup 群組內的用戶權限：**
   -   該目錄可以讓 examgroup 的用戶具有完整的權限
   -   而其他人不具備任何權限
   -   在該目錄底下新建的資料(不論檔案還是目錄)，新資料的擁有群組都會是 examgroup
 **2.  關於 examuser30 與 student 這兩個帳號的特定要求：**
   -   因為 examuser30 帳號被盜，因此 examuser30 針對 /data/myexam 設定為不具備任何權限
   -   因為 student 是管理員的一般帳號，該帳號也需要查詢 /data/myexam 目錄下的資訊。
         -   請讓 student 可以讀、進入該目錄，但不可以寫入該目錄。
          -   未來在此目錄底下新建的任何資料，預設 student 都具有讀與進入目錄的權限(沒有寫入的權限喔！)。
```= 
 mkdir /data
 mkdir /data/myexam
 chgrp examgroup /data/myexam
 chmod 2770 /data/myexam

 setfacl -m u:examuser30:--- /data/myexam
 setfacl -m d:u:examuser30:--- /data/myexam
 setfacl -m u:student:rx /data/myexam
 setfacl -m d:u:student:rx /data/myexam
```
### 3.系統基本操作，包括系統備份、自動化腳本、時間自動更新等機制
**A.  尋找特殊權限的檔名資料：**
   -   找出在/usr/bin, /usr/sbin 目錄下，具有 s 或 t 等特殊權限的檔名 (SUID/SGID/SBIT)
   -   將這些檔名連同權限，以類似 ll 輸出的資訊，將訊息輸出到 /data/findperm.txt 檔案中
```=
ll $(find /usr/bin /usr/sbin -perm /7000) -d
ll $(find /usr/bin /usr/sbin -perm /7000) -d > /data/findperm.txt
```
B.  找尋 IP 參數輸出：
   -   使用『 ip addr show 』這個指令，將輸出訊息中，含有 inet 關鍵字的，但不能含有 inet6 關鍵字，一整列輸出
   -   將上述的結果轉輸出到 /data/mynetwork.txt 檔案中。
```=
ip addr show | grep inet | grep -v inet6
ip addr show | grep inet | grep -v inet6 > /data/mynetwork.txt
```
C.  系統備份腳本製作：由於系統上面有非常多的重要資料必須要進行備份，因此我們想要使用一支 script 來進行備份的動作，且將該 script 定時執行：
    1.  請撰寫一隻名為 /root/backup_system.sh 的腳本，來進行備份的工作
    2.  需要備份的目錄有：/etc, /home, /var/spool/mail/, /var/spool/cron/, /var/spool/at/, /var/lib/，腳本的內容為：
   -   第一行一定要宣告 shell 喔！
   -   自動判斷 /backups 目錄是否存在，若不存在則 mkdir 建立她，若存在則不進行任何動作
   -   設計一個名為 mysource 的變數，變數內容以空格隔開所需要備份的目錄
   -   設計一個名為 mytarget 的變數，該變數為 tar 所建立的檔名，檔名命名規則 /backups/mysys\_20xx\_xx\_xx.tar.gz ， 其中 20xx\_xx_xx 為西元年、月、日的數字，該數字依據你備份當天的日期由 date 自行取得。
   -   開始利用 tar 來備份
3.  請注意，撰寫完畢之後，一定要立刻執行一次該腳本！確認實際有建立 /backups 以及相關的備份資料喔！
```=
 vim /root/backup_system.sh
 
 sh /root/backup_system.sh
```
![](https://i.imgur.com/BbnQ1re.png)

D.  定期備份功能：排定上述的備份指令在每個星期 6 的凌晨 2 點進行這個備份的動作，且這個script在執行的時候：
   -   備份指令執行的過程請使用資料流重導向將過程完整的儲存在 /backups/backup.log 這個檔案中(包括正確與錯誤資訊)
   -   使用 NI值 10 來執行此指令。
```=
 vim /etc/crontab
新增 0 2 * * 6 root    nice -n 10 sh /root/backup_system.sh > /backups/backup.log
```
![](https://i.imgur.com/VQqbKVH.png)

E.  我的 /usr/sbin/setquota 這個檔案不小心刪除了，該如何救回來？(可以使用 rpm 去追蹤是哪個軟體提供的檔案後，移除再安裝該軟體即可完成此題目。)
```=
 rpm -qf /usr/sbin/setquota #題目
 yum remove quota-4.04-14.el8.x86_64
 yum clean all
 yum install quota
```
F.  服務的管理部份，以 httpd 為例：
   -   讓你的 Linux 成為 http 以及 https 支援兩者的網頁伺服器
   -   每次開機都會主動的喚醒這個伺服器功能
   -   Internet 應該要能夠連線到你的 http 以及 https 埠口服務
   -   當輸入 http://localhost 時，可以看到的是你的 (1)姓名與 (2)學號
   -   注意：上課提到的服務建置五個步驟！
```=
yum install httpd mod_ssl -y
 systemctl start httpd
 systemctl enable httpd
 firewall-cmd --add-service=http
 firewall-cmd --add-service=http --permanent
 firewall-cmd --add-service=https
 firewall-cmd --add-service=https --permanent
 firewall-cmd --reload
 
 vim /var/www/html/index.html
寫入:
Jiang
4070C004
```
### 4.腳本建立與系統管理

A.  特殊原因，例如電力固定維護的關機情境問題：
   -   你的系統將在 7 月的 20 號 08:00 進行關機的歲修工作，請以『單次』工作排程來設計關機的動作 (poweroff)
```=
at 8:00 AM July 20
> poweroff
> [CTRL+D]
```
B.  系統開機的通知訊息：
   -   系統開機之後，會自動寄出一封 email 給 root，說明系統開機了。
   -   指令可以是『 echo "reboot new" | mail -s 'reboot message' root 』
   -   請注意，這個動作必須是系統『自動於開機完成後就動作』，而不需要使用者或管理員登入喔！(hint: rc.local)
```=
vim /etc/rc.local
新增 echo "reboot new" | mail -s 'reboot message' root
 chmod +x /etc/rc.d/rc.local
```
C.  為了方便大家使用 ps 外帶的參數來查詢系統的程序，因此管理員建立一隻名為 /usr/local/bin/myprocess 的腳本讓大家方便使用，腳本內容主要為：
   -   第一行一定要宣告 shell 為 bash 才行；
   -   主要僅執行『 /bin/ps -Ao pid,user,cpu,tty,args 』
   -   這隻腳本必須要讓所有人都可以執行才行！
```=
vim /usr/local/bin/myprocess

#!/bin/bash

/bin/ps -Ao pid,user,cpu,tty,args
# chmod a+x /usr/local/bin/myprocess
```
D.  寫一隻名為 /usr/local/bin/myans.sh 的腳本，這隻腳本的執行結果會這樣：
   -   腳本內第一行一定要宣告 shell 為 bash
   -   當執行 myans.sh true 時，螢幕會輸出『 Answer is true 』，且訊息為預設的 Standard output
   -   當執行 myans.sh false 時，螢幕會輸出『 Answer is false 』，且訊息輸出到 starndard error output
   -   當外帶參數不是 true 也不是 false 時，螢幕會輸出『 Usage: myans.sh true|false 』
   -   這隻腳本必須要讓所有人都可以執行才行！
```=
vim /usr/local/bin/myans.sh

 chmod a+x /usr/local/bin/myans.sh
```
![](https://i.imgur.com/vGycW1m.png)

### 5.基礎檔案管理與檔案系統維護：

A.  打包檔案的格式錯誤問題：
   -   你的系統中有個檔名 /root/mybackup 的檔案，這個檔案原本是備份系統的資料，但副檔名不小心寫錯了！
   -   請將這個檔案修訂成為比較正確的副檔名 (例如 /root/mybackup.txt 之類的模樣)
   -   並且將該檔案在 /srv/testing/ 目錄中解開這個檔案的內容。
```=
file /root/mybackup
 mv /root/mybackup /root/mybackup.tar.xz
 mkdir /srv/testing
 tar -xJf /root/mybackup.tar.xz -C /srv/testing
```
B.  LVM 彈性容量變化的效果：
   -   目前的系統中， /home 應該使用的是 LVM 的維護模式。請找出 /home 所在的 VG 剩餘容量
   -   將 VG 所有剩餘容量通通提供給 /home 使用，因此整個 /home 的容量將會放大很多。
   -   在目前的系統中，掛載在 /home 的LVM格式資料，請將它的容量變成
   -   且這個目錄內的資料並不會消失(無須重新格式化的意思)。
```=
 vgscan
 vgdisplay rocky
 lvscan
 lvresize -l +1536 /dev/rocky/home
```
#### 完成VM1重新開機
上傳:
`vbird_book_check_unit`

---
## 開始考試的練習 \-\- VM 2： 系統救援與檔案系統部份
重要訊息:
  - 這個系統容量比較小，而且預設在文字界面
  - 這個系統目前已經沒有圖形界面，所以你無法進入圖形界面。
  - 若你想要使用圖形界面操作系統，可能需要安裝 ==yum groupinstall GNOME== 才行。
  - 同樣的，預設界面一定要是純文字界面才可以！
  - 這部主機真的怪怪的，之前的管理員似乎在這部主機上面進行一些測試，追問之下有一些可能發生的原因，問題還不只一個。 請依據底下可能發生原因的問題予以克服，最終讓系統可以直接以 root 登入！ (hint: 千萬不要忘記 ==.autorelabel== 的動作！)
### A.  系統救援 \- 1 ：核心相關資料錯誤造成的問題
   -   原因：因為要測試核心開機功能，結果不小心將 initramfs 檔案刪除掉了，所以應該是無法順利開機。
   -   建議救援方式：使用原版光碟處理，請進入系統救援的模式，並依據系統既有的核心版本，將 initramfs 重建
   -   注意：(1)重建時，應考慮 grub2 的原本設定檔 (可能會在哪裡？)，以找到正確的檔名，方可順利成功開機喔。 (2)你可以使用任何一個 CentOS 8.x 的光碟做救援，但是需要注意不同的核心版本的問題！
### B.系統救援 \- 2 ：管理員手滑造成的 root 屬性問題
-   原因：因為幫用戶設定屬性，結果不小心『可能』修改到 root 這個帳號的相關屬性資料。
-   救援恢復的要求： (1)root 密碼恢復到 myCentOS8；(2)root 登入時可順利取得 bash shell 。
```=
選擇8.2光碟開機進入 trouble shooting
sh-4.4# chroot /mnt/sysimage
bash-4.4# ls /lib/modules
bash-4.4# cd /boot
bash-4.4# dracut -v --add-drivers ixgbe initramfs-4.18.0-348.el8.0.2.x86_64.img 4.18.0-348.el8.0.2.x86_64
bash-4.4# lsinitrd initramfs-4.18.0-348.el8.0.2.x86_64.img | grep -i ixgbe
```
```=
bash-4.4# passwd root
: myCentOS8
: myCentOS8
bash-4.4# usermod -s /bin/bash root
bash-4.4# grep root /etc/passwd
bash-4.4# touch /.autorelabel
bash-4.4# exit
sh-4.4# reboot
```
### C.  系統救援 \- 3 ：LVM 隨便刪除造成的錯誤
   -   原因：在發生此錯誤之前，似乎曾經將系統的 LVM swap 刪除，是否如此造成系統錯誤還不得而之。
   -   建議救援方式：不要使用光碟，使用核心支援的維護模式，查看一下開機選單的內容是否正確。
   -   注意：在順利登入系統之後，你或許需要 (1)重建 grub 選單以及 (2)修改 /etc/fstab 檔案，以處理 swap 產生的問題
   -   注意：刪除 swap 為正常的行為，所以，請不要重建 lvm 的 swap 裝置！從選單去處理！
```=
vim /etc/fstab
 刪除 /dev/mapper/rocky-swap

 vim /etc/default/grub
 刪除有關 rocky-swap 以及 lvm swap 設定
 grub2-mkconfig -o /boot/grub2/grub.cfg
 reboot
```
![](https://i.imgur.com/lswB8zx.jpg)

D.  不是題目：在使用 root 正確登入系統之後，請使用 ==vbird\_book\_setup_ip== 設定好你的學號與網路。

### 2.系統初始化功能：
A.  針對 YUM 的軟體倉儲設定，你有底下的兩組軟體倉儲位址，請設定好所需要的環境 (全對才給分)：
  -   http://ftp.ksu.edu.tw/FTP/Linux/CentOS/8/AppStream/x86_64/os/
  -   http://ftp.ksu.edu.tw/FTP/Linux/CentOS/8/BaseOS/x86_64/os/
```=
 vim /etc/yum.repos.d/ksu.repo

[AppStream]
name = app
baseurl = http://ftp.ksu.edu.tw/FTP/Linux/rocky/8/AppStream/x86_64/os/
enabled = 1
gpgcheck = 0

[BaseOS]
name = base
baseurl = http://ftp.ksu.edu.tw/FTP/Linux/rocky/8/BaseOS/x86_64/os/
enabled = 1
gpgcheck = 0
```
B.  系統升級行為
   -   只針對 kernel 升級即可
   -   升級完畢請立刻重新開機，且使用新核心
```=
yum update -y
 reboot
```
C.  關於開機選單調整
   - timeout時間設定為 15 秒，
   - 預設所有的核心參數都會加入 noapic 及 noacpi 兩個參數
   - 開機選單多一個回到MBR的設定，選單名稱內亦須包含『 MBR 』字樣，且選單位於最後一個位置
   - 開機選單在最後多一項可以進入圖形界面模式，這個圖形界面請使用原有的核心版本 (不是剛剛升級的核心版本)， 且title必須含有『 mygraphical 』的字樣才行！
```=
vim /etc/default/grub
更改 TIMEOUT=15
更改 CMDLINE_LINUX="... quiet noapic noacpi"

 vim /etc/grub.d/40_custom

menuentry 'Go to MBR' --id 'mbr' {
    insmod chain
    set root=(hd0)
    chainloader +1
}

 cd /boot/loader/entries
 cp [舊核心檔名] custom-graphical-4.18.0-348.el8.0.2.x86_64.conf
 
 vim custom-graphical-4.18.0-348.el8.0.2.x86_64.conf
更改 title 增加 mygraphical
更改 options 增加 systemd.unit=graphical.target
```
### 3.檔案系統方面的處理，包含分割(注意primary, extended, logical的限制)、格式化、掛載等
A.  軟體磁碟陣列管理：目前的系統有個出現磁碟出問題而快要損毀 (degrade) 的軟體磁碟陣列，找出並修復好該系統。
   -   該磁碟似乎已經被拔除一個 partition
   -   找出系統中具有的跟 RAID 內的 partition 容量相同，且沒有被使用的 partition，那就是這個 RAID 缺乏的磁碟槽 (假設已經被修理好了)
   -   請將該磁碟槽加入原本的系統中，以救援這個磁碟陣列 (讓他變成 clean 的狀態，改變 degraded 的困擾)
```=
lsblk
 mdadm --detail /dev/md5
 mdadm --manage /dev/md5 --add /dev/vda4
```
B.  記憶體置換容量的處理：
   -   目前這個系統裡面似乎所有的 swap 通通被刪除了！不過這樣實在不太好。
   -   建立大型檔案，檔名為 /myswap.img，容量大概是 1G 即可。
   -   將上述檔案格式化成為 swap
   -   每次開機這個 swap 都會主動被系統所使用。
```=
dd if=/dev/zero of=/myswap.img bs=1024M count=1
 mkswap /myswap.img
 
 vim /etc/fstab
新增 /myswap.img    swap    swap    defaults    0 0
 swapon -a
```
C.  LVM 的建立與 VDO 的應用
   -   將目前這個系統當中的所有剩餘容量建立成為單一分割槽，並且將 system ID 設定為 LVM
   -   利用上面這個分割槽，建立一個名為 thevg 的 VG ，且 PE 容量為 8M
   -   將 thevg 的所有容量通通給予名為 thelv 的 lv，所以最終會出現 /dev/thevg/thelv 的裝置。
   -   將 /dev/thevg/thelv 加入到 VDO 的支援，建立名為如下的 VDO 裝置
        -   VDO 名稱為 thevdo
        -   VDO 虛擬容量為 20G
        -   裝置使用 /dev/thevg/thelv
   -   將 VDO 裝置格式化成為 XFS 檔案系統
   -   此裝置開機後會立刻掛載到 /data/vmdata 目錄下
```=
fdisk /dev/vda
: n
: [enter]
: [enter]
: [enter]
: t
: 31 (LVM type)
: w

 pvcreate /dev/vda6
 vgcreate -s 8M thevg /dev/vda6
 lvcreate -n thelv -l 903 thevg

 yum install vdo kmod-kvdo -y
 systemctl restart vdo
 systemctl enable vdo
 vdo create --name=thevdo --vdoLogicalSize=20G --device=/dev/thevg/thelv --deduplication enabled --compression enabled
 mkfs.xfs /dev/mapper/thevdo
 mkdir /data
 mkdir /data/vmdata
 vim /etc/fstab
新增 UUID=... /data/vmdata    xfs    defaults    0 0
 mount -a
```
D.  LVM 與 stratisd 的應用
   -   將 centos 這個 VG 的剩餘容量，給予一個名為 ==thepool== 的 LVM 裝置，最終會有 ==/dev/centos/thepool== 裝置存在。
   -   將 ==thepool== 加入到名為 ==lvmpool== 的儲存池 (thin pool) 當中
   -   建立 ==thefs== 檔案系統，並且開機會掛載到 ==/data/mypool== 目錄下。
   -   上述掛載最好使用 UUID 來處理！
```=
 vgdisplay rocky
 lvcreate -n thepool -l 1536 rocky
 yum install stratisd stratis-cli -y
 systemctl start stratisd
 systemctl enable stratisd
 stratis pool create lvmpool /dev/rocky/thepool
 stratis filesystem create lvmpool thefs
 mkdir /data/mypool
 
 vim /etc/fstab
新增 UUID=... /data/mypool    xfs    defaults,x-systemd.requires=stratisd.service    0 0
 mount -a
```
### 4.系統效能處理：

A.  請改用『 throughput-performance 』來動態調整系統效能
```=
 tuned-adm profile throughput-performance
 tuned-adm active

```
B.  調整核心參數，讓每次開機都會修改成為底下這樣：
   -   /proc/sys/vm/dirty_ratio 改成 40
   -   /proc/sys/vm/dirty\_background\_ratio 改成 5
   -   /proc/sys/vm/swappiness 改成 10
```=
vim /etc/sysctl.d/myrocky.conf
vm.dirty_ratio = 40
vm.dirty_background_ratio = 5
vm.swappiness = 10
 sysctl -p /etc/sysctl.d/myrocky.conf
```
#### 完成VM2重新開機
上傳:
`vbird_book_check_unit`

---
## 常規化救援
![](https://i.imgur.com/D4nXfPO.png)
![](https://i.imgur.com/AbHIdFh.png)
```=
mount | grep sysroot
mount -o remount,rw /sysroot
mount | grep sysroot
chroot /sysroot
usermod -s /bin/bash root
grep root /etc/passwd
touch /.autorelabel
ls -l -ad /.autorelabel
exit
reboot
```