Linux入門-3 Linux磁盤及文件系統管理

1. 磁盤基本概念

1.1 磁盤結構:盤片(單碟vs多碟)、磁頭(讀寫數據)

  • cylinder(柱面)
  • sector(扇區)
  • head(磁頭)

1.2 磁盤在Linux中的表示

  • Linux全部設備都被抽象爲一個文件,保存在/dev目錄下
  • 磁盤的名稱通常爲hd[a-z]或sd[a-z]
  • IDE設備的名稱爲hd[a-z],SATA、SCSI、SAS、USB等設備的名稱爲sd[a-z]

sd表示series diskwindows

1.3 分區概念

  • 設備名稱+分區號:sda1, sda2...
  • 主流的分區機制爲MBRGPT

1.3.1 MBR緩存

Master Boot Record,主引導記錄,傳統的分區機制,應用於絕大多數使用BIOS的pc設備。async

  • 支持32bit和64bit系統
  • 支持的分區數量有限
  • 只支持不超過2T的硬盤,超過2T將只能使用2T空間(有第三方解決方法)

主分區、擴展分區、邏輯分區 Linux最多支持63個IDE分區和15個SCSI分區工具

1.3.2 GPT性能

GUID Partition Tablespa

  • 支持超過2T磁盤
  • 向後兼容MBR
  • 必須在支持UTFI的硬件上才能使用
  • 必須爲64爲系統
  • Mac、Linux系統都支持GPT分區
  • Win7 64bit、winServer2008 64bit支持GPT

2 使用fdisk進行磁盤管理

來自IBM的老牌分區工具,支持絕大多數操做系統,幾乎全部Linux發行版都裝有fdisk,rescue模式下也依然可以使用。操作系統

fdisk是基於MBR的分區工具日誌

  • 只有超級用戶權限才能運行
  • fdisk -l能夠列出全部安裝的磁盤及其分區信息
  • 使用fdisk /dev/sda能夠對目標磁盤進行分區操做
  • 分區後須要使用partprobe命令讓內核更新分區信息,不然須要重啓才能識別新分區
  • /proc/partitions文件也能夠用來查看分區信息

3 Linux文件系統

操做系統經過文件系統管理文件及數據,磁盤或分區須要建立文件系統以後才能被操做系統使用,建立文件系統的過程又稱之爲格式化。code

  • 沒有文件系統的設備又稱之爲裸(raw)設備
  • 常見的文件系統fat32, NTFS, ext2, ext3, ext4, xfs, HFS
  • 文件系統之間的區別:日誌、支持的分區大小、支持的單個文件大小、性能等

mke2fs

命令mke2fs用來建立文件系統 mke2fs -t ext4 /dev/sda1進程

-b blocksize 指定文件系統快大小 -c 創建文件系統時檢查損壞塊 -L label 指定卷標 -j 創建文件系統日誌

  • 塊大小默認4k
  • ext3/ext4默認帶日誌,不須要-c
  • mkfs也能建立文件系統,更簡單,但參數少,不能精細控制

dumpe2fs

查看分區的文件系統信息 dumpe2fs /dev/sda1

須要對文件系統作微調時使用

JOURNAL日誌

帶日誌的文件系統有較強的穩定性,出現錯誤時能夠進行回覆。

  • 帶日誌的文件系統會使用「兩階段提交」的方式進行磁盤操做:
    1. 文件系統將準備執行的事務的具體內容寫入日誌
    2. 文件系統進行操做
    3. 操做成功後,將事務的具體內容從日誌中刪去
  • 好處是出現意外後能夠經過日誌文件進行恢復,缺點是喪失了必定的性能

e2label

e2label /dev/sda1 顯式系統標籤 e2label /dev/sda1 label 設標籤

fsck

fsck /dev/sda1 file system check,檢查並修復損壞的文件系統

  • 使用-y參數不提示而直接進行修復
  • 默認會自動判斷文件系統類型,但若是損壞嚴重,則用-t指定文件系統
  • 對於識別爲文件的損壞數據(文件系統無記錄),fsck會將該文件放入lost+found目錄
  • 系統啓動時會對磁盤進行fsck

4 Linux文件系統掛載管理

磁盤或分區建立好文件系統以後,須要掛載到一個目錄才能使用。 windows和mac會自動掛載,windows上稱之爲c盤、d盤等。 LInux須要手動掛載或配置系統進行自動掛載。

mount

mount /dev/sda1(須要掛載的磁盤) /mnt(掛載點)

  • 不帶參數,顯示全部已掛載的文件系統
  • -t指定文件系統類型
  • -o指定掛載選項
    • ro, rw以只讀或讀寫形式掛載,默認rw
    • sync不使用緩存,而是將全部操做直接寫入磁盤
    • async使用緩存,默認
    • noatime每次訪問文件時不更新文件的訪問時間,能夠提升性能
    • atime每次訪問文件時更新文件的訪問時間,默認
    • remount從新掛載

umount

至關於windows的彈出 umount 文件系統或掛載點 umount /dev/sda1 == umount /mnt/

若是提示device is busy,則表示文件系統正在被使用,沒法卸載,可使用如下命令查看使用文件系統的進程: fuser -m /mnt/ 也能夠用如下命令查看正在被使用的文件: lsof /mnt/(list open file)

自動掛載

配置/etc/fstab用來自定義須要自動掛載的文件系統,fstab中每一行表明一個掛載配置,格式以下:

/dev/sda1 /mnt ext4 defaults 0 0
待掛載設備 掛載點 文件系統 掛載選項 dump、fsck相關選項
  • 要掛載的設備也能夠用label進行識別,使用LABEL=DISKLABEL取代/dev/sda1
  • mount -a命令會掛載全部fstab中定義的自動掛載選項
相關文章
相關標籤/搜索