馬哥linux作業--第五週
阿新 • • 發佈:2018-12-10
Q1:描述GPT
是什麼,應該怎麼使用。
GPT:
GUID Partition Table
(全域性唯一標識磁碟分割槽表),特點如下:
- 支援2T以的大硬碟,按每個扇區512byte計算,最大支援2^64*512byte的容量。
- 每個磁碟的分割槽個數不受限制(但Windows自己限制最多128個分割槽)。
- 分割槽表自帶備份,在磁碟首尾各儲存一份分割槽表,其中一份損壞,可用另一份恢復。
- 支援唯一的分割槽ID,每個分割槽都有一個唯一的名字。
- 在磁碟的第一個資料塊中有類似MBR的標記,叫PMBR,作用是保戶分割槽表。
Legacy BIOS
搭配GPT
使用時,因BIOS
無法識別GPT
分割槽,所以只能用於儲存資料,不能裝載作業系統。UEFI
搭配GPT
使用時,可裝載作業系統。
Q2:建立一個10G
的分割槽,並格式化為ext4
檔案系統。要求:
1. block
大小為2048
,預留空間20%
,卷標為MYDATA
。
2. 掛載至/mydata
目錄,要求掛載時禁止程式自動執行
,且不更新檔案的訪問時間戳
。
3. 可開機自動掛載。
[~]# fdisk /dev/sdb Command (m for help): n Select (default p): p Partition number (1-4, default 1): 1 First sector (2048-41943039, default 2048): Last sector, +sectors or +size{K,M,G} (2048-41943039, default 41943039): +10G Command (m for help): w [~]# partprobe [~]# mke2fs -t ext4 -b 2048 -m 20 -L MYDATA /dev/sdb1 [~]# mkdir /mydata [~]# mount -o noatime,noexec /dev/sdb1 /mydata 在/etc/fstab中追加如下內容: /dev/sdb1 /mydata ext4 defaults,noatime,noexec 0 0
Q3:建立一個大小為1G
的swap
分割槽,並啟用。
[~]# fdisk /dev/sdb Command (m for help): n Select (default p): p Partition number (2-4, default 2): 2 First sector (20973568-41943039, default 20973568): Last sector, +sectors or +size{K,M,G} (20973568-41943039, default 41943039): +1G Command (m for help): t Partition number (1,2, default 2): 2 Hex code (type L to list all codes): 82 Command (m for help): w [~]# partprobe [~]# mkswap /dev/sdb2 [~]# swapon /dev/sdb2
Q4:編寫指令碼計算/etc/passwd/檔案中第10
個使用者和第20
個使用者id號
之和。
#! /usr/bin/env bash
uid1=`head -10 /etc/passwd | tail -1 | cut -d ':' -f 3`
uid2=`head -20 /etc/passwd | tail -1 | cut -d ':' -f 3`
sum=$[$uid1+$uid2]
echo "sum = $sum"
Q5:將當前主機名儲存至hostName
變數中,主機名如果為空
,或者為localhost.localdomain
,則將設定為www.magedu.com
。
[ -z "$hostName" -o "$hostName" == "localhost.localdomain" ] && hostname www.magedu.com
Q6:編寫指令碼,通過命令列引數傳入一個使用者名稱,判斷id號
是偶數還是奇數。
#! /usr/bin/env bash
if [ $# -ne 1 ]; then
echo "Usage: $0 USERNAME"
exit -1
fi
uid=`id -u $1 2>/dev/null`
if [ $? -ne 0 ]; then
echo "user $0 is not exists"
exit -2
fi
[ $[$uid % 2] -eq 0 ] && echo "the uid of $1 is even" || echo"the uid of $1 is odd"
Q7:lvm
基本應用及擴充套件縮減實現。
- 準備工作:先建立兩個分割槽
/dev/sdb[12]
,大小分別為3G,10G。 - 建立一個2G大小的lvm,並格式化為ext4檔案系統。
[~]# pvcreate /dev/sdb1 [~]# vgcreate myvg /dev/sdb1 [~]# lvcreate -n mylv -L 2G myvg [~]# mke2fs -t ext4 /dev/myvg/mylv
- 將該lvm擴容到5G
[~]# pvcreate /dev/sdb2 [~]# vgextend myvg /dev/sdb2 [~]# lvextend -L +3G /dev/myvg/mylv [~]# resize2fs /dev/myvg/mylv
- 將該lvm縮容到1G
[~]# resize2fs /dev/myvg/mylv 1G [~]# e2fsck -f /dev/myvg/mylv [~]# lvreduce -L 1G /dev/myvg/mylv
- 解除安裝lvm
[~]# lvremove /dev/myvg/mylv [~]# vgremove myvg [~]# pvremove /dev/sdb1 [~]# pvremove /dev/sdb2