Linux磁盤管理

面對一塊硬盤,我們該如何使用它呢?本文從機械硬盤結構,分區,格式化,和掛載四個層次進行介紹。

一、機械硬盤結構

現在服務器使用機械式硬盤是主流,因為其造價低,容量大,和固態硬盤相比讀寫性能要差很多。機械硬盤主要由以下幾個部件構成:轉軸Spindle,盤片Platter,機械臂Boom,磁頭Head。工作機制是馬達帶動盤片高速旋轉,磁頭對盤片進行擦寫數據或讀取其上存儲的數據。

e5675f11jw1esonqhcw53j20ei084t9q.jpg

基于這種工作機制有如下幾個存儲術語

1.磁道Track:盤片上狹窄的同心圓環,最外側為0磁道

2.扇區Sector:磁道上一小塊弧段稱為扇區,硬盤存儲單位,大小為512字節

        對每個扇區進行編號,稱為邏輯塊地址LBA

3.柱面Clinder:編號相同的磁道構成柱面

二、分區

了解硬盤結構后,接著講一下分區。一塊新硬盤使用,首先要進行分區操作,分區起到隔離的效果,方便管理。分區有兩種方式:

  1. MBR(Master Boot Record),傳統分區方式

  2. GPT(GUID Partition Table),較新分區方式

(1)MBR分區

使用32位表示扇區數,最大支持2T空間。在0磁道0扇區記錄啟動代碼(前446字節)和分區表信息,如下圖所示

225748114.jpg

由分區表可以看出MBR分區方式只能劃分四個主分區,如果要劃分四個以上分區,需要劃分一個擴展分區,在擴展分區下繼續劃分邏輯分區。

分區工具fdisk

fdisk是一款交互式工具,可以用來創建和管理磁盤分區。

fdisk [-uc] device 進入分區工具界面

輸入m查看幫助,常用指令有

n:新建分區

t:改變分區類型編號

d:刪除分區

p:查看分區列表

q:不保存退出

w:保存并退出

    注意:操作完成之后,要使用w退出,才會生效

blob.png

如果退出報同步錯誤,則需要手動同步分區信息

增加分區同步

Centos6:partx -a device
Centos7:partprobe

刪除分區同步

Centos6:partx -d device
Centos7:partprobe

可使用如下命令查看內核識別的分區情況

cat /proc/partitions    
lsblk

fdisk -l [devices…]    查看分區情況

[root@centos6 ~]$ fdisk -l /dev/sda  

Disk /dev/sda: 107.4 GB, 107374182400 bytes
255 heads, 63 sectors/track, 13054 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0005aba0

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          64      512000   83  Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2              64        2614    20480000   83  Linux
/dev/sda3            2614        3889    10240000   83  Linux
/dev/sda4            3889       13055    73624576    5  Extended
/dev/sda5            3889        4411     4194304   82  Linux swap / Solaris
/dev/sda6            4411        5716    10484362+  83  Linux

(2)GPT分區

使用64位表示扇區數,最大支持容量18EB,GPT明顯優點在于可以劃分128個分區。

0扇區稱為MBR保護扇區,防止MBR磁盤管理軟件誤認為未分區硬盤,以防止分區表及硬盤數據遭到破壞。在尾部備份了分區表信息,保證分區信息不易丟失。

112519312.jpg

GPT方式分區工具:gdisk

用法與fdisk類似,也是交互式工具,不再詳述。

三、格式化

對硬盤進行分區后,接著對分區進行格式化。格式化操作是在分區上創建文件系統,所謂文件系統,即一種存儲和組織計算機數據的方法,文件系統使用文件和樹形目錄的抽象邏輯概念來替代硬盤物理設備使用數據塊的概念,負責文件的存儲并對存入的文件進行保護和檢索。

Linux常用文件系統:

    ext2,ext3,ext4

    xfs(SGI)

    btrfs(Oracle)還未正式商用,處于測試階段

    swap(交換分區)

    vfat 對應windows的fat32文件系統

其中支持日志功能的文件系統有:

    ext4,xfs,btrfs

命令部分:

注意,執行格式化操作會擦除分區上原有的數據

創建文件系統工具:mkfs.fs_type

mkfs.ext4 /dev/sda1    #簡單地在sda1分區上創建ext4文件系統

ext文件系統創建專用工具:

mke2fs [options] device

options選項

-t    指定文件系統類型

-L    設定一個卷標

-b {1024|2048|4096}    指定塊大小

-N    指定明創建inode數量

-i    指定多少字節創建一個inode,一般要大于block大小

-m    指定預留空間的百分比,默認是5%,此部分空間供管理員在分區存滿數據時維護使用

-O [^]FEATURES    以指定特性創建文件系統,特性前加^表示關閉該特性

默認參數配置文件:/etc/mke2fs.conf

mke2fs -t ext4 -L mydata -b 2048 -N 20000 -m 1  /dev/sda7
#創建了一個 ext4文件系統,指定卷標mydata,塊大小2048,20000個inode,預留空間1%

blob.png


擴展內容

1.卷標查看與設定工具:

e2label device [newlabel]

2.修改ext文件系統某些屬性工具

tune2fs  [options] device

[options]選項

-l    查看超級塊內容

-L    修改卷標

-m    修改預留空間百分比

-O    文件系統屬性啟用或禁用,^表示禁用

-o    調整文件系統默認掛載選項,^表示禁用

-c    調整最大掛載次數。當掛載次數超過此數值時,進行文件系統檢查

3.顯示超級塊信息和組信息工具

dumpe2fs  [options] device

4.文件系統檢測與修復工具

常常用于非正常關機或死機之后

文件系統狀態標識為dirty時使用

blob.png

fsck.fs_type       #例如fsck.ext4
e2fsck             #ext系列文件系統檢測工具
    -y    自動回答yes
    -f    強制檢查,即使沒有問題也進行檢查

四、掛載

創建好一個文件系統之后,接著需要將該設備掛載到根下某一目錄。即將一個文件系統關聯到Linux上目錄樹結構上,該目錄為此文件系統的入口。

命令部分:

mount [options] device dir

options介紹

a    掛載所有有自動掛載選項的設備

-r    只讀掛載

-n    禁止向/etc/mtab 同步mount操作

-L    指定卷標來掛載

-U    指定uuid的設備掛載

-o    掛載選項

掛載選項說明,有些選項在/etc/fstab 里指定才會生效

remount    重新掛載

loop    指定掛載回環類型設備

noatime    禁止atime更新

noexec    禁止程序執行

auto/noauto    是否可被-a選項自動掛載

user    可指定一個用戶可掛載此設備

default    默認選項代表rw, suid, dev, exec, auto, nouser, async, and relatime

擴展內容

1.如果設備需要開機自動掛載,則需要寫在/etc/fstab 文件中

文件格式:

  1. 要掛載的設備或偽文件系統

      –建議使用uuid指定設備,設備名容易變更

  2. 掛載點

  3. 文件系統類型

  4. 選項

  5. 轉儲頻率

      –0:不轉儲 1:每天轉儲 2:隔天轉儲

  6. 自檢次序

      –0:不自檢 1:首先自檢,一般是根目錄 2:次序自檢

blob.png

2.卸載設備

umount device|dir

如果卸載某設備,顯示掛載點正忙無法卸載,則采取如下辦法

1)查看掛載點被哪些程序占用,然后殺掉

lsof  dir
fuser -v dir

2)終止所有正在訪問掛載點的所有進程


fuser -km dir

五、交換分區swap創建

當內存空間不足時,內核會將內存中一些緩存數據存放到swap分區上。交換分區最好劃分在磁盤外道,達到最高存儲性能。

1、交換分區必須指定分區類型為swap

blob.png

blob.png

即在分區時,使用t改變分區類型編號

2、對指定的分區或者一個文件設定為交換空間

mkswap /dev/sda7

blob.png

3、啟用交換分區

swapon -s         #查看交換分區啟用情況

blob.png

swapon  /dev/sda7   #啟用交換分區或者 swapon -a 啟用所有交換分區

blob.png

至此添加成功。

擴展內容

關閉交換分區

swapoff /dev/sda7

交換分區可指定優先級,創建不指定優先級則依次減少1,最開始為-1

命令指定優先級 swapon -p {0-32767} device|file

交換分區在/etc/fstab 文件中格式,優先級指定pri=

blob.png

六、各種查看命令補充

lsblk [dev] #查看分區情況

blob.png

blkid  [dev]  #打印塊設備屬性,可查看分區類型

blob.png

findmnt    #查看所有已掛載設備

blob.png

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

(1)
cutemsyucutemsyu
上一篇 2016-09-01
下一篇 2016-09-01

相關推薦

  • nfs 安裝及基于 nfs 安裝部署 mysql 與 httpd

    nfs安裝及基于nfs安裝部署mysql以及httpd.pdf

    Linux干貨 2016-11-07
  • RHEL6.9換源記

    RHEL是提供給企業使用的,雖然我們在網絡上也能下載到它的鏡像,但是我們無法使用它的服務。最近由于系統比較卡,重裝了一次系統,裝完之后,我用VMware Workstation Pro 12 加載了之前的RHEL 6.9-000002.vmdk文件之后居然發現不能掛載CD/DVD,這就不能愉快的玩了。在VMware的設置里折騰好久也沒能搞定,光盤安裝RPM包…

    2017-07-20
  • 馬哥教育網絡班20期+第2周課程練習

    1、Linux上的文件管理類命令有:cp復制, mv剪切, rm移除 使用方法: cp復制  cp [OPTION]… [-T] SOURCE DEST  常用選項: -i:交互式 -r: 遞歸復制目錄及內部的所有內容 -a: 歸檔 演示: SRC是文件,會將/etc/fstab 中內容覆蓋到/bin/po…

    Linux干貨 2016-06-23
  • python面向對象魔術方法

    python面向對象魔術方法

    Linux干貨 2017-11-20
  • linux程序包管理

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

    2018-01-01
  • shell腳本之變量、運算、條件測試。

    概述 程序:指令+數據 程序編程風格: 過程式:以指令為中心,數據服務于指令 對象式:以數據為中心,指令服務于數據 shell程序:提供了編程能力,解釋執行 計算機:運行二進制指令; 編程語言: 低級:             匯編 高級:…

    Linux干貨 2016-08-15

評論列表(1條)

  • 馬哥教育
    馬哥教育 2016-09-02 10:07

    文章內容很完整,圖文并貌,整篇博客能讓人看到很多專業性所在,也能看出很用心的地方,革命尚未成功,同志仍需努力啊,加油!

欧美性久久久久