linux運維筆記-linux文件系統
1,描述GPT是什麽,應該怎麽使用
GPT意為GUID分區表,他是一個逐漸取代MBR的新標準。他最多可以支持128個GPT分區,而且你還不要創建擴展分區。
在MBR磁盤上,分區和啟動信息是保存在一起的。如果這部分數據被覆蓋或破壞,事情就麻煩了。相對的,GPT在整個磁盤上保存多個這部分信息的副本,因此它更為健壯,並可以恢復被破壞的這部分信息。GPT還為這些信息保存了循環冗余校驗碼(CRC)以保證其完整和正確——如果數據被破壞,GPT會發覺這些破壞,並從磁盤上的其他地方進行恢復。而MBR則對這些問題無能為力——只有在問題出現後,你才會發現計算機無法啟動,或者磁盤分區都不翼而飛了。
(1) 要求其block大小為2048, 預留空間百分比為2, 卷標為MYDATA, 默認掛載屬性包含acl;
fidsk劃分10G分區,partx命令強制內核重新讀磁盤分區表,cat /proc/partitions是否內核識別到新分區
[root@localhost ~]# fdisk /dev/sdb
歡迎使用 fdisk (util-linux 2.23.2)。
更改將停留在內存中,直到您決定將更改寫入磁盤。
使用寫入命令前請三思。
Device does not contain a recognized partition table
使用磁盤標識符 0x6cc70eda 創建新的 DOS 磁盤標簽。
命令(輸入 m 獲取幫助):n
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p): p
分區號 (1-4,默認 1):1
起始 扇區 (2048-41943039,默認為 2048):
將使用默認值 2048
Last 扇區, +扇區 or +size{K,M,G} (2048-41943039,默認為 41943039):+10G
分區 1 已設置為 Linux 類型,大小設為 10 GiB
命令(輸入 m 獲取幫助):w
[root@localhost ~]# partx -a /dev/sdb1
partx: /dev/sdb: error adding partition 1
major minor #blocks name
8 32 20971520 sdc
8 0 125829120 sda
8 1 512000 sda1
8 2 125316096 sda2
8 16 20971520 sdb
8 17 10485760 sdb1
8 48 20971520 sdd
11 0 1048575 sr0
253 0 52428800 dm-0
253 1 2097152 dm-1
253 2 70721536 dm-2
(2) mke2fs格式化文件系統為ext4,並指點定相關屬性
[root@localhost ~]# mke2fs -b 2048 -t ext4 -m 2 -L mydata /dev/sdb1
tune2fs設置掛載屬性
[root@localhost ~]# tune2fs -o acl /dev/sdb1
tune2fs 1.42.9 (28-Dec-2013)
[root@localhost ~]#
(3) 掛載至/data/mydata目錄,要求掛載時禁止程序自動運行,且不更新文件的訪問時間戳;
創建掛載點,掛載文件系統
[root@localhost ~]# mkdir -p /data/mydata
[root@localhost ~]# mount -L mydata -o noexec,noatime /data/mydata/
[root@localhost ~]#
(4)開機自動掛載啟動
編輯啟動文件/etc/fstab
See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/centos-root / xfs defaults 0 0
UUID=17adcced-6e01-4fd4-b919-dfa98a1c333b /boot xfs defaults 0 0
/dev/mapper/centos-home /home xfs defaults 0 0
/dev/mapper/centos-swap swap swap defaults 0 0
/dev/sdb1 /data/mydata ext4 defaults 0 0
3 創建一個大小為1G的swap分區,並創建好文件系統,並啟用之;
命令(輸入 m 獲取幫助):n
Partition type:
p primary (1 primary, 0 extended, 3 free)
e extended
Select (default p): p
分區號 (2-4,默認 2):2
起始 扇區 (20973568-41943039,默認為 20973568):
將使用默認值 20973568
Last 扇區, +扇區 or +size{K,M,G} (20973568-41943039,默認為 41943039):+1G
分區 2 已設置為 Linux 類型,大小設為 1 GiB
[root@localhost ~]# partx -a /dev/sdb
partx: /dev/sdb: error adding partitions 1-2
[root@localhost ~]# mkswap /dev/sdb2
正在設置交換空間版本 1,大小 = 1048572 KiB
無標簽,UUID=6d178552-44f0-479b-89eb-a7c72e0852f2
[root@localhost ~]# swapon /dev/sdb2
4 編寫一個腳本,計算第10個到第20個用戶的id之和
#!/bin/bash
declare -i sum=0
for i in sed -n ‘20,30p‘ /etc/passwd|awk -F ":" ‘{print $3}‘
;
do
let sum+=${i}
done
echo "id之和為${sum}"
5 將當前主機名保存到hostname變量中,主機名如果為空,或者為localhost改為nod2
hostnamectl set-hostname nod2
[root@nod2 ~]# echo $HOSTNAME
nod2
[root@nod2 ~]#編
6 編寫腳本,通過命令行參數傳入一個用戶名,判斷id號是偶數還是偶數還是奇數
#!/bin/bash
[ $# -lt 1 ] && echo "at least one username" && exit 1
! id $1 &>/dev/null && echo "no such user" && exit 2
id=$(id -u $1)
a=$(($id%2))
if [ $a -eq 0 ]; then
echo "偶數";
else
echo "奇數";
fi
7 lvm基本應用及擴展縮減實現
(1)PV管理工具:
pvs: 簡要pv信息顯示
pvdisplay: 顯示pv的詳細信息
pvcreate /dev/DEVICE: 創建pv
pvremove /dev/PV_NAME:移除PV
(2)VG管理工具:
vgs: 簡要顯示vg信息
vgdisplay:顯示vg的詳細信息
vgcreate [-s PE_SIZE[kKmMgGtTpPeE]] VG_NAME /dev/DEVICE : 創建vg
vgextend VG_NAME /dev/DEVICEE: vg擴展
vgreduce VG_NAME /dev/DEVICE: 縮減vg,需要先做pvmove
vgremove /dev/VG_NAME:vg移除
(3)V管理工具:
lvs: 簡要顯示lv信息
lvdisplay:詳細顯示lv信息
lvcreate -L #[mMgGtT] -n LV_NAME VG_NAME : 創建lv
lvremove /dev/VG_NAME/LV_NAME: 移除lv
3.1擴展邏輯卷步驟:
lvextend -L [+]#[mMgGtT] /dev/VG_NAME/LV_NAME: 擴展物理邊界
resize2fs /dev/VG_NAME/LV_NAME (EXT系列的文件格式):修改邏輯邊界
3.2縮減邏輯卷步驟:
umount /dev/VG_NAME/LV_NAME: 先卸載LV
e2fsck -f /dev/VG_NAME/LV_NAME: 強制檢測和修復文件系統
resize2fs /dev/VG_NAME/LV_NAME #[mMgGtT]:縮減邏輯邊界
lvreduce -L [-]#[mMgGtT] /dev/VG_NAME/LV_NAME:縮減物理邊界
mount: 重新掛載lv
(4)snapshot
快照就是某一時刻立即創建一個對原卷文件元數據的監視器,當原卷上文件元數據要變化的時候,先把原文件復制一份到快照卷上,而沒有變化的就指向原卷上的文件數據。
快照的相關命令:
lvcreate -L #[mMgGtT] -p r -s -n SNAPSHOT_LV_NAME ORIGINAL_NAME: 創建一個只讀的快照
linux運維筆記-linux文件系統