1. 程式人生 > >Linux初級運維(十二)——磁碟及檔案系統管理

Linux初級運維(十二)——磁碟及檔案系統管理

一、磁碟管理

       1、 機械式硬碟:

            U盤、光碟、軟盤、硬碟、磁帶

       2、 格式化:(Partition) 建立檔案系統

        MBR:主引導記錄 (512byte)

             Master Boot Record

             Main Boot Record

                 446bye:BootLoader, 是一個程式。引導載入器

                  64bytes:

                     16bytes:標識一個分割槽

                   2bytes:Magic Number

                        標記MBR是否有效。

    3、硬連線和符號連線

        硬連線:是指兩個儲存塊指向一個引導號

        符號連線:(又叫軟連線)是指一個檔案指向另外一個檔案

        建立連線  :ln [-s -v]  SRC (原始檔)  DEST(目標檔案)

           ln SRC   DEST   硬連線

            ln -s SRC DEST  軟連線

        硬連結特點:    

                1、只能對檔案建立,不能應用於目錄;

                2、不能跨檔案系統;

                3、建立硬連結會增加檔案被連結的次數;


        符號連結:

                1、可應用於目錄;

                2、可以跨檔案系統;

                3、不會增加被連結檔案的連結次數;

                4、其大小為指定的路徑所包含的字元個數;

du:

    -s  檢視檔案的大小


    -sh  檢視目錄的總容量


df : 顯示整個磁碟的分割槽情況

            image.png    

        image.png

        df -p -i

二、裝置檔案

        b:塊裝置   按塊為單位,隨機訪問的裝置  (硬碟)

        c:字元裝置   按字元為單位,線性裝置  (鍵盤)

        /dev 

            主裝置號:(major number)   標識裝置型別

            次裝置號:(minor number)   標識同一種類型中不同裝置


        mknod

        mknod [OPTION]... NAME TYPE [MAJOR MINOR]

            -m MODE


            硬碟裝置的裝置檔名:

            IDE,ATA: hd

            SATA:sd

            SCSI:sd

            USB:sd        

                    a,b,c,...  來區別同一型別下的不同裝置

            IDE:

                    第一個IDE口:主、從

                            /dev/hda  , /dev/hdb

                    第二個IDE口:主、從

                            /dev/hdc , /dev/hdd


          hda:

                hda1:第一個分割槽

                hda2:第二個分割槽

                hda3:第三個分割槽

                hda4:

                hda5:第一個邏輯分割槽


檢視當前系統識別了幾塊硬碟:  fdisk -l  [/dev/to/some_device_file]

        image.png

        

三、Linux支援的檔案系統

     1、管理磁碟分割槽:

        fdisk /dev/sda

            p:顯示當前硬體的分割槽,包括沒有儲存的改動

            n:建立新分割槽

                    e:擴充套件分割槽

                    p:主分割槽

            d:刪除一個分割槽

            w:儲存退出

            q:不儲存退出

            t:修改分割槽型別

                    L:

            l:顯示所有支援的所有型別

    2、檔案系統管理

        格式化分割槽:重新建立檔案系統會損壞原有檔案


        mkfs:make file systemc

               -t FSTYPE 

            檔案系統型別:

                    ext2

                    ext3

        cat /proc/filesystems:檢視當前核心所支援檔案系統型別:

        image.png

    3、專門管理ext系列檔案:

        mke2fs:    

                -j:建立ext3 型別檔案系統

                -b BLOCK_SIZE : 指定塊大小,預設為 4096  可以取值為 1024  或2048或4096

                -L  LABEL:指定分割槽卷標

                -m # :指定預留給超級使用者的塊數百分比

                - i   #:用於指定為多少位元組的空間建立一個 inode  預設為 8192  ,這裡給出的數值應該為塊大小的2^n 倍。     

                -N :指定inode個數;

                -F :強制建立檔案系統

                -E:使用者指定額外檔案系統屬性;         

        4、blkid:查詢或檢視磁碟裝置的相關屬性

                    UUID

                    TYPE

                    LABEL  :檢視卷標

                image.png

                e2label :用於檢視或定義卷標

                    e2label  裝置檔案 卷標 :設定卷標

        5、tune2fs:調整檔案系統的相關屬性

                -j:不損害原有資料,將ext2 升級為ext3;

                -L  LABEL:設定或修改卷標

                -m # :調整預留百分比

                -r # :指定預留多少塊

                -o :設定預設掛載選項;

                -c # :指定掛載次數達到#次之後進行自檢, 0或-1 表示關閉此功能

              -i  # :每掛載使用多少天后進行自檢,0或-1  表示關閉此功能

                -l: 顯示超級塊中的資訊;


dumpe2fs:顯示檔案屬性資訊

        -h :只顯示超級塊的資訊


fsck :檢查並修復Linux檔案系統

        -t FSTYPE :指定檔案系統型別

        -a :自動修復

e2fsck :專用於修復ext2/ext3 檔案系統

        -f :強制檢查;

        -p:自動修復

        

        

四、掛載與解除安裝

        掛載:將新的檔案系統關聯至當前根檔案系統

        解除安裝:將新的檔案系統從當前根檔案系統中移除。

        mount:掛載    

            mount 裝置 掛載點

            裝置:

                裝置檔案: /dev/sda5

                卷標:LABEL=“”

                UUID: UUID=“”

            掛載點:目錄

                1、此目錄沒有被其他程序使用

                2、目錄得事先存在

                3、目錄中的原有的檔案將會被暫時隱藏。

mount:顯示當前系統已經掛載的裝置及掛載點

mount [options] [-o options] DEVICE MOUNT_POINT

        -a:表示掛載/etc/fstab檔案中定義的所有檔案系統

        -n:預設情況下,mount命令每掛載一個裝置,都會把掛載的裝置資訊儲存至/etc/mtab檔案;使用-n選項意味著掛載裝置時,不把資訊寫入此檔案。

        -t FSTYPE:指定正在掛載裝置上的檔案系統的型別;不適用此選項事, mount會呼叫blkid命令獲取對應檔案系統的型別;

        -r:只讀掛載,掛載光碟時,常用此選項。

        -w:讀寫掛載,一般預設是讀寫掛載

        -o:指定額外的掛載選項,也既指定檔案系統啟用的屬性;

            remount:重新掛載當前檔案系統

            ro:掛載為只讀

            rw:讀寫掛載      


掛載完成後,要通過掛載點訪問對應檔案系統上的檔案。

    umount:解除安裝某檔案系統

        umount 裝置

        umount  掛載點

        解除安裝注意事項:

            掛載的裝置沒有程序使用;

    練習題:

     1、調整其預留百分比為3%

            tune2fs -m 3 -L DATA /dev/sda7

    2、以重新掛載的方式掛載此檔案系統為不更新訪問時間戳,並驗證其效果

            stat /backup/inittab

            cat /backup/inittab

            stat

            

            mount -o remount,noatime /backup

            cat

            stat

    3、對此檔案系統強行做一次檢測

            e2fsck -f /dev/sda7

    4、刪除複製而來的所有檔案,並將此檔案系統重新掛載為同步(sync);而後在此複製/etc目錄中的所有檔案至此掛載點,體驗其效能變化:

            rm -rf /dev/sda7

            mount -o remount,sync /backup

            cp -r /etc/* /backup

五、swap分割槽

        free -m

    fdisk命令中,調整分割槽型別為82:

    建立交換分割槽:

     mkswap /dev/sda8

          -L  LABEL

     swapon /dev/sda8  :啟用這個分割槽的swap

     swapoff /dev/sda8 :停用這個分割槽的swap


迴環裝置:

    loopback:使用軟體來模擬實現硬體

  

dd命令:轉化並複製一個檔案

    if=輸入資料的來源

    of=資料儲存目標

    bs-1

    count=2

    seek=# :建立資料檔案時,跳過的空間大小;


dd if=/dev/sad of=/mnt/usb/mbr.backup bs=512 count=1

dd if =/mnt/usb/mbr.backup of=/dev/sda bs=512 count=1


cat /dev/cdrom > /root/rhe15.iso  製作映象


mount命令:可以掛載iso映象:

mount  DEVICE MOUNT_POINT

        -o loop: 掛載本地迴環裝置,因此可以掛載映象


mount /dev/sda5 /mnt/test


檔案系統的配置檔案: /etc/fstab

image.png

    os在初始時,會自動掛載此檔案中定義的每個檔案系統

要掛載的裝置    掛載點   檔案系統型別   掛載選項   轉儲頻率(每多少天做一次完全備份)   檔案系統檢測次序(只有根可以為1,0表示不檢查)

/dev/sda5       /mnt/test     ext3          defaults    0     0


mount -a :掛載/etc/fstab 檔案中定義的所有檔案系統


fuser:驗證程序正在使用的檔案或套接字檔案

        -v:檢視某檔案上正在執行的程序

        -k:

        -m

        

        fuser -km MOUNT_POINT :終止正在訪問此掛載點的所有程序。

        

    練習:

    1、建立一個5G的分割槽,檔案系統為ext3,卷標為MYDATA,塊大小為 1024,預留管理空間為磁碟分割槽的3%,要求開機後可以自動掛載至/data目錄,並且自動掛載的裝置要使用卷標進行引用:

    2、建立一個本地迴環檔案/var/swaptemp/swapfile來用於swap,要求大小為 512MB,卷標為SWAP—FILE ,且開機自動啟用此交換裝置:

        mkdir /var/swaptemp

        dd if=/dev/zero of=/var/swaptemp/swapfile bs=1M count=512

        mkswap LABLE=SWAP-FILE /var/swaptemp/swapfile

        /etc/fstab

        /var/swaptemp/swapfile     swap   swap    defaults   0   0

    3、上述第一問,如何讓其自動掛載的同時啟用ACL功能:

        /etc/fstab

        LABEL=‘MYDATA’     /data    ext3    defaults,acl   0   0


六、壓縮、解壓縮命令

    壓縮格式:gz ,bz2 ,xz ,zip ,Z

    壓縮演算法:演算法不同,壓縮比也會不同

    

    gzip: .gz

            gzip  /PATH/TO/SOMEFILE : 壓縮完成後會刪除原檔案

                -d:表示解壓縮,相當於 gunnzip 

                -# :1-9 ,指定壓縮比,預設是6

    gunzip:

            gunzip  /PATH/TO/SOMEFILE.gz :解壓完成後會刪除原檔案

    zcat /PATH/TO/SOMEFILE.gz  : 不解壓的情況下,檢視檔案的內容


    bzip2 : .bz2

            比gzip有著更大壓縮比的壓縮工具,使用格式近似

                    bzip2 /PATH/TO/SOMEFILE

                        -d:解壓縮

                        -#:1-9,預設是6

                        -k:壓縮時保留原檔案

                    bunzip2 /PATH/TO/SOMEFILE.bz2

            bzcat /PATH/TO/SOMEFILE.bz2 :不解壓的情況下,檢視檔案的內容

    

xz:  .xz

        xz  /PATH/TO/SOMEFILE

                -d:表示解壓縮

                -# :1-9,預設是6

                -k :壓縮時保留原檔案

            unxz:表示解壓縮

        xzcat:表示不解壓檢視檔案內容

        

zip:既歸檔又壓縮的工具

        zip FILENAME.zip  FILE1  FILE2 ... : 壓縮後不刪除原始檔

        unzip FILENAME.zip


archive: 歸檔,歸檔本身並不意味著壓縮

    

tar:歸檔工具, .tar

        -c:建立歸檔檔案

        -f FILE.tar  :操作的歸檔檔案

        -x :展開歸檔,還原歸檔

        --xattrs :歸檔時,保留檔案的擴充套件性資訊

        -t :不展開歸檔,直接檢視歸檔了哪些檔案

        -zcf:歸檔並呼叫gzip壓縮

        -zxf:呼叫gzip解壓縮並展開歸檔


練習:寫一個指令碼

    從鍵盤讓使用者輸入幾個檔案,指令碼能夠將此幾個檔案歸檔壓縮成一個檔案:

        read:

            -p “PROMPT”:給出提示

        image.png   


七、while語句

    指令碼程式設計:

            順序結構

            選擇結構

                if

                case

            迴圈結構

                for

                while    

                until

    while迴圈: 適用於迴圈次數未知的場景

        語法:

            while CONDITION;do

                statement

                ...

             done