溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

GPT,LVM概念以及shell腳本基礎(chǔ)

發(fā)布時間:2020-07-09 01:21:11 來源:網(wǎng)絡(luò) 閱讀:304 作者:不會運維 欄目:系統(tǒng)運維

GPT,LVM概念以及shell腳本基礎(chǔ)

  • 描述GPT是什么,應(yīng)該怎么使用
    1.GPT的全稱是Globally Unique Identifier Partition Table,意即GUID分區(qū)表,GUID 分區(qū)表 (GPT) 是作為 Extensible Firmware Interface (EFI) 計劃的一部分引入的。相對于以往 PC 普遍使用的主引導(dǎo)記錄 (MBR) 分區(qū)方案,GPT 提供了更加靈活的磁盤分區(qū)機(jī)制。分區(qū)指物理或邏輯磁盤上彼此連接的存儲空間,但提供功能時就像物理上分隔的磁盤一樣。對于系統(tǒng)固件和已安裝的操作系統(tǒng)來說,分區(qū)是可見的。操作系統(tǒng)啟動之前,對分區(qū)的訪問由系統(tǒng)固件控制,操作系統(tǒng)啟動后則由操作系統(tǒng)控制。
    2.具有以下優(yōu)點:
    (1)支持2TB以上的大硬盤;
    (2)每個磁盤的分區(qū)個數(shù)幾乎沒有限制(Windows系統(tǒng)最多只允許劃分128個分區(qū));
    (3)分區(qū)大小幾乎沒有限制。又是一個“幾乎”。因為它用64位的整數(shù)表示扇區(qū)號,即 = 18,446,744,073,709,551,616;
    (4)分區(qū)表自帶備份。在磁盤的首尾部分分別保存了一份相同的分區(qū)表,其中一份被破壞后,可以通過另一份恢復(fù);
    (5)循環(huán)冗余檢驗值針對關(guān)鍵數(shù)據(jù)結(jié)構(gòu)而計算,提高了數(shù)據(jù)崩潰的檢測幾率;
    (6)雖然MBR提供1字節(jié)分區(qū)類型代碼,但GPT使用一個16字節(jié)的全局唯一標(biāo)識符(GUID)值來標(biāo)識分區(qū)類型,這使分區(qū)類型更不容易沖突;
    (7)每個分區(qū)可以有一個名稱(不同于卷標(biāo))。
    3.要想使用GPT分區(qū)表必須是UEFI BIOS環(huán)境,UEFI和GPT相輔相成的,二者缺一不可,現(xiàn)在的服務(wù)器主板基本采用UEFI+BIOS共存模式,并且BIOS中集成UEFI啟動項,如果我們的系統(tǒng)盤大小超過了2T我們需要使用UEFI模式進(jìn)行系統(tǒng)安裝并進(jìn)行系統(tǒng)啟動,在對大于2T的非系統(tǒng)盤進(jìn)行分區(qū)時我們需要選擇GPT分區(qū)格式。
  • 創(chuàng)建一個10G的分區(qū),并格式化為ext4文件系統(tǒng):
    要求:(1)block大小為2048,預(yù)留空間20%,卷標(biāo)為MYDATA,
    (2)掛載至/mydata目錄,要求掛載時禁止程序自動運行,且不更新文件的訪問時間戳。
    (3)可開機(jī)自動掛載。
    (1)fdisk創(chuàng)建10G分區(qū)
    [root@localhost ~]# fdisk /dev/sda
    Welcome to fdisk (util-linux 2.23.2).
    Changes will remain in memory only, until you decide to write them.
    Be careful before using the write command.
    Command (m for help): n
    All primary partitions are in use
    Adding logical partition 6
    First sector (141940736-419430399, default 141940736): 
    Using default value 141940736
    Last sector, +sectors or +size{K,M,G} (141940736-419430399, default 419430399): +10G
    Partition 6 of type Linux and of size 10 GiB is set
    Command (m for help): w
    The partition table has been altered!
    Calling ioctl() to re-read partition table.
    WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
    The kernel still uses the old table. The new table will be used at
    the next reboot or after you run partprobe(8) or kpartx(8)
    Syncing disks.

    (2)mkfs創(chuàng)建文件系統(tǒng):

    [root@localhost ~]# mkfs.ext4 -b 2048 -m 20 -L MYDATA /dev/sda6/
    mke2fs 1.42.9 (28-Dec-2013)
    Could not stat /dev/sda6/ --- Not a directory
    [root@localhost ~]# mkfs.ext4 -b 2048 -m 20 -L MYDATA /dev/sda6
    mke2fs 1.42.9 (28-Dec-2013)
    Filesystem label=MYDATA
    OS type: Linux
    Block size=2048 (log=1)
    Fragment size=2048 (log=1)
    Stride=0 blocks, Stripe width=0 blocks
    655360 inodes, 5242880 blocks
    1048576 blocks (20.00%) reserved for the super user
    First data block=0
    Maximum filesystem blocks=273678336
    320 block groups
    16384 blocks per group, 16384 fragments per group
    2048 inodes per group
    Superblock backups stored on blocks: 
    16384, 49152, 81920, 114688, 147456, 409600, 442368, 802816, 1327104, 
    2048000, 3981312
    Allocating group tables: done                            
    Writing inode tables: done                            
    Creating journal (32768 blocks): done
    Writing superblocks and filesystem accounting information: done   

    (3)掛載至/mydata目錄,要求掛載時禁止程序自動運行,且不更新文件的訪問時間戳。并設(shè)置開機(jī)自動掛載

    [root@localhost ~]# mkdir -p /mydata
    [root@localhost ~]# vim /etc/fstab
    /dev/sda6                        /mydata                 ext4    defaults,noatime,noexec 0 0
    [root@localhost ~]# mount -a
    [root@localhost ~]# df -h
    Filesystem      Size  Used Avail Use% Mounted on
    /dev/sda2        47G  5.2G   42G  12% /
    devtmpfs        523M     0  523M   0% /dev
    tmpfs           538M     0  538M   0% /dev/shm
    tmpfs           538M  7.8M  530M   2% /run
    tmpfs           538M     0  538M   0% /sys/fs/cgroup
    /dev/sda1       497M  151M  346M  31% /boot
    /dev/sda3        19G   39M   19G   1% /data
    tmpfs           108M  4.0K  108M   1% /run/user/42
    tmpfs           108M   32K  108M   1% /run/user/1000
    /dev/sr0        8.1G  8.1G     0 100% /run/media/wl/CentOS 7 x86_64
    tmpfs           108M     0  108M   0% /run/user/0
    /dev/sda6       9.8G   13M  7.8G   1% /mydata
  • 創(chuàng)建一個大小為1G的swap分區(qū),并啟用:
    [root@localhost ~]# fdisk /dev/sda 
    Welcome to fdisk (util-linux 2.23.2).
    Changes will remain in memory only, until you decide to write them.
    Be careful before using the write command.
    Command (m for help): n
    All primary partitions are in use
    Adding logical partition 7
    First sector (162914304-419430399, default 162914304): 
    Using default value 162914304
    Last sector, +sectors or +size{K,M,G} (162914304-419430399, default 419430399): +1G
    Partition 7 of type Linux and of size 1 GiB is set
    Command (m for help): t
    Partition number (1-7, default 7): 7
    Hex code (type L to list all codes): 82
    Changed type of partition 'Linux' to 'Linux swap / Solaris'
    Command (m for help): w
    The partition table has been altered!
    Calling ioctl() to re-read partition table.
    WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
    The kernel still uses the old table. The new table will be used at
    the next reboot or after you run partprobe(8) or kpartx(8)
    Syncing disks.
    [root@localhost ~]# mkswap /dev/sda7 
    Setting up swapspace version 1, size = 1048572 KiB
    no label, UUID=ba42d9ae-41a0-4829-bd14-a32834cf6ec9
    [root@localhost ~]# swapon /dev/sda7
    [root@localhost ~]# vim /etc/fstab 
    /dev/sda7                                 swap                    swap    defaults      0  0 
  • 編寫腳本計算/etc/passwd文件中第10個用戶和第20個用戶id號之和
    #!/bin/bash
    #判斷系統(tǒng)是否存在20個用戶
    id_sum=$( cat /etc/passwd | wc -l )
    [ ${id_sum} -lt 20 ] && echo "用戶個數(shù)小于20" && exit 2
    id1=$(head -10 /etc/passwd | tail -1 | cut  -d: -f3)
    id2=$(head -20 /etc/passwd | tail -1 | cut -d: -f3)
    idsum=$[${id1}+${id2}]
    echo "Ths sum is $idsum"
    [root@localhost scripts]# bash -x  idsum2.sh 
    ++ cat /etc/passwd
    ++ wc -l
    + id_sum=58
    + '[' 58 -lt 20 ']'
    ++ head -10 /etc/passwd
    ++ tail -1
    ++ cut -d: -f3
    + id1=11
    ++ head -20 /etc/passwd
    ++ tail -1
    ++ cut -d: -f3
    + id2=997
    + idsum=1008
    + echo 'Ths sum is 1008'
    Ths sum is 1008
  • 將當(dāng)前主機(jī)名保存至hostName變量中,主機(jī)名如果為空,或者為
    localhost.localdomain則將設(shè)置為www.magedu.com
    #!/bin/bash
    hostName=$(hostname)
    [ -z "${hostName}" -o "${hostName}" == "localhost.localdomain" -o "${hostName}" == "locahost" ] && hostnamectl set-hostname www.magedu.com || echo "主機(jī)名:${hostName},不要修改"
    [root@localhost scripts]# bash -x hostname.sh 
    ++ hostname
    + hostName=localhost.localdomain
    + '[' -z localhost.localdomain -o localhost.localdomain == localhost.localdomain -o   localhost.localdomain == locahost ']'
    + hostnamectl set-hostname www.magedu.com
  • 編寫腳本,通過命令行參數(shù)傳入一個用戶名,判斷id號是偶數(shù)還是奇數(shù)
    #!/bin/bash
    #腳本判斷參數(shù)用戶ID奇偶類型
    [ $# -lt 1 ] && echo "At least a username " && exit 1
    ! id $1 && echo "No such user" && exit 2
    userid=$(id -u $1)
    useri=$[${userid}%2]
    if [ ${useri} -eq 0 ];then
    echo "$1 ID 是偶數(shù)"
    else
    echo "$1 ID 是奇數(shù)"
    fi
    root@localhost scripts]# bash -xv   id.sh  user3
    #!/bin/bash
    #腳本判斷參數(shù)用戶ID奇偶類型
    [ $# -lt 1 ] && echo "At least a username " && exit 1
    + '[' 1 -lt 1 ']'
    ! id $1 && echo "No such user" && exit 2
    + id user3
    uid=1003(user3) gid=1003(user3) groups=1003(user3)
    userid=$(id -u $1)
    ++ id -u user3
    + userid=1003
    useri=$[${userid}%2]
    + useri=1
    if [ ${useri} -eq 0 ];then
     echo "$1 ID 是偶數(shù)"
    else
     echo "$1 ID 是奇數(shù)"
    fi
    + '[' 1 -eq 0 ']'
    + echo 'user3 ID 是奇數(shù)'
    user3 ID 是奇數(shù)
  • lvm基本應(yīng)用以及擴(kuò)展縮減實現(xiàn)
    (1) LVM原理描述
    LVM是(Logical Volume Manager) 邏輯卷管理的簡寫,它是Linux環(huán)境下對磁盤分區(qū)進(jìn)行管理的一種機(jī)制。LVM是建立在硬盤和分區(qū)之上的一個邏輯層,屏蔽了底層磁盤布局,便于動態(tài)調(diào)整磁盤容量來提高磁盤分區(qū)管理的靈活性。它可以將一個或多個底層塊設(shè)備組織成一個邏輯設(shè)備的卷組,管理員可以在卷組上隨意創(chuàng)建邏輯卷組(logical volumes),并進(jìn)一步在邏輯卷組上創(chuàng)建文件系統(tǒng),管理員通過LVM可以方便的調(diào)整存儲卷組的大小,并且可以對磁盤存儲按照組的方式進(jìn)行命名、管理和分配
    GPT,LVM概念以及shell腳本基礎(chǔ)

(2)LVM 基本術(shù)語:

 (a)物理存儲介質(zhì)(PhysicalStorageMedia):
            指系統(tǒng)上最底層的物理存儲設(shè)備:磁盤,例如:/dev/sda、/dev/sdb等
(b)物理卷(Physical Volume, PV):
       指磁盤、磁盤分區(qū)或RAID設(shè)備,使用LVM前需要先將之制作成便于識別的物理卷PV
(c)卷組(Volume Group, VG):
         卷組由一個或多個物理卷PV組成,在卷組之上可創(chuàng)建一個或多個邏輯卷LV。卷組VG類似于非LVM系統(tǒng)的 物理磁盤
(d)邏輯卷(Logical Volume, LV):
        建立在卷組VG之上,相當(dāng)于邏輯分區(qū),可在邏輯卷LV上進(jìn)行一系列操作(例如:格式化、掛載等)。 邏輯卷LV類似于非LVM系統(tǒng)的磁盤分區(qū)
(d)物理擴(kuò)展塊(Physical Extent, PE):
        當(dāng)物理卷PV加入某一卷組VG后即被劃分為基本單元PE,PE是LVM尋址的最小單元。PE的大小是可配置的,默認(rèn)為4M。
(e)邏輯擴(kuò)展塊(Logical Extent, LE):
        卷組VG將PE劃分給邏輯卷LV,在邏輯卷LV中的PE稱為LE。在同一卷組VG中,PE和LE大小相同,且相互對應(yīng)。LE也是LVM的最小尋址單位。

(3)LVM基本操作:
(a)pv管理工具:

pvs:簡要pv信息顯示
pvdisplay:顯示pv的詳細(xì)信息
pvcreate /dev/DEVICE: 創(chuàng)建pv

(b)vg管理工具:

vgs
vgdisplay
vgcreate  [-s #[kKmMgGtTpPeE]] VolumeGroupName  PhysicalDevicePath [PhysicalDevicePath...]
vgextend  VolumeGroupName  PhysicalDevicePath [PhysicalDevicePath...]
vgreduce  VolumeGroupName  PhysicalDevicePath [PhysicalDevicePath...]
先做pvmove
vgremove

(c)lv管理工具:

lvs
lvdisplay
lvcreate -L #[mMgGtT] -n NAME VolumeGroup
vremove /dev/VG_NAME/LV_NAME

(d)擴(kuò)展邏輯卷:

    # lvextend -L [+]#[mMgGtT] /dev/VG_NAME/LV_NAME
    # resize2fs /dev/VG_NAME/LV_NAME(e)縮減邏輯卷:
    # umount /dev/VG_NAME/LV_NAME# e2fsck -f /dev/VG_NAME/LV_NAME
    # resize2fs /dev/VG_NAME/LV_NAME #[mMgGtT]
    # lvreduce -L [-]#[mMgGtT] /dev/VG_NAME/LV_NAME
    # mount
向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI