馬哥Linux雲計算全程班第4周作業(20190715-20190721)

1、描述GPT是什麼,應該怎麼使用。
GPT的全稱是Globally Unique Identifier Partition Table,意即GUID分區表,GUID 分區表 (GPT) 是作爲 Extensible Firmware Interface (EFI) 計劃的一部分引入的。含義爲“全局唯一標識磁盤分區表”,是一個實體硬盤的分區表的結構佈局的標準。它是可擴展固件接口(EFI)標準(被Intel用於替代個人計算機的BIOS)的一部分,被用於替代BIOS系統中的一64bits來存儲邏輯塊地址和大小信息的主開機紀錄(MBR)分區表。相對於以往 PC 普遍使用的主引導記錄 (MBR) 分區方案,GPT 提供了更加靈活的磁盤分區機制。分區指物理或邏輯磁盤上彼此連接的存儲空間,但提供功能時就像物理上分隔的磁盤一樣。對於系統固件和已安裝的操作系統來說,分區是可見的。操作系統啓動之前,對分區的訪問由系統固件控制,操作系統啓動後則由操作系統控制。

它具有如下優點:
1、支持2TB以上的大硬盤。
2、每個磁盤的分區個數幾乎沒有限制(Windows系統最多隻允許劃分128個分區)。
3、分區大小幾乎沒有限制。又是一個“幾乎”。因爲它用64位的整數表示扇區號,即 = 18,446,744,073,709,551,616。
4、分區表自帶備份。在磁盤的首尾部分分別保存了一份相同的分區表,其中一份被破壞後,可以通過另一份恢復;
5、循環冗餘檢驗值針對關鍵數據結構而計算,提高了數據崩潰的檢測機率;
6、 雖然MBR提供1字節分區類型代碼,但GPT使用一個16字節的全局唯一標識符(GUID)值來標識分區類型,這使分區類型更不容易衝突;
7、每個分區可以有一個名稱(不同於卷標)。

要想使用GPT分區表必須是UEFI BIOS環境,UEFI和GPT相輔相成的,二者缺一不可,現在的服務器主板基本採用UEFI+BIOS共存模式,並且BIOS中集成UEFI啓動項,如果我們的系統盤大小超過了2T我們需要使用UEFI模式進行系統安裝並進行系統啓動,在對大於2T的非系統盤進行分區時我們需要選擇GPT分區格式。
2、創建一個10GB的分區,並格式化爲ext4文件系統。要求:
(1)block大小爲2048,預留空間20%,卷標爲MYDATA
(2)掛載至/mydata目錄,要求掛載時禁止程序自動運行,且不更新文件的訪問時間戳;
(3)可開機自動掛載。

創建過程如下:
創建一個10GB的分區,並格式化爲ext4文件系統
[root@bccobbler ~]# fdisk /dev/sdb
Command (m for help): n
Select (default p): p
Partition number (1-4, default 1): 1
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-41943039, default 41943039): +10G
Command (m for help): w
[root@bccobbler ~]# partx /dev/sdb
NR START END SECTORS SIZE NAME UUID
1 2048 20973567 20971520 10G
[root@bccobbler ~]# mke2fs -t ext4 -b 2048 -m 20 -L MYDATA /dev/sdb1

掛載至/mydata目錄,掛載時禁止程序自動運行,且不更新文件的訪問時間戳;

[root@bccobbler /]# ls -l /dev/disk/by-uuid/ |grep sdb1
lrwxrwxrwx 1 root root 10 Jul 23 05:07 0be6c28c-b410-47e9-8e03-d4b2b7bfab89 -> ../../sdb1
[root@bccobbler /]# mount -o auto,noatime,noexec /dev/sdb1 /mydata

開機自動掛載
[root@bccobbler ~]# echo "UUID=0be6c28c-b410-47e9-8e03-d4b2b7bfab89 /mydata ext4 auto,noexec,noatime 0 0" >> /etc/fstab
[root@bccobbler ~]# tail -1 /etc/fstab
UUID=0be6c28c-b410-47e9-8e03-d4b2b7bfab89 /mydata ext4 auto,noexec,noatime 0 0

3、創建一個大小爲1G的swap分區,並啓動
[root@bccobbler /]# fdisk /dev/sdb
Disk /dev/sdb: 21.5 GB, 21474836480 bytes, 41943040 sectors
Device Boot Start End Blocks Id System
/dev/sdb1 2048 20973567 10485760 83 Linux
Command (m for help): n
Partition type:
p primary (1 primary, 0 extended, 3 free)
e extended
Select (default p): p
Partition number (2-4, default 2): 2
First sector (20973568-41943039, default 20973568):
Using default value 20973568
Last sector, +sectors or +size{K,M,G} (20973568-41943039, default 41943039): +1G
Partition 2 of type Linux and of size 1 GiB is set

Command (m for help): t
Partition number (1,2, default 2): 2
Hex code (type L to list all codes): L
Hex code (type L to list all codes): 82
Changed type of partition 'Linux' to 'Linux swap / Solaris'

Command (m for help): p
Disk label type: dos
Disk identifier: 0x5f7f3637

Device Boot Start End Blocks Id System
/dev/sdb1 2048 20973567 10485760 83 Linux
/dev/sdb2 20973568 23070719 1048576 82 Linux swap / Solaris

Command (m for help): w
The partition table has been altered!

[root@bccobbler /]# partx /dev/sdb
NR START END SECTORS SIZE NAME UUID
1 2048 20973567 20971520 10G
2 20973568 23070719 2097152 1G

[root@bccobbler /]# partprobe /dev/sdb
sdb sdb1 sdb2
[root@bccobbler /]# partprobe /dev/sdb
[root@bccobbler /]# mkswap -L myswap /dev/sdb2
Setting up swapspace version 1, size = 1048572 KiB
LABEL=myswap, UUID=e97501cf-a097-41f2-9876-6ef48a7070b3
[root@bccobbler /]# swapon /dev/sdb2
[root@bccobbler /]# free -m
total used free shared buff/cache available
Mem: 1870 134 1575 9 160 1581
Swap: 3071 0 3071
[root@bccobbler /]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
└─sdb2 8:18 0 1G 0 part [SWAP]
sr0 11:0 1 4.1G 0 rom

4、編寫腳本計算/etc/passwd文件中第10個用戶和第20個用戶id號之和.

[root@bccobbler ~]# vim sum.sh
#!/bin/bash
#

id10=$(head -10 /etc/passwd |tail -1 |cut -d: -f3)
id20=$(head -20 /etc/passwd |tail -1 |cut -d: -f3)
echo "第10個用戶的ID爲:$id10"
echo "第20個用戶的ID爲:$id20"
id_sum=$[$id10+$id20]
echo "The user id sum:$id_sum."
[root@bccobbler ~]# sh sum.sh
第10個用戶的ID爲:11
第20個用戶的ID爲:89
The user id sum:100
5、將當前主機名保存至hostname變量中,主機名若爲空,或者爲localhost.localdomain則將設置爲www.magedu.com;

[root@bccobbler ~]# hostname=$(hostname)
[root@bccobbler ~]# [ -z "$hostname" -o "$hostname"=="localhost.localdomain" -o "$hostname"=="localhost" ] && hostname www.magedu.com
[root@bccobbler ~]# hostname
www.magedu.com
6、編寫腳本,通過命令行參數傳入一個用戶名,判斷id號是偶數還是奇數;
[root@bccobbler ~]# cat /etc/passwd |grep oracle
oracle:x:5004:5006::/home/oracle:/bin/bash
[root@bccobbler ~]# cat /etc/passwd |grep user2
user2:x:5011:5013::/home/user2:/bin/bash
[root@bccobbler ~]# more ceshu.sh
#!/bin/bash
usrId=$(id -u $1)
if [ $[$usrId % 2 ] -eq 0 ];then
echo "$1\'s id is even number"
else
echo "$1\'s id is odd number"
fi

[root@bccobbler ~]# sh ceshu.sh oracle
oracle\'s id is even number
[root@bccobbler ~]# sh ceshu.sh user2
user2\'s id is odd number
7、lvm基本應用以及擴展縮減實現;
基本概念:
LVM是 Logical Volume Manager(邏輯卷管理)的簡寫,它由Heinz Mauelshagen在Linux 2.4內核上實現。LVM將一個或多個硬盤的分區在邏輯上集合,相當於一個大硬盤來使用,當硬盤的空間不夠使用的時候,可以繼續將其它的硬盤的分區加入其中,這樣可以實現磁盤空間的動態管理,相對於普通的磁盤分區有很大的靈活性。
物理卷(physical volume):物理卷就是指硬盤分區或從邏輯上與磁盤分區具有同樣功能的設備(如RAID),是LVM的基本存儲邏輯塊,但和基本的物理存儲介質(如分區、磁盤等)比較,卻包含有與LVM相關的管理參數。

卷組(Volume Group):LVM卷組類似於非LVM系統中的物理硬盤,其由物理卷組成。可以在卷組上創建一個或多個“LVM分區”(邏輯卷),LVM卷組由一個或多個物理卷組成。

邏輯卷(logical volume):LVM的邏輯卷類似於非LVM系統中的硬盤分區,在邏輯卷之上可以建立文件系統(比如/home或者/usr等)。

PE(physical extent):每一個物理卷被劃分爲稱爲PE(Physical Extents)的基本單元,具有唯一編號的PE是可以被LVM尋址的最小單元。PE的大小是可配置的,默認爲4MB。

LE(logical extent):邏輯卷也被劃分爲被稱爲LE(Logical Extents) 的可被尋址的基本單位。在同一個卷組中,LE的大小和PE是相同的,並且一一對應。

簡單來說就是:
PV:是物理的磁盤分區
VG:LVM中的物理的磁盤分區,也就是PV,必須加入VG,可以將VG理解爲一個倉庫或者是幾個大的硬盤。
LV:也就是從VG中劃分的邏輯分區

示例如下:
(1)新掛載硬盤,識別爲/dev/sdb,依次在/dev/sdb上創建3個lvm分區,大小爲3、6、5G,如下圖;

馬哥Linux雲計算全程班第4周作業(20190715-20190721)
馬哥Linux雲計算全程班第4周作業(20190715-20190721)
馬哥Linux雲計算全程班第4周作業(20190715-20190721)
(2)創建物理卷
馬哥Linux雲計算全程班第4周作業(20190715-20190721)
(3)創建卷組,並擴展卷組;
馬哥Linux雲計算全程班第4周作業(20190715-20190721)
馬哥Linux雲計算全程班第4周作業(20190715-20190721)
馬哥Linux雲計算全程班第4周作業(20190715-20190721)
(4)創建邏輯卷,並格式化
馬哥Linux雲計算全程班第4周作業(20190715-20190721)
(5)掛載邏輯卷,需要開機掛載時,添加入/etc/fstab末尾即可。
馬哥Linux雲計算全程班第4周作業(20190715-20190721)
(6)邏輯卷擴展,xfs邏輯卷擴展完畢後使用xfs_growfs擴展文件系統。
馬哥Linux雲計算全程班第4周作業(20190715-20190721)
馬哥Linux雲計算全程班第4周作業(20190715-20190721)
馬哥Linux雲計算全程班第4周作業(20190715-20190721)

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