9月01日課程做業(練習)-Linux文件系統管理

一、複習本次課程所講的內容;node

Linux磁盤管理  
    硬盤:硬盤是通用的叫法,其實硬盤和磁盤是同樣的,都是用來存東西的;還有磁帶、光盤、U盤等只是存儲的介質不同。    
        機械式硬盤    
        SSD固態硬盤linux

    機械式:  
        track磁道    
        每一個扇區(sector): 512bytes    
        磁柱(cylinder): 分區的基本單位;vim

        主引導記錄 MBR:Master Boot Record             512bytes  
                446: bootloader    
                64: filesystem allocation table    
                    16: 標識一個分區    
                2:55AAwindows

    磁盤的主引導扇區=磁盤的主引導記錄(MBR 446)+磁盤分區表(DPT 64) +結束符(55AA)網絡

bootload能夠安裝在磁盤的主引導記錄(MBR)或是分區的引導記錄(PBR,也叫DBR)    
(1)linux的bootload能夠安裝在二者上(MBR,PBR)      
(2)windows自行安裝的MBR只用做跳轉到指定的分區上,windows的bootloader 是安裝在分區的PBR上的dom

    磁盤接口類型:  
        IDE (ATA):133MB/s,/dev/hd    
        SCSI: 640MB/s    
        SATA:6Gbps    
        SAS:6Gbps    
        USB:480MB/s異步

        識別硬盤設備:/dev/sd  
            標記不一樣的硬盤設備:/dev/sd[a-z]    
            標記同一設備上的不一樣分區:/dev/sd[a-z][1-]    
                1-4: 主或擴展分區標識    
                5+:邏輯分區標識async

        設備文件:特殊文件  
            設備號:    
                major, minor    
                    major: 設備類型    
                    minor: 同一類型下的不一樣設備分佈式

            「塊」:block,隨機設備  
            「字符」:character,線性設備ide

            GPT

設備文件分爲兩種:塊設備文件(b)和字符設備文件(c)

設備文件通常存放在/dev目錄下,對常見設備文件做以下說明:

/dev/hd[a-t]:IDE設備

/dev/sd[a-z]:SCSI設備

/dev/fd[0-7]:標準軟驅

/dev/md[0-31]:軟raid設備

/dev/loop[0-7]:本地迴環設備

/dev/ram[0-15]:內存

/dev/null:無限數據接收設備,至關於黑洞

/dev/zero:無限零資源

/dev/tty[0-63]:虛擬終端

/dev/ttyS[0-3]:串口

/dev/lp[0-3]:並口

/dev/console:控制檯

/dev/fb[0-31]:framebuffer

/dev/cdrom => /dev/hdc

/dev/modem => /dev/ttyS[0-9]

/dev/pilot => /dev/ttyS[0-9]

/dev/random:隨機數設備

/dev/urandom:隨機數設備

    分區:分隔存儲空間爲多個小的空間,每一個空間可獨立使用文件系統;

    分區工具:  
        fdisk, parted, sfdisk

    fdisk工具的使用:  
        最多支持在一塊硬盤上的15個分區;

        分區管理子命令:  
            p: 顯示    
            n: 建立    
            d: 刪除    
            t: 修改分區ID    
            l: 列出全部支持ID類型    
            w: 保存退出    
            q: 放棄修改並退出    
            m: 獲取幫助

        建立完成以後,查看內核是否已經識別新的分區:  
            # cat /proc/partitions

            有三個命令可讓內核重讀磁盤分區表:  
                CentOS 5: partprobe [DEVICE]    
                CentOS 6,7:    
                    partx    
                    kpartx

                partx命令:  
                    partx DEVICE    
                    partx -a DEVICE    
                    partx -a -n M:N DEVICE    
                        M    
                        M:    
                        :N

   kpartx命令:  
  kpartx -af DEVICE 通知內核強制重讀分區表【對於一個已經存在的磁盤,內核是不會直接識別的】

             p_w_picpath

二、總結整理磁盤管理及文件系統管理中設計的各類命令的使用,並附註必定的示例;

    1)、查看系統分區狀況 

        p_w_picpath

    2)獲取fdisk參數信息的相關幫助

命令:fdisk /dev/sda  #進入fdisk操做環境

          m                        #打印幫助 列表

p_w_picpath

3)新建分區

按n #建立一個分區

Command (m for help): m    
Command action      
   a   toggle a bootable flag      
   b   edit bsd disklabel      
   c   toggle the dos compatibility flag      
   d   delete a partition      
   l   list known partition types      
   m   print this menu      
   n   add a new partition      
   o   create a new empty DOS partition table      
   p   print the partition table      
   q   quit without saving changes      
   s   create a new empty Sun disklabel      
   t   change a partition's system id      
   u   change display/entry units      
   v   verify the partition table      
   w   write table to disk and exit      
   x   extra functionality (experts only)

Command (m for help): n    
Command action      
   e   extended      
   p   primary partition (1-4)      
p      
Partition number (1-4): 3      
First cylinder (7063-26108, default 7063):      
Using default value 7063      
Last cylinder, +cylinders or +size{K,M,G} (7063-26108, default 26108): +10G   

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: 設備或資源忙.    
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.      

         重啓後生效。

linux文件系統管理

    文件系統:

    VFS:Virtual File System

    Linux:ext2,ext3,ext4,reiserfs,xfs,btrfs,swap    
    光盤:iso9600

     windows:fat32(vfat),ntfs

    Unix:ffs,ufs,jfs,jfs2

    網絡文件系統:nfs,cifs

   集羣文件系統:ocfs2,gfs2

  分佈式文件系統:ceph

           mosefs,mogilefs,hdfs,gfs,gluterfs

(1)日誌型文件

    非日誌型文件:ext2

    日誌型文件系統:ext3,ext4,reserfs,xfs,btrfs,swap

日誌型文件系統[ext3,ext4]和非日誌型文件系統[ext2]的區別:

日誌型寫入步驟:1.預備,當系統要寫入文件時,會先在日誌記錄塊中記錄某個文件準備要寫入的信息

2.實際寫入,開始寫入文件的權限和步驟;開始更新meta data[中間數據]的數據

3. 結束,完成數據與metadata的更新後,在日誌記錄塊中完成該文件的記錄

非日誌寫入步驟:1. 先肯定用戶對於欲添加文件的目錄是否有w和x權限,如有的話才能添加

2.根據inode bitmap 找到沒有使用的inode號碼,並將新文件的權限/屬性寫入

3.根據block bitmap 找到沒有使用的block號碼,並將實際數據寫入block中,且更新inode的block指向數據

4.將剛纔寫入的inode與block數據同步更新inode bitmap與block bitmap,並更新superblock的內容

當中途斷電等因素致使系統中斷時,會出現數據的不一致狀態,這時非日誌文件系統須要進行一致性檢查,很費時間。而日誌文件系統,只須要去檢查日誌記錄塊就能夠知道那個文件發生了問題,沒必要去針對整塊文件系統去檢查。

      (2)swap:交換分區

    建立文件系統:

在分區上執行格式化(高級格式化)

       要使用某種文件系統,知足兩個條件

              內核中:支持此種文件系統

             用戶空間:有文件系統管理工具

建立工具:mkfs(make file system)

-t {ext2|ext3|ext4}:指明要建立的文件系統類型

mkfs-t ext4 = mkfs.ext4 = mke2fs -t ext4

b {1024|2048|4096}:其上限由page frame決定

-L LABEL:指定要使用的卷標[使用時,LABEL='MYLABELNAME']

-j: 至關於使用-text3

mkfs.ext3= mkfs -t ext3 = mke2fs -j = mke2fs -t ext3

-i #: 指明inode與字節的比率[不加% ],;即,每多少字節給建立一個inode;

-N #: 直接指明給此文件系統建立多少個inode

-m #:指定預留空間的百分比[只有root能用,不用%];默認爲5;

-O [^]FEATURE:能夠用來指明這個文件系統額外能夠具備的屬性,具體能夠查看man手冊

例:-o has_journa 啓用日誌屬性

-o ^has_journa 不啓用日誌屬性

e2label: 調整卷標

查看:e2label /dev/DEVICE

設定卷標:e2label /dev/DEVICE LABEL

tune2fs:查看或修改ext系列文件系統的某些屬性

查看超級塊中的數據信息:如UUID:全局唯一標識符

tune2fs-l /dev/DEVICE

例 tune2fs -l /dev/sda5

修改指定文件系統的屬性:

-j:ext2 --> ext3

-L LABEL: 修改卷標;

-m #: 調整預留空間的百分比;

-O [^]FEATURE: 開啓或關閉某種特性

-o [^]mount_options: 開啓或關閉某種默認掛載選項

-o acl開啓acl

-o ^acl關閉acl

dumpe2fs命令:顯示ext系列文件系統屬性信息

dumpe2fs[-h] /dev/DEVICE

例dumpe2fs -h/dev/sda5

blickid命令:能夠查看文件類型

檢測文件系統

fsck.ext2, fsck.ext3, fsck.ext4, fsck.xfs ...

fsck:文件系統檢查命令

-tFSTYPE

fsck-t FSTYPE = fsck.FSTYPE

例fsck -t ext4 修復即刪除不一致文件

-a:自動修復全部錯誤[慎用]

-r: 交互式修復錯誤

ext系列文件系統的專用工具:

e2fsck

-y: 對全部問題自動回覆爲yes;

-f: 即便文件系統處於clean狀態,也要強制進行檢測;

Windows沒法識別Linux上專用的文件系統,所以,有存儲設備須要兩種系統之間交叉使用時,應該使用windows支持的文件系統:

#mkfs -t vfat /dev/DEVICE

 

掛載:

注意:1.在Linux系統上,全部的文件系統必須經過根文件系統的某個分支來訪問;

2.單一文件系統不該該被重複掛載在不一樣的掛載點(目錄)中

3.單一目錄不該重複掛載多個文件系統

4.做爲掛載點的目錄理論上應該都是空白目錄,否則原來目錄下的文件會被隱藏

根文件系統:根是一切文件系統的訪問入口,根關聯到的分區,有必定的要求:FHS

除了根,其他全部的其它文件系統若是想要被訪問,都只可以經過「關聯」至根文件系統上的某個目錄來實現;這種操做即所謂的「掛載」,也即mount;相反動做,即卸載,命令爲umount

掛載點:mount_point,即用於做爲另外一個文件系統訪問入口的目錄;

mount命令:

mountDEVICE MOUNT_POINT

掛載點

一、事先存在;

二、應該使用別的進程未使用的目錄;

三、掛載點下原有的文件將被隱藏;

mount:將顯示當前系統已經掛載的全部文件系統的相關信息;

mount[OPTION]... [-t FSTYPE] [-o OPTION] [DEVICE] MOUNT_POINT

命令選項:

-r: 只讀掛載

-w: read and write,讀寫掛載

-t FSTYPE: 被掛載的設備上的文件系統類型;可省略,此時mount會自動使用blkid命令來判斷之;

-L LABEL: 以卷標的方式指定要掛載的設備,所以,此時DEVICE必須省;

-U UUID:以UUID的方式指定要掛載的設備,所以,此時DEVICE必須省;

-a: 自動掛載全部的支持自動掛載的設備(/etc/fstab文件中定義的支持自動掛載的設備);

-n: 默認狀況下,設備掛載與否的改變結果會被保存於/etc/mtab中一份;-n選項用於變更時不更新此文件

此時,若是想查看掛載的全部文件系統:cat /proc/mounts  
-a: 自動掛載全部支持自動掛載的設備;    
-B:綁定目錄至另外一個目錄上;

  -o 掛載選項:  
            async:異步模式    
            sync: 同步模式    
            atime/noatime:是否更新訪問時間戳;    
            diratime/nodiratime:是否更新目錄的訪問時間戳;    
            auto/noauto: 是否容許此設備被自動掛載;    
            exec/noexec:是否容許執行此文件系統上應用程序;    
            dev/nodev:是否支持在此設備上使用設備文件;    
            suid/nosuid:    
            remount:從新掛載    
            ro    
            rw    
            user/nouser: 是否容許普通掛載此設備;    
            acl:是否支持此設備上使用facl;    
            defaults:rw, suid, dev, exec, auto, nouser, and async

umount:卸載命令  
            # umount DEVICE    
            # umount MOUNT_POINT

            查看正在訪問指定掛載點的進程:  
                # fuser -v MOUNT_POINT

            終止全部正在訪問指定的掛載點的進程:  
                # fuser -km MOUNT_POINT

三、建立一個10G的文件系統,類型爲ext4,要求開機可自動掛載至/mydata目錄

  1)建立掛載點    #mkdir /mydata

    p_w_picpath

  2)建立分區    #我已建立sda3

    p_w_picpath

  3)分區文件系統高級格式化    #mkfs.ext4 /dev/sda3

     p_w_picpath

  4)配置掛載文件:/etc/fstab      #vim /etc/fstab

    /mydata                     ext4 defaults        0 0  

     p_w_picpath

  5)掛載到 /mydata    

   # mount /dev/sda3 /mydata  

    p_w_picpath

相關文章
相關標籤/搜索