Linux磁盤管理(分區,格式化,文件系統、VFS、mount、fstab)

Linux系統中數據存儲在磁盤中,磁盤在馮諾依曼體系中屬于輸入輸出外部存儲對象,保存著重要的企業數據,對Linux系統中的磁盤管理尤其需要熟練掌握,由于企業目前使用的主流存儲設備還是硬盤,所以這里只敘述硬盤的組織結構;

1.分區:

   (1)低級格式化:

      硬盤在出廠的時候廠家會做一次分區格式化,主要是劃分磁道和的固定大小的扇區,這就是所謂的低級格式化,由廠商完成;


   (2)分區作用:

      廠家做完低級格式化后,整個磁盤是一個完成完整的物理邊界,直接使用當發生故障后,要修復的范圍是整個磁盤,同時在整個磁盤上實現對文件系統的管理效率是很低下的,尤其是大空間量的磁盤管理更加困難;可以通過劃分分區,劃分多個空間作為獨立管理對象,在一個相對較小獨立的空間中,即提高了故障修復速度,同時也提高了數據管理效率;

   (3)分區視角:

      通過上面的說明可以看出分區是磁盤空間的邏輯邊界;

 

   (4)分區類型:

      MBR:主引導記錄

      這種分區方式通過MBR記錄各分區表的信息,開機引導操作系統的方式以及磁盤分區是否可以;具體如下

      MBR:總大小512個字節,不參與分區空間劃分,記錄在磁盤的最開始處;

      boot loader:引導加載器,前446byts;

      分區表:總大小64bytes,16bytes標識一個分區;所以最多四個分區;

      MBR分區類型:可以最多四個主分區或者三個主分區和一個擴展分區;

      GPT:GUID(globals unique identfiers)

      根據MBR劃分主分區的數量限制,滿足不了更大磁盤空間管理,所以有了GPT磁盤分區方式,GPT突破了傳統可以最大劃分128個分區,使用的是64位;分區結構如下:

      Protective MBR:GPT分區保護,防止不能識別GPT分區的從而破壞GPT分區數據;

      EFI:GPT頭

      分區表

      GPT分區

      備份分區

   (5)分區工具:

      1.查看系統磁盤設備工具:要想管理,首先要知道系統有哪些磁盤可用;方式如下:

        lsblk:查看系統磁盤設備情況

[root@xia7 ~]# lsblk 
NAME          MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda             8:0    0  200G  0 disk 
├─sda1          8:1    0  488M  0 part /boot
├─sda2          8:2    0   40G  0 part /
├─sda3          8:3    0   20G  0 part /usr
├─sda4          8:4    0    1K  0 part 
└─sda5          8:5    0    2G  0 part [SWAP]
sdb             8:16   0  100G  0 disk 
├─sdb1          8:17   0   10G  0 part 
├─sdb2          8:18   0   10G  0 part 
└─sdb3          8:19   0   20G  0 part /tmp/mnt

      

        cat /proc/partitions :查看系統識別的設備信息

[root@xia7 ~]# cat /proc/partitions 
major minor  #blocks  name
   8        0  209715200 sda
   8        1     499712 sda1
   8        2   41943040 sda2
   8        3   20971520 sda3
   8        4          1 sda4
   8        5    2098176 sda5
   8       32   20971520 sdc
   8       33   20970496 sdc1
   8       16  104857600 sdb
   8       17   10485760 sdb1
   8       18   10485760 sdb2
   8       19   20971520 sdb3
   8       48   20971520 sdd
   8       49   20970496 sdd1
  11        0    7587840 sr0
   8       64   20971520 sde
   8       65   20970496 sde1
   8       80   20971520 sdf
   8       81   20970496 sdf1
 253        0   73400320 dm-0

        ls -l /dev/sd* :查看系統讀取的設備

[root@xia7 ~]# ls -l /dev/sd*
brw-rw---- 1 root disk 8,  0 Aug 30 20:25 /dev/sda
brw-rw---- 1 root disk 8,  1 Aug 30 20:25 /dev/sda1
brw-rw---- 1 root disk 8,  2 Aug 30 20:25 /dev/sda2
brw-rw---- 1 root disk 8,  3 Aug 30 20:25 /dev/sda3
brw-rw---- 1 root disk 8,  4 Aug 30 20:25 /dev/sda4
brw-rw---- 1 root disk 8,  5 Aug 30 20:25 /dev/sda5
brw-rw---- 1 root disk 8, 16 Aug 31 09:45 /dev/sdb
brw-rw---- 1 root disk 8, 17 Aug 31 09:45 /dev/sdb1
brw-rw---- 1 root disk 8, 18 Aug 31 09:45 /dev/sdb2
brw-rw---- 1 root disk 8, 19 Aug 31 09:45 /dev/sdb3

        fdisk -l :查看設備詳細信息

[root@xia7 ~]# fdisk -l
Disk /dev/sda: 214.7 GB, 214748364800 bytes, 419430400 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x000f1359
   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048     1001471      499712   83  Linux
/dev/sda2         1001472    84887551    41943040   83  Linux
/dev/sda3        84887552   126830591    20971520   83  Linux
/dev/sda4       126830592   419430399   146299904    5  Extended
/dev/sda5       126834688   131031039     2098176   82  Linux swap / Solaris
Disk /dev/sdc: 21.5 GB, 21474836480 bytes, 41943040 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0xa573c896
   Device Boot      Start         End      Blocks   Id  System
/dev/sdc1            2048    41943039    20970496   8e  Linux LVM

   (6)分區命令fdisk

      語法格式:fdisk -l device

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):

      常用選項解釋說明:

       m:查看幫助菜單

       p:查看分區信息

       n:創建分區:其中有子命令  

         e:創建擴展分區

         p:創建主分區:

       t:改變其他分區類型;默認為Linux分區

           l|L :可以查看創建的分區的類型

       d:刪除分區;需要指定分區編號,一個默認直接刪除;

       o:轉換磁盤類型為msdos也就是MBR分區

       w:保存修改退出

       q:不保存修改退出


     gdisk工具:專門創建GPT分區命令,使用格式跟fdisk命令使用類似,這里不再介紹;

  

   (7)系統重新讀取修改配置命令:

       讓系統讀取設備命令

        partprobe [device]


        partx -a device 

       

       讓系統刪除已經改變的分區

        partx -d device 

     

   (8)高級分區parted命令:

       這是一個實時生效的非交互式操作命令,實現分區管理

      語法格式:

          parted [device] [command] [argument]

      常用選項:

          mklabel gpt|msdos :設置磁盤分區類型

          print :查看指定磁盤分區信息;

          mkpart parimary 分區編號 分區大小 :創建分區類型指定編號及大?。?/span>

          rm 分區編號:刪除第幾個分區

          -l :查看所有磁盤信息

文件系統

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

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

    文件系統類型:

    這里主要簡述常用的Linux系統支持的文件系統類型;

        ext系列:ext2,ext3,ext4

        xfs

        btrfs

        reiserfs

        光盤:iso9660

     上面除了ext2不支持journal日志功能,其他都持續日志功能,同時支持日志的方式也有所不同,這些方式分別有自己特性,不過總的區別是文件安全和性能之間的取舍;


VFS

    Linux系統能夠支持眾多的文件系統并存是因為Linux采用了虛擬文件系統(VFS)

    VFS工作原理:

    磁盤屬于硬件,文件系統是Linux內核kernel的功能,能夠真正操作硬盤(硬件)是Linux內核,硬件功能由系統調用systemcall提供,文件操作有open(),read(),write(),close(),create(),delete(),每個文件系統對文件的組織管理是不同的,說明調用方式也有所不同,也就是說管理文件系統的程序要想實現對不同文件系統中的文件操作,必須要把對所有文件系統的操作方式寫到程序中,這就勢必造成程序顯得十分臃腫,為了解決這種現象,Linux

內核通過VFS來磨合多種差異,因為只要讓VFS知道對每個文件系統的文件操作方式就行,以一個統一的接口提供給上層跟文件管理操作相關的程序,這就是Linux能夠支持眾多文件系統的原因;

     查看當前內核支持的文件系統:

       cat /proc/filesystems

[root@xia7 ~]# cat /proc/filesystems 
nodevsysfs
nodevrootfs
nodevbdev
nodevproc
nodevcgroup
nodevcpuset
nodevtmpfs
nodevdevtmpfs
nodevdebugfs
nodevsecurityfs
nodevsockfs
nodevpipefs
nodevanon_inodefs
nodevconfigfs
nodevdevpts
nodevramfs
nodevhugetlbfs
nodevautofs
nodevpstore
nodevmqueue
xfs
nodevrpc_pipefs
nodevnfsd
ext3
ext2
ext4


   

創建文件系統:

      mkfs命令工具:

      語法

         mkfs.filesystem_type /dev/device 

         mkfs [option] /dev/device

      常用選項:

         -t:指定文件系統類型

         -L:指定LABEL,卷標

         -i:inode

         -N:創建多少個inode

         -m:預留空間百分比,默認%5,留個系統管理員可操作空間;

   

     mke2fs:創建ext系列文件系統命令工具:

     語法格式:

          mke2fs [option]…/dev/device

     常用選項:

         -j:創建ext3相當于-t ext3 

         -t:創建ext文件系統類型

         -L:LABEL

         -m:預留空間百分比,默認%5,留個系統管理員可操作空間;

         -b:指定block的大小,1024,2048,4096

 

   查看分區文件系統信息:

       blkid命令:

       語法格式:

    blkid [option] /dev/device

[root@xia7 ~]# blkid 
/dev/sda1: UUID="385fe9f8-1da7-427c-8796-a43a39ea3908" TYPE="xfs" 
/dev/sda2: UUID="0af6d0c7-d33b-4807-85c1-eb43f2abd6a0" TYPE="xfs" 
/dev/sda3: UUID="8c33aaa4-511b-443d-b6f8-ef18fc432f48" TYPE="xfs" 
/dev/sda5: UUID="6cfe3bb8-08ff-450a-957e-dba4ba41ab09" TYPE="swap" 
/dev/sdb1: UUID="b5feec83-8838-4be8-9dbd-a7e63de2c699" TYPE="ext4" 
/dev/sdb2: UUID="aee25a1d-1e43-4b33-9a88-625e7d8a2bf6" TYPE="ext4" 
/dev/sdb3: UUID="60134f39-d392-4f35-a9ef-1eb63db73b0c" TYPE="ext4" 
/dev/sdd1: UUID="tKcKfd-l4zR-Z930-hyKP-szq8-eLae-usPI4l" TYPE="LVM2_member" 
/dev/sr0: UUID="2015-12-09-22-36-30-00" LABEL="CentOS 7 x86_64" TYPE="iso9660" PTTYPE="dos" 
/dev/myvg/mylv: UUID="ec682d89-d8dc-4f96-8d59-ba30f1b8a6f6" TYPE="ext4"

       e2label命令:管理ext系列文件系統卷標命令

       語法格式:

           e2label [option] /dev/device

[root@xia7 ~]# e2label /dev/sdb3 mydate1
[root@xia7 ~]# e2label /dev/sdb3
mydate1
[root@xia7 ~]#

       tune2fs命令:調整ext系列文件系統屬性命令

       語法格式:

           tune2fs [option]… /dev/device

       常用選項:

            -o:acl

           -o:^acl

           -L:LABEL

           -l:查看設備詳細屬性

[root@xia7 ~]# tune2fs -o acl /dev/sdb3
tune2fs 1.42.9 (28-Dec-2013)
[root@xia7 ~]# tune2fs -l /dev/sdb3
tune2fs 1.42.9 (28-Dec-2013)
Filesystem volume name:   mydate1
Last mounted on:          <not available>
Filesystem UUID:          60134f39-d392-4f35-a9ef-1eb63db73b0c
Filesystem magic number:  0xEF53
Filesystem revision #:    1 (dynamic)
Filesystem features:      has_journal ext_attr resize_inode dir_index filetype extent 64bit flex_bg sparse_super large_file huge_file uninit_bg dir_nlink extra_isize
Filesystem flags:         signed_directory_hash 
Default mount options:    user_xattr acl
Filesystem state:         clean
Errors behavior:          Continue

       

       findfs :根據分區的UUID和LABEL查分區

       findfs [option] LABEL=

       findfs [option] UUID=

[root@xia7 ~]# findfs LABEL=mydate1
/dev/sdb3

       uuidgen 生成UUID命令

[root@xia7 ~]# uuidgen 
4dee18b8-d127-4210-9173-7e8dd02c2e3e

       dumpe2fs:查看ext系列文件系統詳細信息 

       語法格式:

            dumpe2fs [option] /dev/device


文件系統修復工具:

       fsck:修復文件系統命令:

       語法格式:

            fsck.filesystem_type /dev/device

            fsck [option] /dev/device

       常用選項:

           -r:交互式修復

           -a:自動修復

           -t:指定文件系統類型

[root@xia7 ~]# fsck.ext4 /dev/sdb2
e2fsck 1.42.9 (28-Dec-2013)
mydatedb: clean, 11/655360 files, 83137/2621440 blocks
[root@xia7 ~]#

        e2fsck:修復ext系列文件系統命令:

         語法格式:

         e2fsck option [device]

         常用選項:

            -p:查看文件系統是否正常

            -f:強制檢查

            -y:自動修復

         

文件系統掛載mount

    linux的其他分區文件系統要想使用必須關聯至rootfs根文件系統目錄下,作為其他分區文件系統的訪問入口,關聯的目錄稱為掛載點,關聯過程稱為掛載,需要使用的命令工具是mount,關機重啟時會失效,要想永久有效,需要寫入到配置文件/etc/fstab;

    mount:掛載命令:

    語法格式

          mount [option][-o[option]…] 掛載設備 掛載點(目錄)

    掛載設備

         設備名

         UUID="UUID"

          LABEL="label"

    掛載點

        注意掛載目錄必須事先存在,同時確認掛載目錄中沒有其他文件,否則掛載成功會隱藏文件

    常用選項:

        -a:自動掛載/etc/fstab文件中的配置

        -n:掛載成功后不把配置信息寫入/etc/mtab文件中;

        -t:指定掛載設備類型

        -r:只讀掛載

        -w:讀寫掛載

        -o:這個選項有很多其他子命令,列出常用選項

             remount:重新掛載

             ro:只讀掛載

             rw:讀寫掛載

             sync/nosync:磁盤寫入數據方式,同步還是異步;

             suid/nosuid:是否啟用suid、sgid特殊權限位;

             –bind:簡寫-B,可以掛載目錄

/etc/fstab配置文件語法格式

fstab.png

   

 

 

     

   

   

原創文章,作者:xiashixiang,如若轉載,請注明出處:http://www.www58058.com/42599

(1)
xiashixiangxiashixiang
上一篇 2016-09-02 08:48
下一篇 2016-09-02 08:48

相關推薦

  • Linux中Vim編輯器的使用

    Linux中Vim編輯器的使用 Vim功能介紹 vim是一款功能豐富而強大的文本編輯器,支持語法高亮,支持多窗口編輯,是vi文本編輯器的增強版。如果在CentOS7.2中如果是選擇最小化安裝,其默認是沒有安裝vim rpm包的,需要自行安裝,可以使用yum工具進行在線安裝。  vim至今已經走過了25個春秋,現在8.0版的已經發布了。  …

    Linux干貨 2016-12-02
  • Linux第一周學習博客作業

    對第一周學習的內容進行總結

    Linux干貨 2017-12-02
  • SED基本用法和在文本中的使用

    sed命令行格式為: sed [-nefri] ‘command’ 輸入文本/文件 常用選項: -n∶取消默認的輸出,使用安靜(silent)模式。在一般 sed 的用法中,所有來自 STDIN的資料一般都會被列出到屏幕上。但如果加上 -n 參數后,則只有經過sed 特殊處理的那一行(或者動作)才會被列出來 -e∶進行多項編輯,…

    Linux干貨 2017-05-05
  • 馬哥教育網絡班22期+第6周課程練習

    請詳細總結vim編輯器的使用并完成以下練習題 1、復制/etc/rc.d/rc.sysinit文件至/tmp目錄,將/tmp/rc.sysinit文件中的以至少一個空白字符開頭的行的行首加#; cp /etc/rc.d/rc.sysinit /tmp vim /tmp/rc.sysinit :%s@^[[:space:]]\+@…

    Linux干貨 2016-09-19
  • 進程管理

    linux維護工作中,常常需要對系統上運行的程序進行管理,那么進程管理就顯得相當重要。 進程初識 什么是進程?   進程是并發執行的程序在執行過程中分配和管理資源的基本單位,是一個動態概念。它代表CPU所能處理的單個任務。 什么是線程?   線程是程序流執行的最小單元,可以理解為進程中執行的一段程序片段。 進程與線程聯…

    Linux干貨 2016-09-07
  • Linux的用戶,組及文件權限管理

    Linux用戶與組的創建,刪除,屬性修改,文件權限管理

    Linux干貨 2018-02-24
欧美性久久久久