第四周作業
1、描述GPT是什麼,應該怎麼使用。 2、建立一個10G的分割槽,並格式化為ext4檔案系統。要求: (1)block大小為2048,預留空間20%,卷標為MYDATA, (2) 掛載至/mydata目錄,要求掛載時禁止程式自動執行,且不更新檔案的訪問時間戳。 (3)可開機自動掛載。 3、建立一個大小為1G的swap分割槽,並啟用。 4、編寫指令碼計算/etc/passwd檔案中第10個使用者和第20個使用者id號之和。 5、將當前主機名儲存至hostName變數中,主機名如果為空,或者為localhost.localdomain則將設定為www.magedu.com 6、編寫指令碼,通過命令列引數傳入一個使用者名稱,判斷id號是偶數還是奇數。 7、lvm基本應用以及擴充套件縮減實現。
壹、描述GPT是什麼,應該怎麼使用。
GUID磁碟分割槽表(GUID Partition Table,縮寫:GPT)其含義為“全域性唯一標識磁碟分割槽表”,是一個實體硬碟的分割槽表的結構佈局的標準。它是可擴充套件韌體介面(EFI)標準(被Intel用於替代個人計算機的BIOS)的一部分,被用於替代BIOS系統中的一64bits來儲存邏輯塊地址和大小資訊的主開機紀錄(MBR)分割槽表。MBR分割槽表不支援容量大於2TB的分割槽,GPT分割槽表支援最多128PB的硬碟和分割槽。GPT 磁碟能夠實現巨大的容量。GPT 磁碟上的分割槽數量不受臨時方案(比如 MBR Extended Boot Record (EBR) 定義的容器分割槽)的限制。GPT 磁碟分割槽定義明確並能夠完全自動識別。平臺操作的關鍵資料被放置在分割槽中而不是未分割槽或“隱藏”扇區中。GPT 磁碟使用原始的、備份的分割槽表儲存冗餘和 CRC32 欄位,以提高分割槽資料結構的完整性。GPT 分割槽格式使用版本號和容量欄位支援進一步的擴充套件。每個 GPT 分割槽都有獨特的標識 GUID 和分割槽內容型別,所以不需要協調即可防止分割槽識別符號衝突。每個 GPT 分割槽都有一個 36 字元的 Unicode 名稱,這意味著任何軟體都能夠呈現一個人工可讀的分割槽名稱,而無需瞭解分割槽的其他內容。
對於總容量大於2TB的硬碟,必須選擇GPT分割槽表,才能識別所有的硬碟容量。分割槽表必須是UEFI BIOS環境。
貳、建立一個10G的分割槽,並格式化為ext4檔案系統。要求:
(1)block大小為2048,預留空間20%,卷標為MYDATA,
(2) 掛載至/mydata目錄,要求掛載時禁止程式自動執行,且不更新檔案的訪問時間戳。
(3)可開機自動掛載。
步驟如下: 先分割槽,後格式化
------分割槽------
新增一個硬碟 並檢視新增硬碟資訊:
~]# fdisk -l
sdb為新新增的硬碟:

image.png
fdisk /dev/sdb
對新加硬碟分割槽

image.png
輸入m可以檢視幫助

image.png
新建10G磁碟空間 ,再輸入 w 儲存配置

image.png
------格式化------
mkfs
用於在裝置上(通常為硬碟)建立Linux檔案系統。mkfs本身並不執行建立檔案系統的工作,而是去呼叫相關的程式來執行。
【語法】
mkfs(選項)(引數)
【選項】
fs:指定建立檔案系統時的引數;
-t<檔案系統型別>:指定要建立何種檔案系統,檔案系統是要指定的,比如 ext3 ;reiserfs ;ext2 ;fat32 ;msdos 等;
-v:顯示版本資訊與詳細的使用方法;
-V:顯示簡要的使用方法;
-c:在製做檔案系統前,檢查該partition是否有壞軌。
mkfs.ext4
(選項)(引數)
【選項】
-c 壞塊測試
-L 設定volume 標籤,最長為16個byte
-m 指定保留空間百分比,為root使用者
-M 設定最後掛載目錄
-n 不真正建立檔案系統,只是顯示建立的資訊
-S 只寫超級塊和塊組描述符。(當超級塊和備份超級塊錯誤後,可以用來恢復資料。因為它不會touching inode表和bitmap)
掛載至/mydata目錄,要求掛載時禁止程式自動執行,且不更新檔案的訪問時間戳。

image.png
可開機自動掛載
ls -l /dev/disk/by-uuid
查詢新增硬碟uuid
/etc/fstab
中新增以下內容
UUID=bd6e7c18-1071-4962-a071-febddabc4d49 /mydataext4defaults,noatime,noexec0 0
叄、建立一個大小為1G的swap分割槽,並啟用。
採用分割槽建立

image.png
此時/dev/下沒有新增的分割槽,執行 partprobe 即可. partprobe-----用於重讀分割槽表,當出現刪除檔案後,出現仍然佔用空間。可以partprobe在不重啟的情況下重讀分割槽。

image.png

image.png
=====================================
採用檔案建立

image.png
肆、編寫指令碼計算/etc/passwd檔案中第10個使用者和第20個使用者id號之和。
#!/bin/bash users1=$(cat /etc/passwd|wc -l) [ $users1 -lt 20 ] && echo "less than 20users" && exit 2 userid10=$(head -n 10 /etc/passwd | tail -n 1 | cut -f 3 -d ":") userid20=$(head -n 20 /etc/passwd | tail -n 1 | cut -f 3 -d ":") usersum=$[$userid10+$userid20] echo "the 10th user id is $userid10" echo "the 20th user id is $userid20" echo "the sum is $usersum"
執行結果如下

image.png
伍、將當前主機名儲存至hostName變數中,主機名如果為空,或者為localhost.localdomain則將設定為 www.magedu.com
#!/bin/bash hostName=$(hostname) [ "$hostName" == "localhost.localdomain" -o -z "hostName" -o -n "hostname" ] && hostnamectl set-hostname www.magedu.com;echo 'hostName='$hostName || echo "nothing to be change"
陸、編寫指令碼,通過命令列引數傳入一個使用者名稱,判斷id號是偶數還是奇數。
#!/bin/bash #第四周陸、編寫指令碼,通過命令列引數傳入一個使用者名稱,判斷id號是偶數還是奇數。 read -p "Enter a username: " usename id=$(cat /etc/passwd |grep $username |cut -f3 -d:) echo "The user \"$username\" id is $id" [ `expr $id % 2` -eq 0 ] && echo "this id is even number" || echo "this id is odd number"