Linux磁盤管理

 I/O Ports:I/O設備地址

  一切皆文件:

           poen(),read(),write(),close()

  設備類型:

            塊設備:block,存取單位 “塊” 磁盤

          字符設備:char,存取單位 “字符” 磁盤

          設備文件:關聯至一個設備驅動程序,進而能夠跟與之對應硬件設備進行通信

          主設備號:major  number 標識設備類型

          次設備號:minor  number 標識同一類型下的不同設備

  

  硬盤接口類型:

    並行:

          IDE:133MB/S

          SCSI:640M/s

    串口:

          SATA:6Gbps

          SAS: 6Gbps

          USB: 480MB/s

    rpm:rotations per minute


  設備文件

    磁盤 設備的設備文件命名:/dev/DEV_FILE

   IDE:/dev/hd

   SCSI,SATA,SAS,USB:/dev/sd

             不同設備:a-z

                   /dev/sda  /dev/sdb  

             同一設備上的不同分區:1,2,.....

                   /dev/sda1 /dev/sda5 

       

  硬盤存儲術語

                head:   磁頭

               track:   磁道

            cylinder:    柱面

             seccotr:    扇區 512bytes

  

  分區空間

            設備識別

            設備分區

            創建文件系統

            標記文件系統

            在/sec/fstab文件中創建條目

            掛載新的文件系統

    

  磁盤分區

            爲什麼要分區?

            優化I/O性能

            實現磁盤空間配額限制

            提高修復速度

            隔離系統和程序

            安裝多個OS

            採用不同文件系統

  分區

        兩種分區方式:MBR  GPT

        MBR:Master Boot Record

        1982年  使用32位表示扇區數,分區不超過2T

       如何分區:按柱面

          0磁道0扇區:512bytes

            446bytes:boot loader

             64bytes:分區表

             16bytes:標識一個分區

              2bytes:55AA

           4個主分區:3個主分區+1擴展(N個邏輯分區 )

wKioL1e_6LaR958wAAFrcYjyRns402.png

     

    GPT:GUID(Globals Unique Identifiers) partition tab 支持128分區,使用64位,支持8Z(512Byte/blocck)64Z (4096Byte/block)

     使用128位UUID 表示磁盤和分區 GPT分區表自動備份在頭和尾兩份,並有CRC校驗位

     UEFI(統一擴展固件接口)硬件支持GPT,使操作系統啓動

wKioL1e_6XXBhdTvAAD3iNknk_Y109.png

     

     

EFI部分又可以分爲4個區域:EFI信息區(GPT頭)、分區表、GPT分區、備份區域

  

  管理分區

    lsblk

  創建分區使用:

                 fdisk創建MBR分區 也支持GPT 對於一塊硬盤 最多隻能管理15個分區

                 gdisk 創建GPT分區

                 GNU parted 高級分區操作(創建,複製,調整大小等等)

                 partprobe:重新設置內存中的內核分區表版本

      

  分區工具fdisk和gdisk

                 fdisk  /dev/sdb

                 gfisk  /dev/sdb   類fdisk的    gfisk是GPT分區工具

      fdisk -l[-u] [device....]

     命令參數:

                  p        分區列表

                  t        更改分區類型

                  n        創建新分區

                  d        刪除分區

                  w        保存並退出

                  q        不保存並退出

  同步分區表

    查看內核是否已經識別新的分區:

      cat /proc/partations

    通知內核重新讀取硬盤分區表

    新增分區:

             partx -a -n  M:N /dev/DeviCE

             Kpartx -a /dev/DEVICE -f:force

             Centos5和7使用:partprobe

             partprobe [/dev/DEVICE]

    parted命令:

      parted的操作都是實時生效的,小心使用!!

        用法:parted [選項]...[設備[命令[參數]...]...]

            parted /dev/sdb mklabel gpt|msdos

            parted /dev/sdb print

            parted /dev/sdb mkpart primary 1 200 (默認M)

            patred /dev/sdb rm  1

            parted -l

        

  文件系統

    文件系統是操作系統用於明確存儲設備或分區上的文件的方法和數據結構;即在存儲設備上組織文件的方法,操作系統中負責管理和存儲文件信息的軟件結構稱爲文件管理系統,簡稱文件系統

    

    從系統角度來看,文件系統是對文件存儲設備的空間進行組織和分配,負責文件存儲並對存入的文件進行保護和檢索的系統,具體地說,它負責爲用戶建立文件,存入,讀出,修改,轉儲文件,控制文件的存取,安全控制,日誌,壓縮,加密等

    

  文件系統類型:

                Linux文件系統:ext2(Extended file system),ext3,ext4,xfs(SGI),btrfs(Oracle),reiserfs,jfs(AIX),swap

                光盤:iso9660

                Windows:fat32 ntfs

                Unix:FFS(fast) UFS(uninx) JF32

                網絡文件系統 :NFS CIFS

                集羣文件系統:GFS2 OCFS2(oracle)

                分佈式文件系統:ceph,moosefs,mogilefs,glusterfs,Lustre

                RAW:未經處理或未經格式化產生的文件系統

 文件系統分類:

                根據 其是否支持“journal”功能:

                    日誌型文件系統:ext3 ext4 xfs .....

                  非日誌型文件系統:ext2 vfat

  文件系統的組成部分:

                      內核中的模塊:ext4 xfs vfat

                用戶控件的管理工具:mkfs.ext4 mkfs.xfs mkfs.vfat

               Linux的虛擬文件系統:VFS

                查看支持的文件系統:cat /proc/filesystems

 

  創建文件系統

    mkfs命令:

              mkfs.FS_TYPE /dev/DEVICE

                 ext4

                 xfs

                 btrfs

                 vfat

              mkfs -t FS_TYPE /dev/DEVICE

                 -L “LABEL” 設定卷標

  創建ext文件系統

    mke2fs:ext系列文件系統專用管理工具

                  -t {ext2|ext3|ext4}

                  -b {1024|2048|4096}

                  -L 'LABEL'

                  -j  相當於 -t ext3

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

                  -i #:爲數據控件中每多少個字節創建一個inode;此大小不應該小於block的大小

                  -N #:爲數據控件創建多個iNode

                  -m #:默認5% 爲管理人員預留空間佔總控件的百分比

                  -I 一個inode記錄大小128---4096

                  -O FEATURE[....]:啓動指定特性

                  -O ^FEATURE[...]: 關閉指定特性

  文件系統標籤

                指定設備的另一種方法

                與設備無關

                blkid:塊設備屬性信息查看

                blkid [OPTION] ....[DEVICE]

                 -U UUID:根據指定的UUID來查找對應的設備

                -U LABEL:根據指定的LABEL來查找對應的設備

                 e2label:管理ext系統文件系統的LABEL

                 e2label DEVICE [LABEL]

 findfs:查找分區

                 findfs [options] UUID=<uuid>

                 findfs [options] LABEL=<label>

  

  tune2fs

 tune2fs:重新設定ext系列文件系統可調整參數的值

            -l:   查看指定文件系統超級塊信息:super block

            -L 'LABEL':修改卷標

            -m #:修改預留給管理員的空間百分比

            -j:講ext2升級爲ext3

            -O:文件系統屬性啓用或禁用 -O ^has_journal

            -o: 調整文件系統的默認掛載選項 -o ^acl

            -U UUID:修改UUID號

    dumpe2fs:

    -h:查看超級塊信息(分組信息),分區用分組管理

                                            超級塊和inode table

     wKiom1e_6qXxxlt8AAG0Z8GfwFc168.png


   文件系統檢測和修復

                 常發生於死機或者非正常關機之後

                 掛載爲文件系統標記爲“dirty”

                 fsck:File System Check

                 fsck.FS_TYPE

                 fsck -t FS_TYPE

                 -a:自動修復錯誤

                 -r:交互式修復錯誤

              #注意:FS_TYPE一定要與分區上已經有的文件類型相同;

  e2fsck:ext系統文件專用的檢測修復工具

                -y:自動回答爲yes

                -f:強制修復

      

  掛載mount

                掛載:將額外文件系統與根文件系統某現存的目錄建立起關聯關係,進而使得此目錄做爲其他文件訪問入口的行爲

                卸載:爲解除此關聯關係的過程

                把設備關聯掛載點:mount point

                mount

                卸載時:可使用設備,也可以使用掛載點

                umount

                掛載點下原有文件在掛載完成後會被臨時隱藏

                掛載點目錄一般爲空

   

  用mount掛載文件系統

                掛載方法:mount DEVICE MOUNT_POINT

                mount:通過查看/etc/mtab文件顯示當前已掛載的所有設備

                mount [-f nrsvw] [-t vfstype] [-o options]device dir

                device:指明要掛載的設備;

                設備文件:例如/dev/sdb1

                卷標:-L 'LABEL' :例如 -L 'DATA'

                UUID -u  'UUID' 例如 -U '012e90b9-2646-4c07-b35b-aae359255cde'

                僞文件系統名稱:proc sysfs devtmpfs configfs

                dir:掛載點

                事先存在;建議使用空目錄

                進程正在使用中的設備無法被卸載

  mount常用命令選項

              -t vsftype:指定要掛載的設備上的文件系統類型

              -r: readonly  只讀掛載

              -w:read and write 讀寫掛載

              -n:不更新/etc/mtab,相當於mount

              -a:自動掛載所有支持自動掛載的設備(定義在了/etc/fstable文件中,且掛載選項中有auto功能)

              -L 'LABEL':以卷標指定掛載設備

              -U  'UUID':以UUID指定要掛載的設備

              -B --bind:綁定目錄到另一個目錄上

              #查看內核追蹤到的已掛載的所有設備:

              cat /proc/mounts

              -o options:(掛載文件系統的選項),多個選項使用逗號分隔

                                        async:異步模式

                                        synnc:同步模式,內存更改時,同時寫磁盤

                                atime/noatime:包含目錄和文件

                          diratime/nodiratime:目錄訪問的時間戳

                                  auto/noauto:是否支持在此文件系統上使用設備文件

                                    dev/nodev:是否支持在此文件系統上使用設備文件

                                  suid/nosuid:不支持suid和sgid權限

                                      remount:重新掛載

                                           ro:只讀

                                           rw:讀寫

                                  user/nouser:是否允許普通用戶掛載此設備,默認管理員才能掛載

                                          acl:啓用此文件系統上的acl功能

                                     Defaults:相當於rw,suid,dev,exec,auto,nouser,async

   卸載命令

   查看掛載情況:

               #findmnt  MOUNT_POINT

   查看正在訪問指定文件系統的進程:

               #lsof MOUNT_POINT

               #fuser -v MOUNT_POINT

   終止所有正在訪問指定的文件系統的進程:

               #fuser -km MOUNT_POINT

   卸載:

               #umount DEVICE

               #umount MOUNT_POINT


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章